diff options
author | Andrew Dunham <andrew@du.nham.ca> | 2019-11-23 20:25:02 -0800 |
---|---|---|
committer | Profpatsch <mail@profpatsch.de> | 2019-11-27 10:43:34 +0100 |
commit | 3f86f2120717c33792fc3f8a7cef8dffc9e73c2b (patch) | |
tree | c616d92ff61420d24dc0a1473c0453dee2253e66 /pkgs/build-support/build-bazel-package | |
parent | d1cf28291483247c210c4536f35f5a151377e477 (diff) |
buildBazelPackage: allow specifying whether to remove rules_cc
Diffstat (limited to 'pkgs/build-support/build-bazel-package')
-rw-r--r-- | pkgs/build-support/build-bazel-package/default.nix | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/pkgs/build-support/build-bazel-package/default.nix b/pkgs/build-support/build-bazel-package/default.nix index a1a38484386d4..be256b8e591b1 100644 --- a/pkgs/build-support/build-bazel-package/default.nix +++ b/pkgs/build-support/build-bazel-package/default.nix @@ -4,10 +4,30 @@ , 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 - fArgs = removeAttrs args [ "buildAttrs" "fetchAttrs" ]; + fArgs = removeAttrs args [ "buildAttrs" "fetchAttrs" "removeRulesCC" ]; fBuildAttrs = fArgs // buildAttrs; 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 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/{local_*,\@local_*.marker} |