Loading pkgs/build-support/build-bazel-package/default.nix +71 −49 Original line number Diff line number Diff line Loading @@ -13,8 +13,10 @@ args@{ , bazel ? bazelPkg , bazelFlags ? [] , bazelBuildFlags ? [] , bazelTestFlags ? [] , bazelFetchFlags ? [] , bazelTarget , bazelTestTargets ? [] , buildAttrs , fetchAttrs Loading Loading @@ -50,13 +52,33 @@ let fArgs = removeAttrs args [ "buildAttrs" "fetchAttrs" "removeRulesCC" ]; fBuildAttrs = fArgs // buildAttrs; fFetchAttrs = fArgs // removeAttrs fetchAttrs [ "sha256" ]; in stdenv.mkDerivation (fBuildAttrs // { inherit name bazelFlags bazelBuildFlags bazelFetchFlags bazelTarget; bazelCmd = { cmd, additionalFlags, targets }: lib.optionalString (targets != [ ]) '' # See footnote called [USER and BAZEL_USE_CPP_ONLY_TOOLCHAIN variables] BAZEL_USE_CPP_ONLY_TOOLCHAIN=1 \ USER=homeless-shelter \ bazel \ --batch \ --output_base="$bazelOut" \ --output_user_root="$bazelUserRoot" \ ${cmd} \ --curses=no \ -j $NIX_BUILD_CORES \ "''${copts[@]}" \ "''${host_copts[@]}" \ "''${linkopts[@]}" \ "''${host_linkopts[@]}" \ $bazelFlags \ ${lib.strings.concatStringsSep " " additionalFlags} \ ${lib.strings.concatStringsSep " " targets} ''; in stdenv.mkDerivation (fBuildAttrs // { inherit name bazelFlags bazelBuildFlags bazelTestFlags bazelFetchFlags bazelTarget bazelTestTargets; deps = stdenv.mkDerivation (fFetchAttrs // { name = "${name}-deps.tar.gz"; inherit bazelFlags bazelBuildFlags bazelFetchFlags bazelTarget; inherit bazelFlags bazelBuildFlags bazelTestFlags bazelFetchFlags bazelTarget bazelTestTargets; impureEnvVars = lib.fetchers.proxyImpureEnvVars ++ fFetchAttrs.impureEnvVars or []; Loading @@ -77,14 +99,7 @@ in stdenv.mkDerivation (fBuildAttrs // { buildPhase = fFetchAttrs.buildPhase or '' runHook preBuild # Bazel computes the default value of output_user_root before parsing the # flag. The computation of the default value involves getting the $USER # from the environment. I don't have that variable when building with # sandbox enabled. Code here # https://github.com/bazelbuild/bazel/blob/9323c57607d37f9c949b60e293b573584906da46/src/main/cpp/startup_options.cc#L123-L124 # # On macOS Bazel will use the system installed Xcode or CLT toolchain instead of the one in the PATH unless we pass BAZEL_USE_CPP_ONLY_TOOLCHAIN # See footnote called [USER and BAZEL_USE_CPP_ONLY_TOOLCHAIN variables]. # We disable multithreading for the fetching phase since it can lead to timeouts with many dependencies/threads: # https://github.com/bazelbuild/bazel/issues/6502 BAZEL_USE_CPP_ONLY_TOOLCHAIN=1 \ Loading @@ -97,7 +112,8 @@ in stdenv.mkDerivation (fBuildAttrs // { --loading_phase_threads=1 \ $bazelFlags \ $bazelFetchFlags \ $bazelTarget ${bazelTarget} \ ${lib.strings.concatStringsSep " " bazelTestTargets} runHook postBuild ''; Loading Loading @@ -189,7 +205,7 @@ in stdenv.mkDerivation (fBuildAttrs // { # the wrappers are expecting will not be set. So instead of relying on the # wrappers picking them up, pass them in explicitly via `--copt`, `--linkopt` # and related flags. # copts=() host_copts=() linkopts=() Loading @@ -209,23 +225,29 @@ in stdenv.mkDerivation (fBuildAttrs // { done fi BAZEL_USE_CPP_ONLY_TOOLCHAIN=1 \ USER=homeless-shelter \ bazel \ --batch \ --output_base="$bazelOut" \ --output_user_root="$bazelUserRoot" \ build \ --curses=no \ -j $NIX_BUILD_CORES \ "''${copts[@]}" \ "''${host_copts[@]}" \ "''${linkopts[@]}" \ "''${host_linkopts[@]}" \ $bazelFlags \ $bazelBuildFlags \ $bazelTarget ${ bazelCmd { cmd = "test"; additionalFlags = ["--test_output=errors"] ++ bazelTestFlags; targets = bazelTestTargets; } } ${ bazelCmd { cmd = "build"; additionalFlags = bazelBuildFlags; targets = [bazelTarget]; } } runHook postBuild ''; }) # [USER and BAZEL_USE_CPP_ONLY_TOOLCHAIN variables]: # Bazel computes the default value of output_user_root before parsing the # flag. The computation of the default value involves getting the $USER # from the environment. Code here : # https://github.com/bazelbuild/bazel/blob/9323c57607d37f9c949b60e293b573584906da46/src/main/cpp/startup_options.cc#L123-L124 # # On macOS Bazel will use the system installed Xcode or CLT toolchain instead of the one in the PATH unless we pass BAZEL_USE_CPP_ONLY_TOOLCHAIN. pkgs/development/tools/verible/default.nix +18 −5 Original line number Diff line number Diff line Loading @@ -31,11 +31,15 @@ buildBazelPackage rec { ./remove-unused-deps.patch ]; bazelFlags = [ "--//bazel:use_local_flex_bison" ]; bazelFlags = [ "--//bazel:use_local_flex_bison" "--javabase=@bazel_tools//tools/jdk:remote_jdk11" "--host_javabase=@bazel_tools//tools/jdk:remote_jdk11" ]; fetchAttrs = { # Fixed output derivation hash after bazel fetch sha256 = "sha256-XoLdlEeoDJlyWlnXZADHOKu06zKHgHJfgey8UhOt+LM="; sha256 = "sha256-45PINJ7VtL5Jl/nAQNkiSCt8wUwtytNfgeNMZaz3Y9U="; }; nativeBuildInputs = [ Loading @@ -45,14 +49,23 @@ buildBazelPackage rec { ]; postPatch = '' patchShebangs bazel/build-version.py \ common/util/create_version_header.sh \ patchShebangs\ bazel/build-version.py \ bazel/sh_test_with_runfiles_lib.sh \ common/lsp/dummy-ls_test.sh \ common/parser/move_yacc_stack_symbols.sh \ common/parser/record_syntax_error.sh common/parser/record_syntax_error.sh \ common/tools/patch_tool_test.sh \ common/tools/verible-transform-interactive.sh \ common/tools/verible-transform-interactive-test.sh \ common/util/create_version_header.sh \ kythe-browse.sh \ verilog/tools ''; removeRulesCC = false; bazelTarget = ":install-binaries"; bazelTestTargets = [ "//..." ]; bazelBuildFlags = [ "-c opt" ]; Loading Loading
pkgs/build-support/build-bazel-package/default.nix +71 −49 Original line number Diff line number Diff line Loading @@ -13,8 +13,10 @@ args@{ , bazel ? bazelPkg , bazelFlags ? [] , bazelBuildFlags ? [] , bazelTestFlags ? [] , bazelFetchFlags ? [] , bazelTarget , bazelTestTargets ? [] , buildAttrs , fetchAttrs Loading Loading @@ -50,13 +52,33 @@ let fArgs = removeAttrs args [ "buildAttrs" "fetchAttrs" "removeRulesCC" ]; fBuildAttrs = fArgs // buildAttrs; fFetchAttrs = fArgs // removeAttrs fetchAttrs [ "sha256" ]; in stdenv.mkDerivation (fBuildAttrs // { inherit name bazelFlags bazelBuildFlags bazelFetchFlags bazelTarget; bazelCmd = { cmd, additionalFlags, targets }: lib.optionalString (targets != [ ]) '' # See footnote called [USER and BAZEL_USE_CPP_ONLY_TOOLCHAIN variables] BAZEL_USE_CPP_ONLY_TOOLCHAIN=1 \ USER=homeless-shelter \ bazel \ --batch \ --output_base="$bazelOut" \ --output_user_root="$bazelUserRoot" \ ${cmd} \ --curses=no \ -j $NIX_BUILD_CORES \ "''${copts[@]}" \ "''${host_copts[@]}" \ "''${linkopts[@]}" \ "''${host_linkopts[@]}" \ $bazelFlags \ ${lib.strings.concatStringsSep " " additionalFlags} \ ${lib.strings.concatStringsSep " " targets} ''; in stdenv.mkDerivation (fBuildAttrs // { inherit name bazelFlags bazelBuildFlags bazelTestFlags bazelFetchFlags bazelTarget bazelTestTargets; deps = stdenv.mkDerivation (fFetchAttrs // { name = "${name}-deps.tar.gz"; inherit bazelFlags bazelBuildFlags bazelFetchFlags bazelTarget; inherit bazelFlags bazelBuildFlags bazelTestFlags bazelFetchFlags bazelTarget bazelTestTargets; impureEnvVars = lib.fetchers.proxyImpureEnvVars ++ fFetchAttrs.impureEnvVars or []; Loading @@ -77,14 +99,7 @@ in stdenv.mkDerivation (fBuildAttrs // { buildPhase = fFetchAttrs.buildPhase or '' runHook preBuild # Bazel computes the default value of output_user_root before parsing the # flag. The computation of the default value involves getting the $USER # from the environment. I don't have that variable when building with # sandbox enabled. Code here # https://github.com/bazelbuild/bazel/blob/9323c57607d37f9c949b60e293b573584906da46/src/main/cpp/startup_options.cc#L123-L124 # # On macOS Bazel will use the system installed Xcode or CLT toolchain instead of the one in the PATH unless we pass BAZEL_USE_CPP_ONLY_TOOLCHAIN # See footnote called [USER and BAZEL_USE_CPP_ONLY_TOOLCHAIN variables]. # We disable multithreading for the fetching phase since it can lead to timeouts with many dependencies/threads: # https://github.com/bazelbuild/bazel/issues/6502 BAZEL_USE_CPP_ONLY_TOOLCHAIN=1 \ Loading @@ -97,7 +112,8 @@ in stdenv.mkDerivation (fBuildAttrs // { --loading_phase_threads=1 \ $bazelFlags \ $bazelFetchFlags \ $bazelTarget ${bazelTarget} \ ${lib.strings.concatStringsSep " " bazelTestTargets} runHook postBuild ''; Loading Loading @@ -189,7 +205,7 @@ in stdenv.mkDerivation (fBuildAttrs // { # the wrappers are expecting will not be set. So instead of relying on the # wrappers picking them up, pass them in explicitly via `--copt`, `--linkopt` # and related flags. # copts=() host_copts=() linkopts=() Loading @@ -209,23 +225,29 @@ in stdenv.mkDerivation (fBuildAttrs // { done fi BAZEL_USE_CPP_ONLY_TOOLCHAIN=1 \ USER=homeless-shelter \ bazel \ --batch \ --output_base="$bazelOut" \ --output_user_root="$bazelUserRoot" \ build \ --curses=no \ -j $NIX_BUILD_CORES \ "''${copts[@]}" \ "''${host_copts[@]}" \ "''${linkopts[@]}" \ "''${host_linkopts[@]}" \ $bazelFlags \ $bazelBuildFlags \ $bazelTarget ${ bazelCmd { cmd = "test"; additionalFlags = ["--test_output=errors"] ++ bazelTestFlags; targets = bazelTestTargets; } } ${ bazelCmd { cmd = "build"; additionalFlags = bazelBuildFlags; targets = [bazelTarget]; } } runHook postBuild ''; }) # [USER and BAZEL_USE_CPP_ONLY_TOOLCHAIN variables]: # Bazel computes the default value of output_user_root before parsing the # flag. The computation of the default value involves getting the $USER # from the environment. Code here : # https://github.com/bazelbuild/bazel/blob/9323c57607d37f9c949b60e293b573584906da46/src/main/cpp/startup_options.cc#L123-L124 # # On macOS Bazel will use the system installed Xcode or CLT toolchain instead of the one in the PATH unless we pass BAZEL_USE_CPP_ONLY_TOOLCHAIN.
pkgs/development/tools/verible/default.nix +18 −5 Original line number Diff line number Diff line Loading @@ -31,11 +31,15 @@ buildBazelPackage rec { ./remove-unused-deps.patch ]; bazelFlags = [ "--//bazel:use_local_flex_bison" ]; bazelFlags = [ "--//bazel:use_local_flex_bison" "--javabase=@bazel_tools//tools/jdk:remote_jdk11" "--host_javabase=@bazel_tools//tools/jdk:remote_jdk11" ]; fetchAttrs = { # Fixed output derivation hash after bazel fetch sha256 = "sha256-XoLdlEeoDJlyWlnXZADHOKu06zKHgHJfgey8UhOt+LM="; sha256 = "sha256-45PINJ7VtL5Jl/nAQNkiSCt8wUwtytNfgeNMZaz3Y9U="; }; nativeBuildInputs = [ Loading @@ -45,14 +49,23 @@ buildBazelPackage rec { ]; postPatch = '' patchShebangs bazel/build-version.py \ common/util/create_version_header.sh \ patchShebangs\ bazel/build-version.py \ bazel/sh_test_with_runfiles_lib.sh \ common/lsp/dummy-ls_test.sh \ common/parser/move_yacc_stack_symbols.sh \ common/parser/record_syntax_error.sh common/parser/record_syntax_error.sh \ common/tools/patch_tool_test.sh \ common/tools/verible-transform-interactive.sh \ common/tools/verible-transform-interactive-test.sh \ common/util/create_version_header.sh \ kythe-browse.sh \ verilog/tools ''; removeRulesCC = false; bazelTarget = ":install-binaries"; bazelTestTargets = [ "//..." ]; bazelBuildFlags = [ "-c opt" ]; Loading