buildFlutterApplication: use the engine
This commit is contained in:
parent
a54e49b360
commit
4a59129384
@ -14,16 +14,28 @@
|
|||||||
|
|
||||||
# absolutely no mac support for now
|
# absolutely no mac support for now
|
||||||
|
|
||||||
{ pubGetScript ? "flutter pub get"
|
{ pubGetScript ? null
|
||||||
, flutterBuildFlags ? [ ]
|
, flutterBuildFlags ? [ ]
|
||||||
, targetFlutterPlatform ? "linux"
|
, targetFlutterPlatform ? "linux"
|
||||||
, extraWrapProgramArgs ? ""
|
, extraWrapProgramArgs ? ""
|
||||||
|
, flutterMode ? null
|
||||||
, ...
|
, ...
|
||||||
}@args:
|
}@args:
|
||||||
|
|
||||||
let
|
let
|
||||||
|
hasEngine = flutter ? engine && flutter.engine != null && flutter.engine.meta.available;
|
||||||
|
flutterMode = args.flutterMode or (if hasEngine then flutter.engine.runtimeMode else "release");
|
||||||
|
|
||||||
|
flutterFlags = lib.optional hasEngine "--local-engine host_${flutterMode}${lib.optionalString (!flutter.engine.isOptimized) "_unopt"}";
|
||||||
|
|
||||||
|
flutterBuildFlags = [
|
||||||
|
"--${flutterMode}"
|
||||||
|
] ++ (args.flutterBuildFlags or []) ++ flutterFlags;
|
||||||
|
|
||||||
builderArgs = rec {
|
builderArgs = rec {
|
||||||
universal = args // {
|
universal = args // {
|
||||||
|
inherit flutterMode flutterFlags flutterBuildFlags;
|
||||||
|
|
||||||
sdkSetupScript = ''
|
sdkSetupScript = ''
|
||||||
# Pub needs SSL certificates. Dart normally looks in a hardcoded path.
|
# Pub needs SSL certificates. Dart normally looks in a hardcoded path.
|
||||||
# https://github.com/dart-lang/sdk/blob/3.1.0/runtime/bin/security_context_linux.cc#L48
|
# https://github.com/dart-lang/sdk/blob/3.1.0/runtime/bin/security_context_linux.cc#L48
|
||||||
@ -46,11 +58,11 @@ let
|
|||||||
''}/bin/dart"
|
''}/bin/dart"
|
||||||
|
|
||||||
export HOME="$NIX_BUILD_TOP"
|
export HOME="$NIX_BUILD_TOP"
|
||||||
flutter config --no-analytics &>/dev/null # mute first-run
|
flutter config $flutterFlags --no-analytics &>/dev/null # mute first-run
|
||||||
flutter config --enable-linux-desktop >/dev/null
|
flutter config $flutterFlags --enable-linux-desktop >/dev/null
|
||||||
'';
|
'';
|
||||||
|
|
||||||
inherit pubGetScript;
|
pubGetScript = args.pubGetScript or "flutter${lib.optionalString hasEngine " --local-engine $flutterMode"} pub get";
|
||||||
|
|
||||||
sdkSourceBuilders = {
|
sdkSourceBuilders = {
|
||||||
# https://github.com/dart-lang/pub/blob/68dc2f547d0a264955c1fa551fa0a0e158046494/lib/src/sdk/flutter.dart#L81
|
# https://github.com/dart-lang/pub/blob/68dc2f547d0a264955c1fa551fa0a0e158046494/lib/src/sdk/flutter.dart#L81
|
||||||
@ -122,7 +134,7 @@ let
|
|||||||
|
|
||||||
mkdir -p build/flutter_assets/fonts
|
mkdir -p build/flutter_assets/fonts
|
||||||
|
|
||||||
flutter build linux -v --release --split-debug-info="$debug" ${builtins.concatStringsSep " " (map (flag: "\"${flag}\"") flutterBuildFlags)}
|
flutter build linux -v --split-debug-info="$debug" $flutterBuildFlags
|
||||||
|
|
||||||
runHook postBuild
|
runHook postBuild
|
||||||
'';
|
'';
|
||||||
@ -131,7 +143,7 @@ let
|
|||||||
installPhase = universal.installPhase or ''
|
installPhase = universal.installPhase or ''
|
||||||
runHook preInstall
|
runHook preInstall
|
||||||
|
|
||||||
built=build/linux/*/release/bundle
|
built=build/linux/*/$flutterMode/bundle
|
||||||
|
|
||||||
mkdir -p $out/bin
|
mkdir -p $out/bin
|
||||||
mv $built $out/app
|
mv $built $out/app
|
||||||
@ -173,7 +185,7 @@ let
|
|||||||
|
|
||||||
mkdir -p build/flutter_assets/fonts
|
mkdir -p build/flutter_assets/fonts
|
||||||
|
|
||||||
flutter build web -v --release ${builtins.concatStringsSep " " (map (flag: "\"${flag}\"") flutterBuildFlags)}
|
flutter build web -v $flutterBuildFlags
|
||||||
|
|
||||||
runHook postBuild
|
runHook postBuild
|
||||||
'';
|
'';
|
||||||
|
Loading…
Reference in New Issue
Block a user