diff options
Diffstat (limited to 'pkgs/development/compilers/flutter/engine/default.nix')
-rw-r--r-- | pkgs/development/compilers/flutter/engine/default.nix | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/pkgs/development/compilers/flutter/engine/default.nix b/pkgs/development/compilers/flutter/engine/default.nix new file mode 100644 index 0000000000000..7bf59dc857196 --- /dev/null +++ b/pkgs/development/compilers/flutter/engine/default.nix @@ -0,0 +1,77 @@ +{ + callPackage, + dartSdkVersion, + flutterVersion, + swiftshaderHash, + swiftshaderRev, + version, + hashes, + url, + patches, + runtimeModes, + isOptimized ? true, + lib, + stdenv, + dart, + mainRuntimeMode ? null, + altRuntimeMode ? null, +}@args: +let + mainRuntimeMode = args.mainRuntimeMode or builtins.elemAt runtimeModes 0; + altRuntimeMode = args.altRuntimeMode or builtins.elemAt runtimeModes 1; + + runtimeModesBuilds = lib.genAttrs runtimeModes ( + runtimeMode: + callPackage ./package.nix { + inherit + dartSdkVersion + flutterVersion + swiftshaderHash + swiftshaderRev + version + hashes + url + patches + runtimeMode + isOptimized + ; + } + ); +in +stdenv.mkDerivation ( + { + pname = "flutter-engine"; + inherit url runtimeModes; + inherit (runtimeModesBuilds.${mainRuntimeMode}) + meta + src + version + dartSdkVersion + isOptimized + runtimeMode + outName + dart + swiftshader + ; + inherit altRuntimeMode; + + dontUnpack = true; + dontBuild = true; + + installPhase = + '' + mkdir -p $out/out + '' + + lib.concatMapStrings ( + runtimeMode: + let + runtimeModeBuild = runtimeModesBuilds.${runtimeMode}; + runtimeModeOut = runtimeModeBuild.outName; + in + '' + ln -sf ${runtimeModeBuild}/out/${runtimeModeOut} $out/out/${runtimeModeOut} + '' + ) runtimeModes; + } + // runtimeModesBuilds +) |