Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 1 addition & 40 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -39,49 +39,10 @@
devShells.default =
import ./nix/shell.nix self { inherit pkgs inputs; };

# devShells.default = let
# pkgs = import inputs.nixpkgs {
# inherit system;

# config = {
# android_sdk.accept_license = true;
# allowUnfree = true;
# };
# };
# buildToolsVersion = "35.0.0";
# androidComposition = pkgs.androidenv.composeAndroidPackages {
# buildToolsVersions = [ buildToolsVersion "28.0.3" ];
# platformVersions = [ "34" "28" "36" ];
# abiVersions = [ "armeabi-v7a" "arm64-v8a" ];
# includeNDK = true;
# ndkVersions = [ "28.2.13676358" ];
# cmakeVersions = [ "3.22.1" ];
# includeSources = false;
# includeSystemImages = false;
# includeEmulator = false;
# useGoogleAPIs = false;
# useGoogleTVAddOns = false;
# };

# androidSdk = androidComposition.androidsdk;

# in with pkgs;
# mkShell rec {
# ANDROID_SDK_ROOT = "${androidSdk}/libexec/android-sdk";
# JAVA_HOME = pkgs.jdk17;
# ANDROID_AVD_HOME = (toString ./.) + "/.android/avd";

# buildInputs = [
# flutter
# androidSdk # The customized SDK that we've made above
# jdk17
# ];
# };

# Output package
packages = {
default = pkgs.callPackage ./nix { };
web = pkgs.callPackage ./nix { inherit inputs; targetFlutterPlatform = "web"; };
web = pkgs.callPackage ./nix { targetFlutterPlatform = "web"; };
};
};
});
Expand Down
117 changes: 117 additions & 0 deletions nix.back/default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
{ pkgs, stdenv, flutter338, lib, inputs, targetFlutterPlatform, ... }:

let
# Hostplatform system

system = pkgs.hostPlatform.system;
formatter = pkgs.alejandra;

vodozemac = import ./vodozemac-wasm.nix;

androidEmulator = pkgs.androidenv.emulateApp {
name = "emulator";
platformVersion = "36";
abiVersion = "x86_64";
systemImageType = "google_apis_playstore";
configOptions = {
"hw.gpu.enabled" = "yes";
"hw.gpu.mode" = "swiftshader_indirect";
"hw.keyboard" = "yes";
"hw.kainKeys" = "yes";
};
};
androidEmulatorNoGPU = pkgs.androidenv.emulateApp {
name = "emulator";
platformVersion = "36";
abiVersion = "x86_64";
systemImageType = "google_apis_playstore";
configOptions = {
"hw.gpu.enabled" = "yes";
"hw.keyboard" = "yes";
"hw.kainKeys" = "yes";
};
};

pinnedFlutter = pkgs.flutter338;
pinnedJDK = pkgs.jdk17_headless;
androidCustomPackage = inputs.android-nixpkgs.sdk.${system} (
# show all potential values with
# nix flake show github:tadfisher/android-nixpkgs
sdkPkgs:
with sdkPkgs; [
cmdline-tools-latest
cmake-3-22-1
build-tools-35-0-0
ndk-27-0-12077973
ndk-28-2-13676358
platform-tools
emulator
platforms-android-31
platforms-android-33
platforms-android-34
platforms-android-35
platforms-android-36
system-images-android-36-google-apis-playstore-x86-64
]);

# Production package
# base = flake.packages.${system}.default;

in flutter338.buildFlutterApplication ({
pname = "uchar-${targetFlutterPlatform}";
version = "2.4.1";

src = lib.cleanSource ./..;

nativeBuildInputs = [
pkgs.rustup
formatter
pinnedFlutter
androidCustomPackage
pinnedJDK

# (pkgs.callPackage ./shell_vodozemac.nix { })

(pkgs.writeScriptBin "android-emulator" ''
${androidEmulator}/bin/run-test-emulator
'')
(pkgs.writeScriptBin "android-emulator-no-gpu" ''
${androidEmulatorNoGPU}/bin/run-test-emulator
'')
];

pubspecLock = lib.importJSON ./pubspec.lock.json;

meta = {
description = "Chat with your friends (matrix client)";
homepage = "https://uchar.uz/";
license = lib.licenses.agpl3Plus;
maintainers = with lib.maintainers; [ mkg20001 tebriel aleksana ];
badPlatforms = lib.platforms.darwin;
};

# Some dev env bootstrap scripts # yellow = 3; blue = 4
shellHook = "\n";
}

// pkgs.lib.optionalAttrs (targetFlutterPlatform == "web") {
# preBuild = ''
# cp -r ${vodozemac}/* ./assets/vodozemac/
# '';

buildPhase = ''
# runHook preBuild
flutter build web
# runHook postBuild
'';

installPhase = ''
# runHook preInstall
mkdir -p $out/build
cp build/web $out/build -r

mkdir $debug
mkdir $pubcache
# runHook postInstall
'';
})
File renamed without changes.
Loading
Loading