Loading pkgs/development/compilers/flutter/default.nix +3 −1 Original line number Diff line number Diff line Loading @@ -8,6 +8,8 @@ let mkFlutter = { version , engineVersion , engineSwiftShaderHash , engineSwiftShaderRev , engineHashes , enginePatches , dartVersion Loading @@ -20,7 +22,7 @@ let }@fargs: let args = { inherit version engineVersion engineHashes enginePatches patches pubspecLock artifactHashes useNixpkgsEngine channel; inherit version engineVersion engineSwiftShaderRev engineSwiftShaderHash engineHashes enginePatches patches pubspecLock artifactHashes useNixpkgsEngine channel; dart = dart.override { version = dartVersion; Loading pkgs/development/compilers/flutter/engine/dart.nix 0 → 100644 +13 −0 Original line number Diff line number Diff line { engine, runCommand }: runCommand "flutter-engine-${engine.version}-dart" { version = engine.dartSdkVersion; inherit engine; inherit (engine) outName; meta = engine.meta // { description = "Dart SDK compiled from the Flutter Engine"; }; } '' ln -s ${engine}/out/$outName/dart-sdk $out '' pkgs/development/compilers/flutter/engine/default.nix +13 −11 Original line number Diff line number Diff line Loading @@ -2,6 +2,8 @@ callPackage, dartSdkVersion, flutterVersion, swiftshaderHash, swiftshaderRev, version, hashes, url, Loading @@ -10,10 +12,13 @@ isOptimized ? true, lib, stdenv, }: dart, mainRuntimeMode ? null, altRuntimeMode ? null, }@args: let mainRuntimeMode = builtins.elemAt runtimeModes 0; altRuntimeMode = builtins.elemAt runtimeModes 1; mainRuntimeMode = args.mainRuntimeMode or builtins.elemAt runtimeModes 0; altRuntimeMode = args.altRuntimeMode or builtins.elemAt runtimeModes 1; runtimeModesBuilds = lib.genAttrs runtimeModes ( runtimeMode: Loading @@ -21,6 +26,8 @@ let inherit dartSdkVersion flutterVersion swiftshaderHash swiftshaderRev version hashes url Loading @@ -42,6 +49,8 @@ stdenv.mkDerivation ( dartSdkVersion isOptimized runtimeMode outName dart ; inherit altRuntimeMode; Loading @@ -51,19 +60,12 @@ stdenv.mkDerivation ( installPhase = '' mkdir -p $out/out for dir in $(find $src/src -mindepth 1 -maxdepth 1); do ln -sf $dir $out/$(basename $dir) done '' + lib.concatMapStrings ( runtimeMode: let runtimeModeBuild = runtimeModesBuilds.${runtimeMode}; runtimeModeOut = "host_${runtimeMode}${ lib.optionalString (!runtimeModeBuild.isOptimized) "_unopt" }"; runtimeModeOut = runtimeModeBuild.outName; in '' ln -sf ${runtimeModeBuild}/out/${runtimeModeOut} $out/out/${runtimeModeOut} Loading pkgs/development/compilers/flutter/engine/package.nix +74 −70 Original line number Diff line number Diff line Loading @@ -11,8 +11,12 @@ tools ? callPackage ./tools.nix { inherit hostPlatform; }, stdenv, stdenvNoCC, dart, fetchgit, runCommand, llvmPackages, patchelf, openbox, xorg, libglvnd, libepoxy, Loading @@ -33,6 +37,8 @@ version, flutterVersion, dartSdkVersion, swiftshaderHash, swiftshaderRev, hashes, patches, url, Loading @@ -56,8 +62,24 @@ let url ; }; swiftshader = fetchgit { url = "https://swiftshader.googlesource.com/SwiftShader.git"; hash = swiftshaderHash; rev = swiftshaderRev; }; llvm = symlinkJoin { name = "llvm"; paths = with llvmPackages; [ clang llvmPackages.llvm ]; }; outName = "host_${runtimeMode}${lib.optionalString (!isOptimized) "_unopt --unoptimized"}"; in stdenv.mkDerivation { stdenv.mkDerivation (finalAttrs: { pname = "flutter-engine-${runtimeMode}${lib.optionalString (!isOptimized) "-unopt"}"; inherit version Loading @@ -65,7 +87,9 @@ stdenv.mkDerivation { patches isOptimized dartSdkVersion src; src outName swiftshader; toolchain = symlinkJoin { name = "flutter-engine-toolchain-${version}"; Loading Loading @@ -107,11 +131,18 @@ stdenv.mkDerivation { stdenv.cc.libc_lib ]; # Needed due to Flutter expecting everything to be relative to $out # and not true absolute path (ie relative to "/"). postBuild = '' ln -s /nix $out/nix mkdir -p $(dirname $(dirname "$out/$out")) ln -s $(dirname "$out") $out/$(dirname "$out") ''; }; NIX_CFLAGS_COMPILE = "-I${finalAttrs.toolchain}/include"; nativeCheckInputs = lib.optionals stdenv.isLinux [ xorg.xorgserver openbox ]; nativeBuildInputs = [ python3 Loading @@ -119,6 +150,7 @@ stdenv.mkDerivation { git pkg-config ninja dart ] ++ lib.optionals (stdenv.isLinux) [ patchelf ] ++ optionals (stdenv.isDarwin) [ Loading @@ -130,53 +162,9 @@ stdenv.mkDerivation { buildInputs = [ gtk3 ]; patchtools = let buildtoolsPath = if lib.versionAtLeast flutterVersion "3.21" then "flutter/buildtools" else "buildtools"; in [ "${buildtoolsPath}/${constants.alt-platform}/clang/bin/clang-apply-replacements" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/clang-doc" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/clang-format" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/clang-include-fixer" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/clang-refactor" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/clang-scan-deps" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/clang-tidy" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/clangd" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/dsymutil" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/find-all-symbols" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/lld" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-ar" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-bolt" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-cov" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-cxxfilt" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-debuginfod-find" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-dwarfdump" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-dwp" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-gsymutil" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-ifs" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-libtool-darwin" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-lipo" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-ml" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-mt" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-nm" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-objcopy" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-objdump" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-pdbutil" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-profdata" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-rc" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-readobj" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-size" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-symbolizer" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-undname" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-xray" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/sancov" "flutter/prebuilts/${constants.alt-platform}/dart-sdk/bin/dartaotruntime" "flutter/prebuilts/${constants.alt-platform}/dart-sdk/bin/dart" "flutter/third_party/gn/gn" patchtools = [ "third_party/dart/tools/sdks/dart-sdk/bin/dart" "flutter/third_party/gn/gn" ]; dontPatch = true; Loading @@ -189,6 +177,9 @@ stdenv.mkDerivation { postUnpack = '' pushd ${src.name} ln -s $swiftshader src/flutter/third_party/swiftshader ${lib.optionalString (stdenv.isLinux) '' for patchtool in ''${patchtools[@]}; do patchelf src/$patchtool --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) Loading @@ -203,11 +194,14 @@ stdenv.mkDerivation { git add . git config user.name "nobody" git config user.email "nobody@local.host" git commit -a -m "$rev" git commit -a -m "$rev" --quiet popd done src/flutter/prebuilts/${constants.alt-platform}/dart-sdk/bin/dart src/third_party/dart/tools/generate_package_config.dart mkdir -p src/flutter/buildtools/${constants.alt-platform} ln -s ${llvm} src/flutter/buildtools/${constants.alt-platform}/clang dart src/third_party/dart/tools/generate_package_config.dart cp ${./pkg-config.py} src/build/config/linux/pkg-config.py echo "${dartSdkVersion}" >src/third_party/dart/sdk/version Loading Loading @@ -250,8 +244,9 @@ stdenv.mkDerivation { --runtime-mode $runtimeMode \ --out-dir $out \ --target-sysroot $toolchain \ --target-dir host_$runtimeMode${lib.optionalString (!isOptimized) "_unopt --unoptimized"} \ --verbose --target-dir $outName \ --target-triple ${targetPlatform.config} \ --enable-fontconfig runHook postConfigure ''; Loading @@ -261,39 +256,48 @@ stdenv.mkDerivation { export TERM=dumb for tool in flatc scenec gen_snapshot dart impellerc shader_archiver gen_snapshot_product; do ninja -C $out/out/host_$runtimeMode${ lib.optionalString (!isOptimized) "_unopt" } -j$NIX_BUILD_CORES $tool ninja -C $out/out/$outName -j$NIX_BUILD_CORES $tool ${lib.optionalString (stdenv.isLinux) '' patchelf $out/out/host_$runtimeMode${ lib.optionalString (!isOptimized) "_unopt" }/$tool --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) patchelf $out/out/$outName/$tool --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) ''} done ninja -C $out/out/host_$runtimeMode${lib.optionalString (!isOptimized) "_unopt"} -j$NIX_BUILD_CORES ninja -C $out/out/$outName -j$NIX_BUILD_CORES ${lib.optionalString (stdenv.isLinux) '' patchelf $out/out/host_$runtimeMode${ lib.optionalString (!isOptimized) "_unopt" }/dart-sdk/bin/dartaotruntime \ patchelf $out/out/$outName/dart-sdk/bin/dartaotruntime \ --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) find $out/out/$outName/exe.unstripped -executable -type f -exec patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) {} \; ''} runHook postBuild ''; # Link sources so we can set $FLUTTER_ENGINE to this derivation # Tests are broken doCheck = false; checkPhase = '' ln -s $out/out src/out touch src/out/run_tests.log sh src/flutter/testing/run_tests.sh $outName rm src/out/run_tests.log ''; installPhase = '' runHook preInstall for dir in $(find $src/src -mindepth 1 -maxdepth 1); do ln -sf $dir $out/$(basename $dir) done rm -rf $out/out/$outName/{obj,gen,exe.unstripped,lib.unstripped,zip_archives} rm $out/out/$outName/{args.gn,build.ninja,build.ninja.d,compile_commands.json,display_list_rendertests,flutter_tester,toolchain.ninja} find $out/out/$outName -name '*_unittests' -delete find $out/out/$outName -name '*_benchmarks' -delete runHook postInstall ''; passthru = { dart = callPackage ./dart.nix { engine = finalAttrs.finalPackage; }; }; meta = { # Very broken on Darwin broken = stdenv.isDarwin; Loading @@ -308,4 +312,4 @@ stdenv.mkDerivation { "aarch64-darwin" ]; }; } }) pkgs/development/compilers/flutter/engine/source.nix +12 −2 Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ callPackage, hostPlatform, targetPlatform, fetchgit, tools ? callPackage ./tools.nix { inherit hostPlatform; }, curl, pkg-config, Loading @@ -16,6 +17,7 @@ }: let constants = callPackage ./constants.nix { inherit targetPlatform; }; boolOption = value: if value then "True" else "False"; in runCommand "flutter-engine-source-${version}-${targetPlatform.system}" { Loading @@ -42,6 +44,14 @@ runCommand "flutter-engine-source-${version}-${targetPlatform.system}" "managed": False, "name": "src/flutter", "url": "${url}", "custom_vars": { "download_fuchsia_deps": False, "download_android_deps": False, "download_linux_deps": ${boolOption targetPlatform.isLinux}, "setup_githooks": False, "download_esbuild": False, "download_dart_sdk": False, }, }] ''; Loading @@ -66,13 +76,13 @@ runCommand "flutter-engine-source-${version}-${targetPlatform.system}" cd $out export PATH=$PATH:$depot_tools python3 $depot_tools/gclient.py sync --no-history --shallow --nohooks >/dev/null python3 $depot_tools/gclient.py sync --no-history --shallow --nohooks 2>&1 >/dev/null find $out -name '.git' -exec dirname {} \; | xargs bash -c 'make_deterministic_repo $@' _ find $out -path '*/.git/*' ! -name 'HEAD' -prune -exec rm -rf {} \; find $out -name '.git' -exec mkdir {}/logs \; find $out -name '.git' -exec cp {}/HEAD {}/logs/HEAD \; python3 src/build/linux/sysroot_scripts/install-sysroot.py --arch=${constants.arch} >/dev/null rm -rf $out/src/flutter/{buildtools,prebuilts,third_party/swiftshader} rm -rf $out/.cipd $out/.gclient $out/.gclient_entries $out/.gclient_previous_custom_vars $out/.gclient_previous_sync_commits '' Loading
pkgs/development/compilers/flutter/default.nix +3 −1 Original line number Diff line number Diff line Loading @@ -8,6 +8,8 @@ let mkFlutter = { version , engineVersion , engineSwiftShaderHash , engineSwiftShaderRev , engineHashes , enginePatches , dartVersion Loading @@ -20,7 +22,7 @@ let }@fargs: let args = { inherit version engineVersion engineHashes enginePatches patches pubspecLock artifactHashes useNixpkgsEngine channel; inherit version engineVersion engineSwiftShaderRev engineSwiftShaderHash engineHashes enginePatches patches pubspecLock artifactHashes useNixpkgsEngine channel; dart = dart.override { version = dartVersion; Loading
pkgs/development/compilers/flutter/engine/dart.nix 0 → 100644 +13 −0 Original line number Diff line number Diff line { engine, runCommand }: runCommand "flutter-engine-${engine.version}-dart" { version = engine.dartSdkVersion; inherit engine; inherit (engine) outName; meta = engine.meta // { description = "Dart SDK compiled from the Flutter Engine"; }; } '' ln -s ${engine}/out/$outName/dart-sdk $out ''
pkgs/development/compilers/flutter/engine/default.nix +13 −11 Original line number Diff line number Diff line Loading @@ -2,6 +2,8 @@ callPackage, dartSdkVersion, flutterVersion, swiftshaderHash, swiftshaderRev, version, hashes, url, Loading @@ -10,10 +12,13 @@ isOptimized ? true, lib, stdenv, }: dart, mainRuntimeMode ? null, altRuntimeMode ? null, }@args: let mainRuntimeMode = builtins.elemAt runtimeModes 0; altRuntimeMode = builtins.elemAt runtimeModes 1; mainRuntimeMode = args.mainRuntimeMode or builtins.elemAt runtimeModes 0; altRuntimeMode = args.altRuntimeMode or builtins.elemAt runtimeModes 1; runtimeModesBuilds = lib.genAttrs runtimeModes ( runtimeMode: Loading @@ -21,6 +26,8 @@ let inherit dartSdkVersion flutterVersion swiftshaderHash swiftshaderRev version hashes url Loading @@ -42,6 +49,8 @@ stdenv.mkDerivation ( dartSdkVersion isOptimized runtimeMode outName dart ; inherit altRuntimeMode; Loading @@ -51,19 +60,12 @@ stdenv.mkDerivation ( installPhase = '' mkdir -p $out/out for dir in $(find $src/src -mindepth 1 -maxdepth 1); do ln -sf $dir $out/$(basename $dir) done '' + lib.concatMapStrings ( runtimeMode: let runtimeModeBuild = runtimeModesBuilds.${runtimeMode}; runtimeModeOut = "host_${runtimeMode}${ lib.optionalString (!runtimeModeBuild.isOptimized) "_unopt" }"; runtimeModeOut = runtimeModeBuild.outName; in '' ln -sf ${runtimeModeBuild}/out/${runtimeModeOut} $out/out/${runtimeModeOut} Loading
pkgs/development/compilers/flutter/engine/package.nix +74 −70 Original line number Diff line number Diff line Loading @@ -11,8 +11,12 @@ tools ? callPackage ./tools.nix { inherit hostPlatform; }, stdenv, stdenvNoCC, dart, fetchgit, runCommand, llvmPackages, patchelf, openbox, xorg, libglvnd, libepoxy, Loading @@ -33,6 +37,8 @@ version, flutterVersion, dartSdkVersion, swiftshaderHash, swiftshaderRev, hashes, patches, url, Loading @@ -56,8 +62,24 @@ let url ; }; swiftshader = fetchgit { url = "https://swiftshader.googlesource.com/SwiftShader.git"; hash = swiftshaderHash; rev = swiftshaderRev; }; llvm = symlinkJoin { name = "llvm"; paths = with llvmPackages; [ clang llvmPackages.llvm ]; }; outName = "host_${runtimeMode}${lib.optionalString (!isOptimized) "_unopt --unoptimized"}"; in stdenv.mkDerivation { stdenv.mkDerivation (finalAttrs: { pname = "flutter-engine-${runtimeMode}${lib.optionalString (!isOptimized) "-unopt"}"; inherit version Loading @@ -65,7 +87,9 @@ stdenv.mkDerivation { patches isOptimized dartSdkVersion src; src outName swiftshader; toolchain = symlinkJoin { name = "flutter-engine-toolchain-${version}"; Loading Loading @@ -107,11 +131,18 @@ stdenv.mkDerivation { stdenv.cc.libc_lib ]; # Needed due to Flutter expecting everything to be relative to $out # and not true absolute path (ie relative to "/"). postBuild = '' ln -s /nix $out/nix mkdir -p $(dirname $(dirname "$out/$out")) ln -s $(dirname "$out") $out/$(dirname "$out") ''; }; NIX_CFLAGS_COMPILE = "-I${finalAttrs.toolchain}/include"; nativeCheckInputs = lib.optionals stdenv.isLinux [ xorg.xorgserver openbox ]; nativeBuildInputs = [ python3 Loading @@ -119,6 +150,7 @@ stdenv.mkDerivation { git pkg-config ninja dart ] ++ lib.optionals (stdenv.isLinux) [ patchelf ] ++ optionals (stdenv.isDarwin) [ Loading @@ -130,53 +162,9 @@ stdenv.mkDerivation { buildInputs = [ gtk3 ]; patchtools = let buildtoolsPath = if lib.versionAtLeast flutterVersion "3.21" then "flutter/buildtools" else "buildtools"; in [ "${buildtoolsPath}/${constants.alt-platform}/clang/bin/clang-apply-replacements" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/clang-doc" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/clang-format" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/clang-include-fixer" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/clang-refactor" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/clang-scan-deps" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/clang-tidy" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/clangd" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/dsymutil" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/find-all-symbols" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/lld" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-ar" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-bolt" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-cov" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-cxxfilt" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-debuginfod-find" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-dwarfdump" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-dwp" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-gsymutil" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-ifs" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-libtool-darwin" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-lipo" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-ml" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-mt" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-nm" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-objcopy" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-objdump" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-pdbutil" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-profdata" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-rc" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-readobj" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-size" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-symbolizer" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-undname" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-xray" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm" "${buildtoolsPath}/${constants.alt-platform}/clang/bin/sancov" "flutter/prebuilts/${constants.alt-platform}/dart-sdk/bin/dartaotruntime" "flutter/prebuilts/${constants.alt-platform}/dart-sdk/bin/dart" "flutter/third_party/gn/gn" patchtools = [ "third_party/dart/tools/sdks/dart-sdk/bin/dart" "flutter/third_party/gn/gn" ]; dontPatch = true; Loading @@ -189,6 +177,9 @@ stdenv.mkDerivation { postUnpack = '' pushd ${src.name} ln -s $swiftshader src/flutter/third_party/swiftshader ${lib.optionalString (stdenv.isLinux) '' for patchtool in ''${patchtools[@]}; do patchelf src/$patchtool --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) Loading @@ -203,11 +194,14 @@ stdenv.mkDerivation { git add . git config user.name "nobody" git config user.email "nobody@local.host" git commit -a -m "$rev" git commit -a -m "$rev" --quiet popd done src/flutter/prebuilts/${constants.alt-platform}/dart-sdk/bin/dart src/third_party/dart/tools/generate_package_config.dart mkdir -p src/flutter/buildtools/${constants.alt-platform} ln -s ${llvm} src/flutter/buildtools/${constants.alt-platform}/clang dart src/third_party/dart/tools/generate_package_config.dart cp ${./pkg-config.py} src/build/config/linux/pkg-config.py echo "${dartSdkVersion}" >src/third_party/dart/sdk/version Loading Loading @@ -250,8 +244,9 @@ stdenv.mkDerivation { --runtime-mode $runtimeMode \ --out-dir $out \ --target-sysroot $toolchain \ --target-dir host_$runtimeMode${lib.optionalString (!isOptimized) "_unopt --unoptimized"} \ --verbose --target-dir $outName \ --target-triple ${targetPlatform.config} \ --enable-fontconfig runHook postConfigure ''; Loading @@ -261,39 +256,48 @@ stdenv.mkDerivation { export TERM=dumb for tool in flatc scenec gen_snapshot dart impellerc shader_archiver gen_snapshot_product; do ninja -C $out/out/host_$runtimeMode${ lib.optionalString (!isOptimized) "_unopt" } -j$NIX_BUILD_CORES $tool ninja -C $out/out/$outName -j$NIX_BUILD_CORES $tool ${lib.optionalString (stdenv.isLinux) '' patchelf $out/out/host_$runtimeMode${ lib.optionalString (!isOptimized) "_unopt" }/$tool --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) patchelf $out/out/$outName/$tool --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) ''} done ninja -C $out/out/host_$runtimeMode${lib.optionalString (!isOptimized) "_unopt"} -j$NIX_BUILD_CORES ninja -C $out/out/$outName -j$NIX_BUILD_CORES ${lib.optionalString (stdenv.isLinux) '' patchelf $out/out/host_$runtimeMode${ lib.optionalString (!isOptimized) "_unopt" }/dart-sdk/bin/dartaotruntime \ patchelf $out/out/$outName/dart-sdk/bin/dartaotruntime \ --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) find $out/out/$outName/exe.unstripped -executable -type f -exec patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) {} \; ''} runHook postBuild ''; # Link sources so we can set $FLUTTER_ENGINE to this derivation # Tests are broken doCheck = false; checkPhase = '' ln -s $out/out src/out touch src/out/run_tests.log sh src/flutter/testing/run_tests.sh $outName rm src/out/run_tests.log ''; installPhase = '' runHook preInstall for dir in $(find $src/src -mindepth 1 -maxdepth 1); do ln -sf $dir $out/$(basename $dir) done rm -rf $out/out/$outName/{obj,gen,exe.unstripped,lib.unstripped,zip_archives} rm $out/out/$outName/{args.gn,build.ninja,build.ninja.d,compile_commands.json,display_list_rendertests,flutter_tester,toolchain.ninja} find $out/out/$outName -name '*_unittests' -delete find $out/out/$outName -name '*_benchmarks' -delete runHook postInstall ''; passthru = { dart = callPackage ./dart.nix { engine = finalAttrs.finalPackage; }; }; meta = { # Very broken on Darwin broken = stdenv.isDarwin; Loading @@ -308,4 +312,4 @@ stdenv.mkDerivation { "aarch64-darwin" ]; }; } })
pkgs/development/compilers/flutter/engine/source.nix +12 −2 Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ callPackage, hostPlatform, targetPlatform, fetchgit, tools ? callPackage ./tools.nix { inherit hostPlatform; }, curl, pkg-config, Loading @@ -16,6 +17,7 @@ }: let constants = callPackage ./constants.nix { inherit targetPlatform; }; boolOption = value: if value then "True" else "False"; in runCommand "flutter-engine-source-${version}-${targetPlatform.system}" { Loading @@ -42,6 +44,14 @@ runCommand "flutter-engine-source-${version}-${targetPlatform.system}" "managed": False, "name": "src/flutter", "url": "${url}", "custom_vars": { "download_fuchsia_deps": False, "download_android_deps": False, "download_linux_deps": ${boolOption targetPlatform.isLinux}, "setup_githooks": False, "download_esbuild": False, "download_dart_sdk": False, }, }] ''; Loading @@ -66,13 +76,13 @@ runCommand "flutter-engine-source-${version}-${targetPlatform.system}" cd $out export PATH=$PATH:$depot_tools python3 $depot_tools/gclient.py sync --no-history --shallow --nohooks >/dev/null python3 $depot_tools/gclient.py sync --no-history --shallow --nohooks 2>&1 >/dev/null find $out -name '.git' -exec dirname {} \; | xargs bash -c 'make_deterministic_repo $@' _ find $out -path '*/.git/*' ! -name 'HEAD' -prune -exec rm -rf {} \; find $out -name '.git' -exec mkdir {}/logs \; find $out -name '.git' -exec cp {}/HEAD {}/logs/HEAD \; python3 src/build/linux/sysroot_scripts/install-sysroot.py --arch=${constants.arch} >/dev/null rm -rf $out/src/flutter/{buildtools,prebuilts,third_party/swiftshader} rm -rf $out/.cipd $out/.gclient $out/.gclient_entries $out/.gclient_previous_custom_vars $out/.gclient_previous_sync_commits ''