buildBazelPackage: allow specifying whether to remove rules_cc
This commit is contained in:
parent
d1cf282914
commit
3f86f21207
@ -4,10 +4,30 @@
|
|||||||
, lib
|
, lib
|
||||||
}:
|
}:
|
||||||
|
|
||||||
args@{ name, bazelFlags ? [], bazelBuildFlags ? [], bazelFetchFlags ? [], bazelTarget, buildAttrs, fetchAttrs, ... }:
|
args@{
|
||||||
|
name
|
||||||
|
, bazelFlags ? []
|
||||||
|
, bazelBuildFlags ? []
|
||||||
|
, bazelFetchFlags ? []
|
||||||
|
, bazelTarget
|
||||||
|
, buildAttrs
|
||||||
|
, fetchAttrs
|
||||||
|
|
||||||
|
# Newer versions of Bazel are moving away from built-in rules_cc and instead
|
||||||
|
# allow fetching it as an external dependency in a WORKSPACE file[1]. If
|
||||||
|
# removed in the fixed-output fetch phase, building will fail to download it.
|
||||||
|
# This can be seen e.g. in #73097
|
||||||
|
#
|
||||||
|
# This option allows configuring the removal of rules_cc in cases where a
|
||||||
|
# project depends on it via an external dependency.
|
||||||
|
#
|
||||||
|
# [1]: https://github.com/bazelbuild/rules_cc
|
||||||
|
, removeRulesCC ? true
|
||||||
|
, ...
|
||||||
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
fArgs = removeAttrs args [ "buildAttrs" "fetchAttrs" ];
|
fArgs = removeAttrs args [ "buildAttrs" "fetchAttrs" "removeRulesCC" ];
|
||||||
fBuildAttrs = fArgs // buildAttrs;
|
fBuildAttrs = fArgs // buildAttrs;
|
||||||
fFetchAttrs = fArgs // removeAttrs fetchAttrs [ "sha256" ];
|
fFetchAttrs = fArgs // removeAttrs fetchAttrs [ "sha256" ];
|
||||||
|
|
||||||
@ -60,7 +80,7 @@ in stdenv.mkDerivation (fBuildAttrs // {
|
|||||||
|
|
||||||
# Remove all built in external workspaces, Bazel will recreate them when building
|
# Remove all built in external workspaces, Bazel will recreate them when building
|
||||||
rm -rf $bazelOut/external/{bazel_tools,\@bazel_tools.marker}
|
rm -rf $bazelOut/external/{bazel_tools,\@bazel_tools.marker}
|
||||||
rm -rf $bazelOut/external/{rules_cc,\@rules_cc.marker}
|
${if removeRulesCC then "rm -rf $bazelOut/external/{rules_cc,\\@rules_cc.marker}" else ""}
|
||||||
rm -rf $bazelOut/external/{embedded_jdk,\@embedded_jdk.marker}
|
rm -rf $bazelOut/external/{embedded_jdk,\@embedded_jdk.marker}
|
||||||
rm -rf $bazelOut/external/{local_*,\@local_*.marker}
|
rm -rf $bazelOut/external/{local_*,\@local_*.marker}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user