Loading pkgs/build-support/build-bazel-package/default.nix +29 −10 Original line number Diff line number Diff line Loading @@ -10,9 +10,12 @@ args@{ , bazelFlags ? [] , bazelBuildFlags ? [] , bazelTestFlags ? [] , bazelRunFlags ? [] , runTargetFlags ? [] , bazelFetchFlags ? [] , bazelTargets , bazelTargets ? [] , bazelTestTargets ? [] , bazelRunTarget ? null , buildAttrs , fetchAttrs Loading Loading @@ -46,17 +49,23 @@ args@{ let fArgs = removeAttrs args [ "buildAttrs" "fetchAttrs" "removeRulesCC" ] // { name = name; bazelFlags = bazelFlags; bazelBuildFlags = bazelBuildFlags; bazelTestFlags = bazelTestFlags; bazelFetchFlags = bazelFetchFlags; bazelTestTargets = bazelTestTargets; dontAddBazelOpts = dontAddBazelOpts; inherit name bazelFlags bazelBuildFlags bazelTestFlags bazelRunFlags runTargetFlags bazelFetchFlags bazelTargets bazelTestTargets bazelRunTarget dontAddBazelOpts ; }; fBuildAttrs = fArgs // buildAttrs; fFetchAttrs = fArgs // removeAttrs fetchAttrs [ "sha256" ]; bazelCmd = { cmd, additionalFlags, targets }: bazelCmd = { cmd, additionalFlags, targets, targetRunFlags ? [ ] }: lib.optionalString (targets != [ ]) '' # See footnote called [USER and BAZEL_USE_CPP_ONLY_TOOLCHAIN variables] BAZEL_USE_CPP_ONLY_TOOLCHAIN=1 \ Loading @@ -73,7 +82,8 @@ let "''${host_linkopts[@]}" \ $bazelFlags \ ${lib.strings.concatStringsSep " " additionalFlags} \ ${lib.strings.concatStringsSep " " targets} ${lib.strings.concatStringsSep " " targets} \ ${lib.optionalString (targetRunFlags != []) " -- " + lib.strings.concatStringsSep " " targetRunFlags} ''; # we need this to chmod dangling symlinks on darwin, gnu coreutils refuses to do so: # chmod: cannot operate on dangling symlink '$symlink' Loading Loading @@ -262,6 +272,15 @@ stdenv.mkDerivation (fBuildAttrs // { targets = fBuildAttrs.bazelTargets; } } ${ bazelCmd { cmd = "run"; additionalFlags = fBuildAttrs.bazelRunFlags ++ [ "--jobs" "$NIX_BUILD_CORES" ]; # Bazel run only accepts a single target, but `bazelCmd` expects `targets` to be a list. targets = lib.optionals (fBuildAttrs.bazelRunTarget != null) [ fBuildAttrs.bazelRunTarget ]; targetRunFlags = fBuildAttrs.runTargetFlags; } } runHook postBuild ''; }) Loading Loading
pkgs/build-support/build-bazel-package/default.nix +29 −10 Original line number Diff line number Diff line Loading @@ -10,9 +10,12 @@ args@{ , bazelFlags ? [] , bazelBuildFlags ? [] , bazelTestFlags ? [] , bazelRunFlags ? [] , runTargetFlags ? [] , bazelFetchFlags ? [] , bazelTargets , bazelTargets ? [] , bazelTestTargets ? [] , bazelRunTarget ? null , buildAttrs , fetchAttrs Loading Loading @@ -46,17 +49,23 @@ args@{ let fArgs = removeAttrs args [ "buildAttrs" "fetchAttrs" "removeRulesCC" ] // { name = name; bazelFlags = bazelFlags; bazelBuildFlags = bazelBuildFlags; bazelTestFlags = bazelTestFlags; bazelFetchFlags = bazelFetchFlags; bazelTestTargets = bazelTestTargets; dontAddBazelOpts = dontAddBazelOpts; inherit name bazelFlags bazelBuildFlags bazelTestFlags bazelRunFlags runTargetFlags bazelFetchFlags bazelTargets bazelTestTargets bazelRunTarget dontAddBazelOpts ; }; fBuildAttrs = fArgs // buildAttrs; fFetchAttrs = fArgs // removeAttrs fetchAttrs [ "sha256" ]; bazelCmd = { cmd, additionalFlags, targets }: bazelCmd = { cmd, additionalFlags, targets, targetRunFlags ? [ ] }: lib.optionalString (targets != [ ]) '' # See footnote called [USER and BAZEL_USE_CPP_ONLY_TOOLCHAIN variables] BAZEL_USE_CPP_ONLY_TOOLCHAIN=1 \ Loading @@ -73,7 +82,8 @@ let "''${host_linkopts[@]}" \ $bazelFlags \ ${lib.strings.concatStringsSep " " additionalFlags} \ ${lib.strings.concatStringsSep " " targets} ${lib.strings.concatStringsSep " " targets} \ ${lib.optionalString (targetRunFlags != []) " -- " + lib.strings.concatStringsSep " " targetRunFlags} ''; # we need this to chmod dangling symlinks on darwin, gnu coreutils refuses to do so: # chmod: cannot operate on dangling symlink '$symlink' Loading Loading @@ -262,6 +272,15 @@ stdenv.mkDerivation (fBuildAttrs // { targets = fBuildAttrs.bazelTargets; } } ${ bazelCmd { cmd = "run"; additionalFlags = fBuildAttrs.bazelRunFlags ++ [ "--jobs" "$NIX_BUILD_CORES" ]; # Bazel run only accepts a single target, but `bazelCmd` expects `targets` to be a list. targets = lib.optionals (fBuildAttrs.bazelRunTarget != null) [ fBuildAttrs.bazelRunTarget ]; targetRunFlags = fBuildAttrs.runTargetFlags; } } runHook postBuild ''; }) Loading