From 1ee2c5c9ebf564f88d6bbc26bd8d2dd376106b6a Mon Sep 17 00:00:00 2001 From: Uri Baghin Date: Wed, 5 Apr 2023 13:46:39 +1000 Subject: [PATCH] buildBazelPackage: allow buildAttrs and fetchAttrs to override inherited attrs --- .../build-bazel-package/default.nix | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/pkgs/build-support/build-bazel-package/default.nix b/pkgs/build-support/build-bazel-package/default.nix index ab2014ea6a63..1901aa2235e7 100644 --- a/pkgs/build-support/build-bazel-package/default.nix +++ b/pkgs/build-support/build-bazel-package/default.nix @@ -44,7 +44,15 @@ args@{ }: let - fArgs = removeAttrs args [ "buildAttrs" "fetchAttrs" "removeRulesCC" ]; + fArgs = removeAttrs args [ "buildAttrs" "fetchAttrs" "removeRulesCC" ] // { + name = name; + bazelFlags = bazelFlags; + bazelBuildFlags = bazelBuildFlags; + bazelTestFlags = bazelTestFlags; + bazelFetchFlags = bazelFetchFlags; + bazelTestTargets = bazelTestTargets; + dontAddBazelOpts = dontAddBazelOpts; + }; fBuildAttrs = fArgs // buildAttrs; fFetchAttrs = fArgs // removeAttrs fetchAttrs [ "sha256" ]; bazelCmd = { cmd, additionalFlags, targets }: @@ -69,11 +77,9 @@ let ''; in stdenv.mkDerivation (fBuildAttrs // { - inherit name bazelFlags bazelBuildFlags bazelTestFlags bazelFetchFlags bazelTargets bazelTestTargets; deps = stdenv.mkDerivation (fFetchAttrs // { name = "${name}-deps.tar.gz"; - inherit bazelFlags bazelBuildFlags bazelTestFlags bazelFetchFlags bazelTargets bazelTestTargets; impureEnvVars = lib.fetchers.proxyImpureEnvVars ++ fFetchAttrs.impureEnvVars or []; @@ -103,7 +109,7 @@ stdenv.mkDerivation (fBuildAttrs // { "--loading_phase_threads=1" "$bazelFetchFlags" ]; - targets = bazelTargets ++ bazelTestTargets; + targets = fFetchAttrs.bazelTargets ++ fFetchAttrs.bazelTestTargets; } } @@ -187,8 +193,6 @@ stdenv.mkDerivation (fBuildAttrs // { done '' + fBuildAttrs.preConfigure or ""; - inherit dontAddBazelOpts; - buildPhase = fBuildAttrs.buildPhase or '' runHook preBuild @@ -221,15 +225,15 @@ stdenv.mkDerivation (fBuildAttrs // { bazelCmd { cmd = "test"; additionalFlags = - ["--test_output=errors"] ++ bazelTestFlags; - targets = bazelTestTargets; + ["--test_output=errors"] ++ fBuildAttrs.bazelTestFlags; + targets = fBuildAttrs.bazelTestTargets; } } ${ bazelCmd { cmd = "build"; - additionalFlags = bazelBuildFlags; - targets = bazelTargets; + additionalFlags = fBuildAttrs.bazelBuildFlags; + targets = fBuildAttrs.bazelTargets; } } runHook postBuild