third_party/nixpkgs: buildBazelPackage: add "fetchConfigured", and allow removing things that sometimes don't exist

This commit is contained in:
Luke Granger-Brown 2020-05-16 16:37:42 +01:00
parent 65671b0004
commit 921e7aee81

View file

@ -30,6 +30,13 @@ args@{
, removeRulesCC ? true , removeRulesCC ? true
, removeLocalConfigCc ? true , removeLocalConfigCc ? true
, removeLocal ? true , removeLocal ? true
# Use build --nobuild instead of fetch. This allows fetching the dependencies
# required for the build as configured, rather than fetching all the dependencies
# which may not work in some situations (e.g. Java code which ends up relying on
# Debian-specific /usr/share/java paths, but doesn't in the configured build).
, fetchConfigured ? true
, ... , ...
}: }:
@ -77,7 +84,7 @@ in stdenv.mkDerivation (fBuildAttrs // {
bazel \ bazel \
--output_base="$bazelOut" \ --output_base="$bazelOut" \
--output_user_root="$bazelUserRoot" \ --output_user_root="$bazelUserRoot" \
fetch \ ${if fetchConfigured then "build --nobuild" else "fetch"} \
--loading_phase_threads=1 \ --loading_phase_threads=1 \
$bazelFlags \ $bazelFlags \
$bazelFetchFlags \ $bazelFetchFlags \
@ -110,7 +117,7 @@ in stdenv.mkDerivation (fBuildAttrs // {
# platforms -> NIX_BUILD_TOP/tmp/install/35282f5123611afa742331368e9ae529/_embedded_binaries/platforms # platforms -> NIX_BUILD_TOP/tmp/install/35282f5123611afa742331368e9ae529/_embedded_binaries/platforms
find $bazelOut/external -maxdepth 1 -type l | while read symlink; do find $bazelOut/external -maxdepth 1 -type l | while read symlink; do
name="$(basename "$symlink")" name="$(basename "$symlink")"
rm "$symlink" "$bazelOut/external/@$name.marker" rm -f "$symlink" "$bazelOut/external/@$name.marker"
done done
# Patching symlinks to remove build directory reference # Patching symlinks to remove build directory reference