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