diff options
Diffstat (limited to 'pkgs/development/compilers/flutter/engine/package.nix')
-rw-r--r-- | pkgs/development/compilers/flutter/engine/package.nix | 311 |
1 files changed, 0 insertions, 311 deletions
diff --git a/pkgs/development/compilers/flutter/engine/package.nix b/pkgs/development/compilers/flutter/engine/package.nix deleted file mode 100644 index 6f87b28f1909..000000000000 --- a/pkgs/development/compilers/flutter/engine/package.nix +++ /dev/null @@ -1,311 +0,0 @@ -{ - lib, - callPackage, - writeText, - symlinkJoin, - targetPlatform, - hostPlatform, - darwin, - clang, - llvm, - tools ? callPackage ./tools.nix { inherit hostPlatform; }, - stdenv, - stdenvNoCC, - runCommand, - patchelf, - xorg, - libglvnd, - libepoxy, - wayland, - freetype, - pango, - glib, - harfbuzz, - cairo, - gdk-pixbuf, - at-spi2-atk, - zlib, - gtk3, - pkg-config, - ninja, - python3, - git, - version, - flutterVersion, - dartSdkVersion, - hashes, - patches, - url, - runtimeMode ? "release", - isOptimized ? true, -}: -with lib; -let - expandSingleDep = - dep: lib.optionals (lib.isDerivation dep) ([ dep ] ++ map (output: dep.${output}) dep.outputs); - - expandDeps = deps: flatten (map expandSingleDep deps); - - constants = callPackage ./constants.nix { inherit targetPlatform; }; - - src = callPackage ./source.nix { - inherit - tools - version - hashes - url - ; - }; -in -stdenv.mkDerivation { - pname = "flutter-engine-${runtimeMode}${lib.optionalString (!isOptimized) "-unopt"}"; - inherit - version - runtimeMode - patches - isOptimized - dartSdkVersion - src; - - toolchain = symlinkJoin { - name = "flutter-engine-toolchain-${version}"; - - paths = - expandDeps ( - optionals (stdenv.isLinux) [ - gtk3 - wayland - libepoxy - libglvnd - freetype - at-spi2-atk - glib - gdk-pixbuf - harfbuzz - pango - cairo - xorg.libxcb - xorg.libX11 - xorg.libXcursor - xorg.libXrandr - xorg.libXrender - xorg.libXinerama - xorg.libXi - xorg.libXext - xorg.libXfixes - xorg.libXxf86vm - xorg.xorgproto - zlib - ] - ++ optionals (stdenv.isDarwin) [ - clang - llvm - ] - ) - ++ [ - stdenv.cc.libc_dev - stdenv.cc.libc_lib - ]; - - postBuild = '' - ln -s /nix $out/nix - ''; - }; - - nativeBuildInputs = - [ - python3 - (tools.vpython python3) - git - pkg-config - ninja - ] - ++ lib.optionals (stdenv.isLinux) [ patchelf ] - ++ optionals (stdenv.isDarwin) [ - darwin.system_cmds - darwin.xcode - tools.xcode-select - ] - ++ lib.optionals (stdenv.cc.libc ? bin) [ stdenv.cc.libc.bin ]; - - 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" - "third_party/dart/tools/sdks/dart-sdk/bin/dart" - ]; - - dontPatch = true; - - patchgit = [ - "third_party/dart" - "flutter" - "." - ] ++ lib.optional (lib.versionAtLeast flutterVersion "3.21") "flutter/third_party/skia"; - - postUnpack = '' - pushd ${src.name} - ${lib.optionalString (stdenv.isLinux) '' - for patchtool in ''${patchtools[@]}; do - patchelf src/$patchtool --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) - done - ''} - - for dir in ''${patchgit[@]}; do - pushd src/$dir - rev=$(cat .git/HEAD) - rm -rf .git - git init - git add . - git config user.name "nobody" - git config user.email "nobody@local.host" - git commit -a -m "$rev" - popd - done - - src/flutter/prebuilts/${constants.alt-platform}/dart-sdk/bin/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 - - rm -rf src/third_party/angle/.git - python3 src/flutter/tools/pub_get_offline.py - - pushd src/flutter - - for p in ''${patches[@]}; do - patch -p1 -i $p - done - - popd - popd - ''; - - configureFlags = - [ - "--no-prebuilt-dart-sdk" - "--embedder-for-target" - "--no-goma" - ] - ++ optionals (targetPlatform.isx86_64 == false) [ - "--linux" - "--linux-cpu ${constants.alt-arch}" - ]; - - # NOTE: Once https://github.com/flutter/flutter/issues/127606 is fixed, use "--no-prebuilt-dart-sdk" - configurePhase = - '' - runHook preConfigure - - export PYTHONPATH=$src/src/build - '' - + lib.optionalString stdenv.isDarwin '' - export PATH=${darwin.xcode}/Contents/Developer/usr/bin/:$PATH - '' - + '' - python3 ./src/flutter/tools/gn $configureFlags \ - --runtime-mode $runtimeMode \ - --out-dir $out \ - --target-sysroot $toolchain \ - --target-dir host_$runtimeMode${lib.optionalString (!isOptimized) "_unopt --unoptimized"} \ - --verbose - - runHook postConfigure - ''; - - buildPhase = '' - runHook preBuild - - 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 - ${lib.optionalString (stdenv.isLinux) '' - patchelf $out/out/host_$runtimeMode${ - lib.optionalString (!isOptimized) "_unopt" - }/$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 - - ${lib.optionalString (stdenv.isLinux) '' - patchelf $out/out/host_$runtimeMode${ - lib.optionalString (!isOptimized) "_unopt" - }/dart-sdk/bin/dartaotruntime \ - --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) - ''} - - runHook postBuild - ''; - - # Link sources so we can set $FLUTTER_ENGINE to this derivation - installPhase = '' - runHook preInstall - - for dir in $(find $src/src -mindepth 1 -maxdepth 1); do - ln -sf $dir $out/$(basename $dir) - done - - runHook postInstall - ''; - - meta = { - # Very broken on Darwin - broken = stdenv.isDarwin; - description = "The Flutter engine"; - homepage = "https://flutter.dev"; - maintainers = with maintainers; [ RossComputerGuy ]; - license = licenses.bsd3; - platforms = [ - "x86_64-linux" - "aarch64-linux" - "x86_64-darwin" - "aarch64-darwin" - ]; - }; -} |