depot/third_party/nixpkgs/pkgs/development/compilers/flutter/engine/source.nix
Default email 83627f9931 Project import generated by Copybara.
GitOrigin-RevId: 2893f56de08021cffd9b6b6dfc70fd9ccd51eb60
2024-06-24 14:47:55 -04:00

88 lines
2.4 KiB
Nix

{
callPackage,
hostPlatform,
targetPlatform,
fetchgit,
tools ? callPackage ./tools.nix { inherit hostPlatform; },
curl,
pkg-config,
git,
python3,
runCommand,
writeText,
cacert,
version,
hashes,
url,
}:
let
constants = callPackage ./constants.nix { inherit targetPlatform; };
boolOption = value: if value then "True" else "False";
in
runCommand "flutter-engine-source-${version}-${targetPlatform.system}"
{
pname = "flutter-engine-source";
inherit version;
inherit (tools) depot_tools;
nativeBuildInputs = [
curl
pkg-config
git
tools.cipd
(python3.withPackages (
ps: with ps; [
httplib2
six
]
))
];
gclient = writeText "flutter-engine-${version}.gclient" ''
solutions = [{
"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,
},
}]
'';
NIX_SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt";
GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt";
SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt";
DEPOT_TOOLS_UPDATE = "0";
DEPOT_TOOLS_COLLECT_METRICS = "0";
PYTHONDONTWRITEBYTECODE = "1";
outputHashAlgo = "sha256";
outputHashMode = "recursive";
outputHash = hashes.${targetPlatform.system} or (throw "Hash not set for ${targetPlatform.system}");
}
''
source ${../../../../build-support/fetchgit/deterministic-git}
export -f clean_git
export -f make_deterministic_repo
mkdir -p $out
cp $gclient $out/.gclient
cd $out
export PATH=$PATH:$depot_tools
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 \;
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
''