nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 callPackage,
3 dartSdkVersion,
4 flutterVersion,
5 swiftshaderHash,
6 swiftshaderRev,
7 version,
8 hashes,
9 url,
10 patches,
11 runtimeModes,
12 lib,
13 stdenv,
14 ...
15}@args:
16let
17 mainRuntimeMode = args.mainRuntimeMode or builtins.elemAt runtimeModes 0;
18 altRuntimeMode = args.altRuntimeMode or builtins.elemAt runtimeModes 1;
19
20 runtimeModesBuilds = lib.genAttrs runtimeModes (
21 runtimeMode:
22 callPackage ./package.nix {
23 inherit
24 dartSdkVersion
25 flutterVersion
26 swiftshaderHash
27 swiftshaderRev
28 version
29 hashes
30 url
31 patches
32 runtimeMode
33 ;
34 isOptimized = args.isOptimized or runtimeMode != "debug";
35 }
36 );
37in
38stdenv.mkDerivation (
39 {
40 pname = "flutter-engine";
41 inherit url runtimeModes altRuntimeMode;
42 inherit (runtimeModesBuilds.${mainRuntimeMode}) version src meta;
43
44 dontUnpack = true;
45 dontBuild = true;
46
47 installPhase = ''
48 runHook preInstall
49
50 mkdir --parents $out/out
51 ''
52 + lib.concatMapStrings (
53 runtimeMode:
54 let
55 runtimeModeBuild = runtimeModesBuilds.${runtimeMode};
56 runtimeModeOut = runtimeModeBuild.outName;
57 in
58 ''
59 ln --symbolic --force ${runtimeModeBuild}/out/${runtimeModeOut} $out/out/${runtimeModeOut}
60 ''
61 ) runtimeModes
62 + ''
63 runHook postInstall
64 '';
65
66 passthru = {
67 inherit (runtimeModesBuilds.${mainRuntimeMode})
68 dartSdkVersion
69 isOptimized
70 runtimeMode
71 outName
72 dart
73 swiftshader
74 ;
75 };
76 }
77 // runtimeModesBuilds
78)