mirror of
https://github.com/bazel-contrib/rules_foreign_cc
synced 2024-11-28 08:43:26 +00:00
Moved more toolchain related rules into ./toolchains
(#541)
* Moved more toolchain related rules into `./toolchains` * Updated toolchain locations in rules
This commit is contained in:
parent
c309ec1319
commit
43a43353ff
|
@ -15,6 +15,7 @@ bzl_library(
|
||||||
deps = [
|
deps = [
|
||||||
":bazel_tools_bzl_srcs",
|
":bazel_tools_bzl_srcs",
|
||||||
"//for_workspace:bzl_srcs",
|
"//for_workspace:bzl_srcs",
|
||||||
|
"//foreign_cc:bzl_srcs",
|
||||||
"//toolchains:bzl_srcs",
|
"//toolchains:bzl_srcs",
|
||||||
"//tools/build_defs:bzl_srcs",
|
"//tools/build_defs:bzl_srcs",
|
||||||
],
|
],
|
||||||
|
|
|
@ -261,7 +261,7 @@ Rule for building Make. Invokes configure script and make install.
|
||||||
native_tool_toolchain(<a href="#native_tool_toolchain-name">name</a>, <a href="#native_tool_toolchain-path">path</a>, <a href="#native_tool_toolchain-target">target</a>)
|
native_tool_toolchain(<a href="#native_tool_toolchain-name">name</a>, <a href="#native_tool_toolchain-path">path</a>, <a href="#native_tool_toolchain-target">target</a>)
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
Rule for defining the toolchain data of the native tools (cmake, ninja), to be used by rules_foreign_cc with toolchain types `@rules_foreign_cc//tools/build_defs:cmake_toolchain` and `@rules_foreign_cc//tools/build_defs:ninja_toolchain`.
|
Rule for defining the toolchain data of the native tools (cmake, ninja), to be used by rules_foreign_cc with toolchain types `@rules_foreign_cc//toolchains:cmake_toolchain` and `@rules_foreign_cc//toolchains:ninja_toolchain`.
|
||||||
|
|
||||||
**ATTRIBUTES**
|
**ATTRIBUTES**
|
||||||
|
|
||||||
|
@ -487,7 +487,7 @@ Call this function from the WORKSPACE file to initialize rules_foreign_cc de
|
||||||
|
|
||||||
| Name | Description | Default Value |
|
| Name | Description | Default Value |
|
||||||
| :------------- | :------------- | :------------- |
|
| :------------- | :------------- | :------------- |
|
||||||
| <a id="rules_foreign_cc_dependencies-native_tools_toolchains"></a>native_tools_toolchains | pass the toolchains for toolchain types '@rules_foreign_cc//tools/build_defs:cmake_toolchain' and '@rules_foreign_cc//tools/build_defs:ninja_toolchain' with the needed platform constraints. If you do not pass anything, registered default toolchains will be selected (see below). | <code>[]</code> |
|
| <a id="rules_foreign_cc_dependencies-native_tools_toolchains"></a>native_tools_toolchains | pass the toolchains for toolchain types '@rules_foreign_cc//toolchains:cmake_toolchain' and '@rules_foreign_cc//toolchains:ninja_toolchain' with the needed platform constraints. If you do not pass anything, registered default toolchains will be selected (see below). | <code>[]</code> |
|
||||||
| <a id="rules_foreign_cc_dependencies-register_default_tools"></a>register_default_tools | If True, the cmake and ninja toolchains, calling corresponding preinstalled binaries by name (cmake, ninja) will be registered after 'native_tools_toolchains' without any platform constraints. The default is True. | <code>True</code> |
|
| <a id="rules_foreign_cc_dependencies-register_default_tools"></a>register_default_tools | If True, the cmake and ninja toolchains, calling corresponding preinstalled binaries by name (cmake, ninja) will be registered after 'native_tools_toolchains' without any platform constraints. The default is True. | <code>True</code> |
|
||||||
| <a id="rules_foreign_cc_dependencies-cmake_version"></a>cmake_version | The target version of the cmake toolchain if <code>register_default_tools</code> or <code>register_built_tools</code> is set to <code>True</code>. | <code>"3.19.6"</code> |
|
| <a id="rules_foreign_cc_dependencies-cmake_version"></a>cmake_version | The target version of the cmake toolchain if <code>register_default_tools</code> or <code>register_built_tools</code> is set to <code>True</code>. | <code>"3.19.6"</code> |
|
||||||
| <a id="rules_foreign_cc_dependencies-make_version"></a>make_version | The target version of the default make toolchain if <code>register_built_tools</code> is set to <code>True</code>. | <code>"4.3"</code> |
|
| <a id="rules_foreign_cc_dependencies-make_version"></a>make_version | The target version of the default make toolchain if <code>register_built_tools</code> is set to <code>True</code>. | <code>"4.3"</code> |
|
||||||
|
|
|
@ -1,9 +1,14 @@
|
||||||
"""A module exporting symbols for Stardoc generation."""
|
"""A module exporting symbols for Stardoc generation."""
|
||||||
|
|
||||||
load("@rules_foreign_cc//:workspace_definitions.bzl", _rules_foreign_cc_dependencies = "rules_foreign_cc_dependencies")
|
load("@rules_foreign_cc//:workspace_definitions.bzl", _rules_foreign_cc_dependencies = "rules_foreign_cc_dependencies")
|
||||||
load("@rules_foreign_cc//for_workspace:cmake_build.bzl", _cmake_tool = "cmake_tool")
|
load("@rules_foreign_cc//foreign_cc/built_tools:cmake_build.bzl", _cmake_tool = "cmake_tool")
|
||||||
load("@rules_foreign_cc//for_workspace:make_build.bzl", _make_tool = "make_tool")
|
load("@rules_foreign_cc//foreign_cc/built_tools:make_build.bzl", _make_tool = "make_tool")
|
||||||
load("@rules_foreign_cc//for_workspace:ninja_build.bzl", _ninja_tool = "ninja_tool")
|
load("@rules_foreign_cc//foreign_cc/built_tools:ninja_build.bzl", _ninja_tool = "ninja_tool")
|
||||||
|
load(
|
||||||
|
"@rules_foreign_cc//toolchains/native_tools:native_tools_toolchain.bzl",
|
||||||
|
_ToolInfo = "ToolInfo",
|
||||||
|
_native_tool_toolchain = "native_tool_toolchain",
|
||||||
|
)
|
||||||
load("@rules_foreign_cc//tools/build_defs:boost_build.bzl", _boost_build = "boost_build")
|
load("@rules_foreign_cc//tools/build_defs:boost_build.bzl", _boost_build = "boost_build")
|
||||||
load("@rules_foreign_cc//tools/build_defs:cmake.bzl", _cmake = "cmake")
|
load("@rules_foreign_cc//tools/build_defs:cmake.bzl", _cmake = "cmake")
|
||||||
load("@rules_foreign_cc//tools/build_defs:configure.bzl", _configure_make = "configure_make")
|
load("@rules_foreign_cc//tools/build_defs:configure.bzl", _configure_make = "configure_make")
|
||||||
|
@ -17,11 +22,6 @@ load(
|
||||||
)
|
)
|
||||||
load("@rules_foreign_cc//tools/build_defs:make.bzl", _make = "make")
|
load("@rules_foreign_cc//tools/build_defs:make.bzl", _make = "make")
|
||||||
load("@rules_foreign_cc//tools/build_defs:ninja.bzl", _ninja = "ninja")
|
load("@rules_foreign_cc//tools/build_defs:ninja.bzl", _ninja = "ninja")
|
||||||
load(
|
|
||||||
"@rules_foreign_cc//tools/build_defs/native_tools:native_tools_toolchain.bzl",
|
|
||||||
_ToolInfo = "ToolInfo",
|
|
||||||
_native_tool_toolchain = "native_tool_toolchain",
|
|
||||||
)
|
|
||||||
|
|
||||||
# Rules Foreign CC symbols
|
# Rules Foreign CC symbols
|
||||||
boost_build = _boost_build
|
boost_build = _boost_build
|
||||||
|
|
|
@ -5,7 +5,6 @@ exports_files(
|
||||||
"make_build.bzl",
|
"make_build.bzl",
|
||||||
"cmake_build.bzl",
|
"cmake_build.bzl",
|
||||||
"ninja_build.bzl",
|
"ninja_build.bzl",
|
||||||
"install_ws_dependency.bzl",
|
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -1,48 +1,5 @@
|
||||||
""" Rule for building CMake from sources. """
|
""" This module is deprecated and has been moved to `//toolchains/built_tools/...` """
|
||||||
|
|
||||||
load("@rules_foreign_cc//tools/build_defs:detect_root.bzl", "detect_root")
|
load("//foreign_cc/built_tools:cmake_build.bzl", _cmake_tool = "cmake_tool")
|
||||||
load("@rules_foreign_cc//tools/build_defs:shell_script_helper.bzl", "convert_shell_script")
|
|
||||||
|
|
||||||
def _cmake_tool(ctx):
|
cmake_tool = _cmake_tool
|
||||||
root = detect_root(ctx.attr.cmake_srcs)
|
|
||||||
|
|
||||||
cmake = ctx.actions.declare_directory("cmake")
|
|
||||||
script = [
|
|
||||||
"export BUILD_DIR=##pwd##",
|
|
||||||
"export BUILD_TMPDIR=$${BUILD_DIR}$$.build_tmpdir",
|
|
||||||
"##copy_dir_contents_to_dir## ./{} $BUILD_TMPDIR".format(root),
|
|
||||||
"##mkdirs## " + cmake.path,
|
|
||||||
"cd $$BUILD_TMPDIR$$",
|
|
||||||
"./bootstrap --prefix=install",
|
|
||||||
"make install",
|
|
||||||
"##copy_dir_contents_to_dir## ./install $BUILD_DIR/" + cmake.path,
|
|
||||||
"cd $$BUILD_DIR$$",
|
|
||||||
]
|
|
||||||
|
|
||||||
script_text = convert_shell_script(ctx, script)
|
|
||||||
|
|
||||||
ctx.actions.run_shell(
|
|
||||||
mnemonic = "BootstrapCMake",
|
|
||||||
inputs = ctx.attr.cmake_srcs.files,
|
|
||||||
outputs = [cmake],
|
|
||||||
tools = [],
|
|
||||||
use_default_shell_env = True,
|
|
||||||
command = script_text,
|
|
||||||
execution_requirements = {"block-network": ""},
|
|
||||||
)
|
|
||||||
|
|
||||||
return [DefaultInfo(files = depset([cmake]))]
|
|
||||||
|
|
||||||
cmake_tool = rule(
|
|
||||||
doc = "Rule for building CMake. Invokes bootstrap script and make install.",
|
|
||||||
attrs = {
|
|
||||||
"cmake_srcs": attr.label(mandatory = True),
|
|
||||||
},
|
|
||||||
host_fragments = ["cpp"],
|
|
||||||
output_to_genfiles = True,
|
|
||||||
implementation = _cmake_tool,
|
|
||||||
toolchains = [
|
|
||||||
"@rules_foreign_cc//tools/build_defs/shell_toolchain/toolchains:shell_commands",
|
|
||||||
"@bazel_tools//tools/cpp:toolchain_type",
|
|
||||||
],
|
|
||||||
)
|
|
||||||
|
|
|
@ -1,62 +1,5 @@
|
||||||
""" Rule for building GNU Make from sources. """
|
""" This module is deprecated and has been moved to `//toolchains/built_tools/...` """
|
||||||
|
|
||||||
load("@bazel_tools//tools/cpp:toolchain_utils.bzl", "find_cpp_toolchain")
|
load("//foreign_cc/built_tools:make_build.bzl", _make_tool = "make_tool")
|
||||||
load(
|
|
||||||
"@rules_foreign_cc//tools/build_defs:run_shell_file_utils.bzl",
|
|
||||||
"fictive_file_in_genroot",
|
|
||||||
)
|
|
||||||
load("@rules_foreign_cc//tools/build_defs:shell_script_helper.bzl", "convert_shell_script")
|
|
||||||
load("//tools/build_defs:detect_root.bzl", "detect_root")
|
|
||||||
|
|
||||||
def _make_tool(ctx):
|
make_tool = _make_tool
|
||||||
root = detect_root(ctx.attr.make_srcs)
|
|
||||||
|
|
||||||
cc_toolchain = find_cpp_toolchain(ctx)
|
|
||||||
|
|
||||||
# we need this fictive file in the root to get the path of the root in the script
|
|
||||||
empty = fictive_file_in_genroot(ctx.actions, ctx.label.name)
|
|
||||||
|
|
||||||
make = ctx.actions.declare_directory("make")
|
|
||||||
script = [
|
|
||||||
"export EXT_BUILD_ROOT=##pwd##",
|
|
||||||
"export INSTALLDIR=$$EXT_BUILD_ROOT$$/" + empty.file.dirname + "/" + ctx.attr.name,
|
|
||||||
"export BUILD_TMPDIR=$$INSTALLDIR$$.build_tmpdir",
|
|
||||||
"##mkdirs## $$BUILD_TMPDIR$$",
|
|
||||||
"##copy_dir_contents_to_dir## ./{} $BUILD_TMPDIR".format(root),
|
|
||||||
"cd $$BUILD_TMPDIR$$",
|
|
||||||
"./configure --disable-dependency-tracking --prefix=$$EXT_BUILD_ROOT$$/{}".format(make.path),
|
|
||||||
"./build.sh",
|
|
||||||
"./make install",
|
|
||||||
empty.script,
|
|
||||||
]
|
|
||||||
script_text = convert_shell_script(ctx, script)
|
|
||||||
|
|
||||||
ctx.actions.run_shell(
|
|
||||||
mnemonic = "BootstrapMake",
|
|
||||||
inputs = ctx.attr.make_srcs.files,
|
|
||||||
outputs = [make, empty.file],
|
|
||||||
tools = cc_toolchain.all_files,
|
|
||||||
use_default_shell_env = True,
|
|
||||||
command = script_text,
|
|
||||||
execution_requirements = {"block-network": ""},
|
|
||||||
)
|
|
||||||
|
|
||||||
return [DefaultInfo(files = depset([make]))]
|
|
||||||
|
|
||||||
make_tool = rule(
|
|
||||||
doc = "Rule for building Make. Invokes configure script and make install.",
|
|
||||||
attrs = {
|
|
||||||
"make_srcs": attr.label(
|
|
||||||
doc = "target with the Make sources",
|
|
||||||
mandatory = True,
|
|
||||||
),
|
|
||||||
"_cc_toolchain": attr.label(default = Label("@bazel_tools//tools/cpp:current_cc_toolchain")),
|
|
||||||
},
|
|
||||||
host_fragments = ["cpp"],
|
|
||||||
output_to_genfiles = True,
|
|
||||||
implementation = _make_tool,
|
|
||||||
toolchains = [
|
|
||||||
"@rules_foreign_cc//tools/build_defs/shell_toolchain/toolchains:shell_commands",
|
|
||||||
"@bazel_tools//tools/cpp:toolchain_type",
|
|
||||||
],
|
|
||||||
)
|
|
||||||
|
|
|
@ -1,42 +1,5 @@
|
||||||
""" Rule for building Ninja from sources. """
|
""" This module is deprecated and has been moved to `//toolchains/built_tools/...` """
|
||||||
|
|
||||||
load("@rules_foreign_cc//tools/build_defs:shell_script_helper.bzl", "convert_shell_script")
|
load("//foreign_cc/built_tools:ninja_build.bzl", _ninja_tool = "ninja_tool")
|
||||||
load("//tools/build_defs:detect_root.bzl", "detect_root")
|
|
||||||
|
|
||||||
def _ninja_tool(ctx):
|
ninja_tool = _ninja_tool
|
||||||
root = detect_root(ctx.attr.ninja_srcs)
|
|
||||||
|
|
||||||
ninja = ctx.actions.declare_directory("ninja")
|
|
||||||
script = [
|
|
||||||
"##mkdirs## " + ninja.path,
|
|
||||||
"##copy_dir_contents_to_dir## ./{} {}".format(root, ninja.path),
|
|
||||||
"cd " + ninja.path,
|
|
||||||
"./configure.py --bootstrap",
|
|
||||||
]
|
|
||||||
script_text = convert_shell_script(ctx, script)
|
|
||||||
|
|
||||||
ctx.actions.run_shell(
|
|
||||||
mnemonic = "BootstrapNinja",
|
|
||||||
inputs = ctx.attr.ninja_srcs.files,
|
|
||||||
outputs = [ninja],
|
|
||||||
tools = [],
|
|
||||||
use_default_shell_env = True,
|
|
||||||
command = script_text,
|
|
||||||
execution_requirements = {"block-network": ""},
|
|
||||||
)
|
|
||||||
|
|
||||||
return [DefaultInfo(files = depset([ninja]))]
|
|
||||||
|
|
||||||
ninja_tool = rule(
|
|
||||||
doc = "Rule for building Ninja. Invokes configure script and make install.",
|
|
||||||
attrs = {
|
|
||||||
"ninja_srcs": attr.label(mandatory = True),
|
|
||||||
},
|
|
||||||
host_fragments = ["cpp"],
|
|
||||||
output_to_genfiles = True,
|
|
||||||
implementation = _ninja_tool,
|
|
||||||
toolchains = [
|
|
||||||
"@rules_foreign_cc//tools/build_defs/shell_toolchain/toolchains:shell_commands",
|
|
||||||
"@bazel_tools//tools/cpp:toolchain_type",
|
|
||||||
],
|
|
||||||
)
|
|
||||||
|
|
|
@ -6,6 +6,9 @@ load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
|
||||||
def repositories():
|
def repositories():
|
||||||
"""Declare repositories used by `rules_foreign_cc`"""
|
"""Declare repositories used by `rules_foreign_cc`"""
|
||||||
|
|
||||||
|
# buildifier: disable=print
|
||||||
|
print("This macro is deprecated and will soon be removed")
|
||||||
|
|
||||||
maybe(
|
maybe(
|
||||||
http_archive,
|
http_archive,
|
||||||
name = "bazel_skylib",
|
name = "bazel_skylib",
|
||||||
|
|
10
foreign_cc/BUILD.bazel
Normal file
10
foreign_cc/BUILD.bazel
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
load("@bazel_skylib//:bzl_library.bzl", "bzl_library")
|
||||||
|
|
||||||
|
bzl_library(
|
||||||
|
name = "bzl_srcs",
|
||||||
|
srcs = glob(["**/*.bzl"]),
|
||||||
|
visibility = ["//:__subpackages__"],
|
||||||
|
deps = [
|
||||||
|
"//foreign_cc/built_tools:bzl_srcs",
|
||||||
|
],
|
||||||
|
)
|
7
foreign_cc/built_tools/BUILD.bazel
Normal file
7
foreign_cc/built_tools/BUILD.bazel
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
load("@bazel_skylib//:bzl_library.bzl", "bzl_library")
|
||||||
|
|
||||||
|
bzl_library(
|
||||||
|
name = "bzl_srcs",
|
||||||
|
srcs = glob(["**/*.bzl"]),
|
||||||
|
visibility = ["//:__subpackages__"],
|
||||||
|
)
|
48
foreign_cc/built_tools/cmake_build.bzl
Normal file
48
foreign_cc/built_tools/cmake_build.bzl
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
""" Rule for building CMake from sources. """
|
||||||
|
|
||||||
|
load("@rules_foreign_cc//tools/build_defs:detect_root.bzl", "detect_root")
|
||||||
|
load("@rules_foreign_cc//tools/build_defs:shell_script_helper.bzl", "convert_shell_script")
|
||||||
|
|
||||||
|
def _cmake_tool(ctx):
|
||||||
|
root = detect_root(ctx.attr.cmake_srcs)
|
||||||
|
|
||||||
|
cmake = ctx.actions.declare_directory("cmake")
|
||||||
|
script = [
|
||||||
|
"export BUILD_DIR=##pwd##",
|
||||||
|
"export BUILD_TMPDIR=$${BUILD_DIR}$$.build_tmpdir",
|
||||||
|
"##copy_dir_contents_to_dir## ./{} $BUILD_TMPDIR".format(root),
|
||||||
|
"##mkdirs## " + cmake.path,
|
||||||
|
"cd $$BUILD_TMPDIR$$",
|
||||||
|
"./bootstrap --prefix=install",
|
||||||
|
"make install",
|
||||||
|
"##copy_dir_contents_to_dir## ./install $BUILD_DIR/" + cmake.path,
|
||||||
|
"cd $$BUILD_DIR$$",
|
||||||
|
]
|
||||||
|
|
||||||
|
script_text = convert_shell_script(ctx, script)
|
||||||
|
|
||||||
|
ctx.actions.run_shell(
|
||||||
|
mnemonic = "BootstrapCMake",
|
||||||
|
inputs = ctx.attr.cmake_srcs.files,
|
||||||
|
outputs = [cmake],
|
||||||
|
tools = [],
|
||||||
|
use_default_shell_env = True,
|
||||||
|
command = script_text,
|
||||||
|
execution_requirements = {"block-network": ""},
|
||||||
|
)
|
||||||
|
|
||||||
|
return [DefaultInfo(files = depset([cmake]))]
|
||||||
|
|
||||||
|
cmake_tool = rule(
|
||||||
|
doc = "Rule for building CMake. Invokes bootstrap script and make install.",
|
||||||
|
attrs = {
|
||||||
|
"cmake_srcs": attr.label(mandatory = True),
|
||||||
|
},
|
||||||
|
host_fragments = ["cpp"],
|
||||||
|
output_to_genfiles = True,
|
||||||
|
implementation = _cmake_tool,
|
||||||
|
toolchains = [
|
||||||
|
"@rules_foreign_cc//tools/build_defs/shell_toolchain/toolchains:shell_commands",
|
||||||
|
"@bazel_tools//tools/cpp:toolchain_type",
|
||||||
|
],
|
||||||
|
)
|
62
foreign_cc/built_tools/make_build.bzl
Normal file
62
foreign_cc/built_tools/make_build.bzl
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
""" Rule for building GNU Make from sources. """
|
||||||
|
|
||||||
|
load("@bazel_tools//tools/cpp:toolchain_utils.bzl", "find_cpp_toolchain")
|
||||||
|
load(
|
||||||
|
"@rules_foreign_cc//tools/build_defs:run_shell_file_utils.bzl",
|
||||||
|
"fictive_file_in_genroot",
|
||||||
|
)
|
||||||
|
load("@rules_foreign_cc//tools/build_defs:shell_script_helper.bzl", "convert_shell_script")
|
||||||
|
load("//tools/build_defs:detect_root.bzl", "detect_root")
|
||||||
|
|
||||||
|
def _make_tool(ctx):
|
||||||
|
root = detect_root(ctx.attr.make_srcs)
|
||||||
|
|
||||||
|
cc_toolchain = find_cpp_toolchain(ctx)
|
||||||
|
|
||||||
|
# we need this fictive file in the root to get the path of the root in the script
|
||||||
|
empty = fictive_file_in_genroot(ctx.actions, ctx.label.name)
|
||||||
|
|
||||||
|
make = ctx.actions.declare_directory("make")
|
||||||
|
script = [
|
||||||
|
"export EXT_BUILD_ROOT=##pwd##",
|
||||||
|
"export INSTALLDIR=$$EXT_BUILD_ROOT$$/" + empty.file.dirname + "/" + ctx.attr.name,
|
||||||
|
"export BUILD_TMPDIR=$$INSTALLDIR$$.build_tmpdir",
|
||||||
|
"##mkdirs## $$BUILD_TMPDIR$$",
|
||||||
|
"##copy_dir_contents_to_dir## ./{} $BUILD_TMPDIR".format(root),
|
||||||
|
"cd $$BUILD_TMPDIR$$",
|
||||||
|
"./configure --disable-dependency-tracking --prefix=$$EXT_BUILD_ROOT$$/{}".format(make.path),
|
||||||
|
"./build.sh",
|
||||||
|
"./make install",
|
||||||
|
empty.script,
|
||||||
|
]
|
||||||
|
script_text = convert_shell_script(ctx, script)
|
||||||
|
|
||||||
|
ctx.actions.run_shell(
|
||||||
|
mnemonic = "BootstrapMake",
|
||||||
|
inputs = ctx.attr.make_srcs.files,
|
||||||
|
outputs = [make, empty.file],
|
||||||
|
tools = cc_toolchain.all_files,
|
||||||
|
use_default_shell_env = True,
|
||||||
|
command = script_text,
|
||||||
|
execution_requirements = {"block-network": ""},
|
||||||
|
)
|
||||||
|
|
||||||
|
return [DefaultInfo(files = depset([make]))]
|
||||||
|
|
||||||
|
make_tool = rule(
|
||||||
|
doc = "Rule for building Make. Invokes configure script and make install.",
|
||||||
|
attrs = {
|
||||||
|
"make_srcs": attr.label(
|
||||||
|
doc = "target with the Make sources",
|
||||||
|
mandatory = True,
|
||||||
|
),
|
||||||
|
"_cc_toolchain": attr.label(default = Label("@bazel_tools//tools/cpp:current_cc_toolchain")),
|
||||||
|
},
|
||||||
|
host_fragments = ["cpp"],
|
||||||
|
output_to_genfiles = True,
|
||||||
|
implementation = _make_tool,
|
||||||
|
toolchains = [
|
||||||
|
"@rules_foreign_cc//tools/build_defs/shell_toolchain/toolchains:shell_commands",
|
||||||
|
"@bazel_tools//tools/cpp:toolchain_type",
|
||||||
|
],
|
||||||
|
)
|
42
foreign_cc/built_tools/ninja_build.bzl
Normal file
42
foreign_cc/built_tools/ninja_build.bzl
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
""" Rule for building Ninja from sources. """
|
||||||
|
|
||||||
|
load("@rules_foreign_cc//tools/build_defs:shell_script_helper.bzl", "convert_shell_script")
|
||||||
|
load("//tools/build_defs:detect_root.bzl", "detect_root")
|
||||||
|
|
||||||
|
def _ninja_tool(ctx):
|
||||||
|
root = detect_root(ctx.attr.ninja_srcs)
|
||||||
|
|
||||||
|
ninja = ctx.actions.declare_directory("ninja")
|
||||||
|
script = [
|
||||||
|
"##mkdirs## " + ninja.path,
|
||||||
|
"##copy_dir_contents_to_dir## ./{} {}".format(root, ninja.path),
|
||||||
|
"cd " + ninja.path,
|
||||||
|
"./configure.py --bootstrap",
|
||||||
|
]
|
||||||
|
script_text = convert_shell_script(ctx, script)
|
||||||
|
|
||||||
|
ctx.actions.run_shell(
|
||||||
|
mnemonic = "BootstrapNinja",
|
||||||
|
inputs = ctx.attr.ninja_srcs.files,
|
||||||
|
outputs = [ninja],
|
||||||
|
tools = [],
|
||||||
|
use_default_shell_env = True,
|
||||||
|
command = script_text,
|
||||||
|
execution_requirements = {"block-network": ""},
|
||||||
|
)
|
||||||
|
|
||||||
|
return [DefaultInfo(files = depset([ninja]))]
|
||||||
|
|
||||||
|
ninja_tool = rule(
|
||||||
|
doc = "Rule for building Ninja. Invokes configure script and make install.",
|
||||||
|
attrs = {
|
||||||
|
"ninja_srcs": attr.label(mandatory = True),
|
||||||
|
},
|
||||||
|
host_fragments = ["cpp"],
|
||||||
|
output_to_genfiles = True,
|
||||||
|
implementation = _ninja_tool,
|
||||||
|
toolchains = [
|
||||||
|
"@rules_foreign_cc//tools/build_defs/shell_toolchain/toolchains:shell_commands",
|
||||||
|
"@bazel_tools//tools/cpp:toolchain_type",
|
||||||
|
],
|
||||||
|
)
|
|
@ -1,13 +1,68 @@
|
||||||
load("@bazel_skylib//:bzl_library.bzl", "bzl_library")
|
load("@bazel_skylib//:bzl_library.bzl", "bzl_library")
|
||||||
load("//for_workspace:cmake_build.bzl", "cmake_tool")
|
load("//foreign_cc/built_tools:cmake_build.bzl", "cmake_tool")
|
||||||
load("//for_workspace:make_build.bzl", "make_tool")
|
load("//foreign_cc/built_tools:make_build.bzl", "make_tool")
|
||||||
load("//for_workspace:ninja_build.bzl", "ninja_tool")
|
load("//foreign_cc/built_tools:ninja_build.bzl", "ninja_tool")
|
||||||
load("//tools/build_defs/native_tools:native_tools_toolchain.bzl", "native_tool_toolchain")
|
load("//toolchains/native_tools:native_tools_toolchain.bzl", "native_tool_toolchain")
|
||||||
|
|
||||||
|
package(default_visibility = ["//visibility:public"])
|
||||||
|
|
||||||
|
toolchain_type(
|
||||||
|
name = "cmake_toolchain",
|
||||||
|
)
|
||||||
|
|
||||||
|
toolchain_type(
|
||||||
|
name = "ninja_toolchain",
|
||||||
|
)
|
||||||
|
|
||||||
|
toolchain_type(
|
||||||
|
name = "make_toolchain",
|
||||||
|
)
|
||||||
|
|
||||||
|
toolchain(
|
||||||
|
name = "built_cmake_toolchain",
|
||||||
|
toolchain = ":built_cmake",
|
||||||
|
toolchain_type = ":cmake_toolchain",
|
||||||
|
)
|
||||||
|
|
||||||
|
toolchain(
|
||||||
|
name = "built_ninja_toolchain",
|
||||||
|
toolchain = ":built_ninja",
|
||||||
|
toolchain_type = ":ninja_toolchain",
|
||||||
|
)
|
||||||
|
|
||||||
|
toolchain(
|
||||||
|
name = "built_make_toolchain",
|
||||||
|
toolchain = ":built_make",
|
||||||
|
toolchain_type = ":make_toolchain",
|
||||||
|
)
|
||||||
|
|
||||||
|
# Preinstalled cmake will always be the default, if toolchain with more exact constraints
|
||||||
|
# is not defined before; registered from workspace_definitions.bzl#rules_foreign_cc_dependencies
|
||||||
|
toolchain(
|
||||||
|
name = "preinstalled_cmake_toolchain",
|
||||||
|
toolchain = ":preinstalled_cmake",
|
||||||
|
toolchain_type = ":cmake_toolchain",
|
||||||
|
)
|
||||||
|
|
||||||
|
# Preinstalled ninja will always be the default, if toolchain with more exact constraints
|
||||||
|
# is not defined before; registered from workspace_definitions.bzl#rules_foreign_cc_dependencies
|
||||||
|
toolchain(
|
||||||
|
name = "preinstalled_ninja_toolchain",
|
||||||
|
toolchain = ":preinstalled_ninja",
|
||||||
|
toolchain_type = ":ninja_toolchain",
|
||||||
|
)
|
||||||
|
|
||||||
|
# Preinstalled make will always be the default, if toolchain with more exact constraints
|
||||||
|
# is not defined before; registered from workspace_definitions.bzl#rules_foreign_cc_dependencies
|
||||||
|
toolchain(
|
||||||
|
name = "preinstalled_make_toolchain",
|
||||||
|
toolchain = ":preinstalled_make",
|
||||||
|
toolchain_type = ":make_toolchain",
|
||||||
|
)
|
||||||
|
|
||||||
native_tool_toolchain(
|
native_tool_toolchain(
|
||||||
name = "preinstalled_make",
|
name = "preinstalled_make",
|
||||||
path = "make",
|
path = "make",
|
||||||
visibility = ["//visibility:public"],
|
|
||||||
)
|
)
|
||||||
|
|
||||||
make_tool(
|
make_tool(
|
||||||
|
@ -20,13 +75,11 @@ native_tool_toolchain(
|
||||||
name = "built_make",
|
name = "built_make",
|
||||||
path = "$(execpath :make_tool)/bin/make",
|
path = "$(execpath :make_tool)/bin/make",
|
||||||
target = ":make_tool",
|
target = ":make_tool",
|
||||||
visibility = ["//visibility:public"],
|
|
||||||
)
|
)
|
||||||
|
|
||||||
native_tool_toolchain(
|
native_tool_toolchain(
|
||||||
name = "preinstalled_cmake",
|
name = "preinstalled_cmake",
|
||||||
path = "cmake",
|
path = "cmake",
|
||||||
visibility = ["//visibility:public"],
|
|
||||||
)
|
)
|
||||||
|
|
||||||
cmake_tool(
|
cmake_tool(
|
||||||
|
@ -39,13 +92,11 @@ native_tool_toolchain(
|
||||||
name = "built_cmake",
|
name = "built_cmake",
|
||||||
path = "$(execpath :cmake_tool)/bin/cmake",
|
path = "$(execpath :cmake_tool)/bin/cmake",
|
||||||
target = ":cmake_tool",
|
target = ":cmake_tool",
|
||||||
visibility = ["//visibility:public"],
|
|
||||||
)
|
)
|
||||||
|
|
||||||
native_tool_toolchain(
|
native_tool_toolchain(
|
||||||
name = "preinstalled_ninja",
|
name = "preinstalled_ninja",
|
||||||
path = "ninja",
|
path = "ninja",
|
||||||
visibility = ["//visibility:public"],
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ninja_tool(
|
ninja_tool(
|
||||||
|
@ -58,11 +109,13 @@ native_tool_toolchain(
|
||||||
name = "built_ninja",
|
name = "built_ninja",
|
||||||
path = "$(execpath :ninja_tool)/ninja",
|
path = "$(execpath :ninja_tool)/ninja",
|
||||||
target = ":ninja_tool",
|
target = ":ninja_tool",
|
||||||
visibility = ["//visibility:public"],
|
|
||||||
)
|
)
|
||||||
|
|
||||||
bzl_library(
|
bzl_library(
|
||||||
name = "bzl_srcs",
|
name = "bzl_srcs",
|
||||||
srcs = glob(["**/*.bzl"]),
|
srcs = glob(["**/*.bzl"]),
|
||||||
visibility = ["//visibility:public"],
|
visibility = ["//:__subpackages__"],
|
||||||
|
deps = [
|
||||||
|
"//toolchains/native_tools:bzl_srcs",
|
||||||
|
],
|
||||||
)
|
)
|
||||||
|
|
|
@ -23,7 +23,7 @@ def built_toolchains(cmake_version, make_version, ninja_version):
|
||||||
|
|
||||||
def _cmake_toolchain(version):
|
def _cmake_toolchain(version):
|
||||||
native.register_toolchains(
|
native.register_toolchains(
|
||||||
"@rules_foreign_cc//tools/build_defs:built_cmake_toolchain",
|
"@rules_foreign_cc//toolchains:built_cmake_toolchain",
|
||||||
)
|
)
|
||||||
if version == "3.19.6":
|
if version == "3.19.6":
|
||||||
maybe(
|
maybe(
|
||||||
|
@ -42,7 +42,7 @@ def _cmake_toolchain(version):
|
||||||
|
|
||||||
def _make_toolchain(version):
|
def _make_toolchain(version):
|
||||||
native.register_toolchains(
|
native.register_toolchains(
|
||||||
"@rules_foreign_cc//tools/build_defs:built_make_toolchain",
|
"@rules_foreign_cc//toolchains:built_make_toolchain",
|
||||||
)
|
)
|
||||||
if version == "4.3":
|
if version == "4.3":
|
||||||
maybe(
|
maybe(
|
||||||
|
@ -61,7 +61,7 @@ def _make_toolchain(version):
|
||||||
|
|
||||||
def _ninja_toolchain(version):
|
def _ninja_toolchain(version):
|
||||||
native.register_toolchains(
|
native.register_toolchains(
|
||||||
"@rules_foreign_cc//tools/build_defs:built_ninja_toolchain",
|
"@rules_foreign_cc//toolchains:built_ninja_toolchain",
|
||||||
)
|
)
|
||||||
if version == "1.10.2":
|
if version == "1.10.2":
|
||||||
maybe(
|
maybe(
|
||||||
|
|
7
toolchains/native_tools/BUILD.bazel
Normal file
7
toolchains/native_tools/BUILD.bazel
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
load("@bazel_skylib//:bzl_library.bzl", "bzl_library")
|
||||||
|
|
||||||
|
bzl_library(
|
||||||
|
name = "bzl_srcs",
|
||||||
|
srcs = glob(["**/*.bzl"]),
|
||||||
|
visibility = ["//visibility:public"],
|
||||||
|
)
|
59
toolchains/native_tools/native_tools_toolchain.bzl
Normal file
59
toolchains/native_tools/native_tools_toolchain.bzl
Normal file
|
@ -0,0 +1,59 @@
|
||||||
|
# buildifier: disable=module-docstring
|
||||||
|
ToolInfo = provider(
|
||||||
|
doc = "Information about the native tool",
|
||||||
|
fields = {
|
||||||
|
"path": (
|
||||||
|
"Absolute path to the tool in case the tool is preinstalled on the machine. " +
|
||||||
|
"Relative path to the tool in case the tool is built as part of a build; the path should be relative " +
|
||||||
|
"to the bazel-genfiles, i.e. it should start with the name of the top directory of the built tree " +
|
||||||
|
"artifact. (Please see the example `//examples:built_cmake_toolchain`)"
|
||||||
|
),
|
||||||
|
"target": (
|
||||||
|
"If the tool is preinstalled, must be None. " +
|
||||||
|
"If the tool is built as part of the build, the corresponding build target, which should produce " +
|
||||||
|
"the tree artifact with the binary to call."
|
||||||
|
),
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
|
def _native_tool_toolchain_impl(ctx):
|
||||||
|
if not ctx.attr.path and not ctx.attr.target:
|
||||||
|
fail("Either path or target (and path) should be defined for the tool.")
|
||||||
|
path = None
|
||||||
|
if ctx.attr.target:
|
||||||
|
path = ctx.expand_location(ctx.attr.path, targets = [ctx.attr.target])
|
||||||
|
else:
|
||||||
|
path = ctx.expand_location(ctx.attr.path)
|
||||||
|
return platform_common.ToolchainInfo(data = ToolInfo(
|
||||||
|
path = path,
|
||||||
|
target = ctx.attr.target,
|
||||||
|
))
|
||||||
|
|
||||||
|
native_tool_toolchain = rule(
|
||||||
|
doc = (
|
||||||
|
"Rule for defining the toolchain data of the native tools (cmake, ninja), " +
|
||||||
|
"to be used by rules_foreign_cc with toolchain types " +
|
||||||
|
"`@rules_foreign_cc//toolchains:cmake_toolchain` and " +
|
||||||
|
"`@rules_foreign_cc//toolchains:ninja_toolchain`."
|
||||||
|
),
|
||||||
|
implementation = _native_tool_toolchain_impl,
|
||||||
|
attrs = {
|
||||||
|
"path": attr.string(
|
||||||
|
mandatory = False,
|
||||||
|
doc = (
|
||||||
|
"Absolute path to the tool in case the tool is preinstalled on the machine. " +
|
||||||
|
"Relative path to the tool in case the tool is built as part of a build; the path should be " +
|
||||||
|
"relative to the bazel-genfiles, i.e. it should start with the name of the top directory " +
|
||||||
|
"of the built tree artifact. (Please see the example `//examples:built_cmake_toolchain`)"
|
||||||
|
),
|
||||||
|
),
|
||||||
|
"target": attr.label(
|
||||||
|
mandatory = False,
|
||||||
|
doc = (
|
||||||
|
"If the tool is preinstalled, must be None. " +
|
||||||
|
"If the tool is built as part of the build, the corresponding build target, " +
|
||||||
|
"which should produce the tree artifact with the binary to call."
|
||||||
|
),
|
||||||
|
),
|
||||||
|
},
|
||||||
|
)
|
54
toolchains/native_tools/tool_access.bzl
Normal file
54
toolchains/native_tools/tool_access.bzl
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
"""A module defining convienence methoods for accessing build tools from
|
||||||
|
rules_foreign_cc toolchains
|
||||||
|
"""
|
||||||
|
|
||||||
|
load(":native_tools_toolchain.bzl", "ToolInfo")
|
||||||
|
|
||||||
|
def access_tool(toolchain_type_, ctx, tool_name):
|
||||||
|
"""A helper macro for getting the path to a build tool's executable
|
||||||
|
|
||||||
|
Args:
|
||||||
|
toolchain_type_ (str): The name of the toolchain type
|
||||||
|
ctx (ctx): The rule's context object
|
||||||
|
tool_name (str): The name of the tool to query
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
ToolInfo: A provider containing information about the toolchain's executable
|
||||||
|
"""
|
||||||
|
tool_toolchain = ctx.toolchains[toolchain_type_]
|
||||||
|
if tool_toolchain:
|
||||||
|
return tool_toolchain.data
|
||||||
|
return ToolInfo(
|
||||||
|
path = tool_name,
|
||||||
|
target = None,
|
||||||
|
)
|
||||||
|
|
||||||
|
def get_cmake_data(ctx):
|
||||||
|
return _access_and_expect_label_copied("@rules_foreign_cc//toolchains:cmake_toolchain", ctx, "cmake")
|
||||||
|
|
||||||
|
def get_ninja_data(ctx):
|
||||||
|
return _access_and_expect_label_copied("@rules_foreign_cc//toolchains:ninja_toolchain", ctx, "ninja")
|
||||||
|
|
||||||
|
def get_make_data(ctx):
|
||||||
|
return _access_and_expect_label_copied("@rules_foreign_cc//toolchains:make_toolchain", ctx, "make")
|
||||||
|
|
||||||
|
def _access_and_expect_label_copied(toolchain_type_, ctx, tool_name):
|
||||||
|
tool_data = access_tool(toolchain_type_, ctx, tool_name)
|
||||||
|
if tool_data.target:
|
||||||
|
# This could be made more efficient by changing the
|
||||||
|
# toolchain to provide the executable as a target
|
||||||
|
cmd_file = tool_data
|
||||||
|
for f in tool_data.target.files.to_list():
|
||||||
|
if f.path.endswith("/" + tool_data.path):
|
||||||
|
cmd_file = f
|
||||||
|
break
|
||||||
|
return struct(
|
||||||
|
deps = [tool_data.target],
|
||||||
|
# as the tool will be copied into tools directory
|
||||||
|
path = "$EXT_BUILD_ROOT/{}".format(cmd_file.path),
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
return struct(
|
||||||
|
deps = [],
|
||||||
|
path = tool_data.path,
|
||||||
|
)
|
|
@ -9,7 +9,7 @@ load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
|
||||||
load("@rules_foreign_cc//toolchains:prebuilt_toolchains_repository.bzl", "prebuilt_toolchains_repository")
|
load("@rules_foreign_cc//toolchains:prebuilt_toolchains_repository.bzl", "prebuilt_toolchains_repository")
|
||||||
|
|
||||||
_CMAKE_BUILD_FILE = """\
|
_CMAKE_BUILD_FILE = """\
|
||||||
load("@rules_foreign_cc//tools/build_defs/native_tools:native_tools_toolchain.bzl", "native_tool_toolchain")
|
load("@rules_foreign_cc//toolchains/native_tools:native_tools_toolchain.bzl", "native_tool_toolchain")
|
||||||
|
|
||||||
package(default_visibility = ["//visibility:public"])
|
package(default_visibility = ["//visibility:public"])
|
||||||
|
|
||||||
|
@ -36,7 +36,7 @@ native_tool_toolchain(
|
||||||
"""
|
"""
|
||||||
|
|
||||||
_NINJA_BUILD_FILE = """\
|
_NINJA_BUILD_FILE = """\
|
||||||
load("@rules_foreign_cc//tools/build_defs/native_tools:native_tools_toolchain.bzl", "native_tool_toolchain")
|
load("@rules_foreign_cc//toolchains/native_tools:native_tools_toolchain.bzl", "native_tool_toolchain")
|
||||||
|
|
||||||
package(default_visibility = ["//visibility:public"])
|
package(default_visibility = ["//visibility:public"])
|
||||||
|
|
||||||
|
@ -62,6 +62,7 @@ def prebuilt_toolchains(cmake_version, ninja_version):
|
||||||
"""
|
"""
|
||||||
_cmake_toolchains(cmake_version)
|
_cmake_toolchains(cmake_version)
|
||||||
_ninja_toolchains(ninja_version)
|
_ninja_toolchains(ninja_version)
|
||||||
|
_make_toolchains()
|
||||||
|
|
||||||
def _cmake_toolchains(version):
|
def _cmake_toolchains(version):
|
||||||
if "3.19.6" == version:
|
if "3.19.6" == version:
|
||||||
|
@ -1056,3 +1057,7 @@ def _ninja_toolchains(version):
|
||||||
return
|
return
|
||||||
|
|
||||||
fail("Unsupported version: " + str(version))
|
fail("Unsupported version: " + str(version))
|
||||||
|
|
||||||
|
def _make_toolchains():
|
||||||
|
# There are currently no prebuilt make binaries
|
||||||
|
pass
|
||||||
|
|
|
@ -114,7 +114,7 @@ load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
|
||||||
load("@rules_foreign_cc//toolchains:prebuilt_toolchains_repository.bzl", "prebuilt_toolchains_repository")
|
load("@rules_foreign_cc//toolchains:prebuilt_toolchains_repository.bzl", "prebuilt_toolchains_repository")
|
||||||
|
|
||||||
_CMAKE_BUILD_FILE = \"\"\"\\
|
_CMAKE_BUILD_FILE = \"\"\"\\
|
||||||
load("@rules_foreign_cc//tools/build_defs/native_tools:native_tools_toolchain.bzl", "native_tool_toolchain")
|
load("@rules_foreign_cc//toolchains/native_tools:native_tools_toolchain.bzl", "native_tool_toolchain")
|
||||||
|
|
||||||
package(default_visibility = ["//visibility:public"])
|
package(default_visibility = ["//visibility:public"])
|
||||||
|
|
||||||
|
@ -141,7 +141,7 @@ native_tool_toolchain(
|
||||||
\"\"\"
|
\"\"\"
|
||||||
|
|
||||||
_NINJA_BUILD_FILE = \"\"\"\\
|
_NINJA_BUILD_FILE = \"\"\"\\
|
||||||
load("@rules_foreign_cc//tools/build_defs/native_tools:native_tools_toolchain.bzl", "native_tool_toolchain")
|
load("@rules_foreign_cc//toolchains/native_tools:native_tools_toolchain.bzl", "native_tool_toolchain")
|
||||||
|
|
||||||
package(default_visibility = ["//visibility:public"])
|
package(default_visibility = ["//visibility:public"])
|
||||||
|
|
||||||
|
@ -366,7 +366,7 @@ def get_make_definitions() -> str:
|
||||||
"""
|
"""
|
||||||
|
|
||||||
return indent(
|
return indent(
|
||||||
"native.register_toolchains(\"@rules_foreign_cc//tools/build_defs:preinstalled_make_toolchain\")",
|
"# There are currently no prebuilt make binaries\npass",
|
||||||
" " * 4)
|
" " * 4)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
"""A module defining a repository rule for housing toolchain definitions"""
|
"""A module defining a repository rule for housing toolchain definitions"""
|
||||||
|
|
||||||
_BUILD_FILE = """\
|
_BUILD_FILE = """\
|
||||||
load("@rules_foreign_cc//tools/build_defs/native_tools:native_tools_toolchain.bzl", "native_tool_toolchain")
|
load("@rules_foreign_cc//toolchains/native_tools:native_tools_toolchain.bzl", "native_tool_toolchain")
|
||||||
|
|
||||||
{toolchains}
|
{toolchains}
|
||||||
"""
|
"""
|
||||||
|
@ -11,7 +11,7 @@ toolchain(
|
||||||
name = "{repo}_toolchain",
|
name = "{repo}_toolchain",
|
||||||
exec_compatible_with = {exec_compatible_with},
|
exec_compatible_with = {exec_compatible_with},
|
||||||
toolchain = "@{repo}//:{tool}_tool",
|
toolchain = "@{repo}//:{tool}_tool",
|
||||||
toolchain_type = "@rules_foreign_cc//tools/build_defs:{tool}_toolchain",
|
toolchain_type = "@rules_foreign_cc//toolchains:{tool}_toolchain",
|
||||||
)
|
)
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@ prebuilt_toolchains = _prebuilt_toolchains
|
||||||
def preinstalled_toolchains():
|
def preinstalled_toolchains():
|
||||||
"""Register toolchains for various build tools expected to be installed on the exec host"""
|
"""Register toolchains for various build tools expected to be installed on the exec host"""
|
||||||
native.register_toolchains(
|
native.register_toolchains(
|
||||||
"@rules_foreign_cc//tools/build_defs:preinstalled_cmake_toolchain",
|
"@rules_foreign_cc//toolchains:preinstalled_cmake_toolchain",
|
||||||
"@rules_foreign_cc//tools/build_defs:preinstalled_make_toolchain",
|
"@rules_foreign_cc//toolchains:preinstalled_make_toolchain",
|
||||||
"@rules_foreign_cc//tools/build_defs:preinstalled_ninja_toolchain",
|
"@rules_foreign_cc//toolchains:preinstalled_ninja_toolchain",
|
||||||
)
|
)
|
||||||
|
|
|
@ -1,60 +1,66 @@
|
||||||
load("@bazel_skylib//:bzl_library.bzl", "bzl_library")
|
load("@bazel_skylib//:bzl_library.bzl", "bzl_library")
|
||||||
|
|
||||||
toolchain_type(
|
alias(
|
||||||
name = "cmake_toolchain",
|
name = "cmake_toolchain",
|
||||||
|
actual = "//toolchains:cmake_toolchain",
|
||||||
|
deprecation = "This target has been moved to `@rules_foreign_cc//toolchains/...`",
|
||||||
visibility = ["//visibility:public"],
|
visibility = ["//visibility:public"],
|
||||||
)
|
)
|
||||||
|
|
||||||
toolchain_type(
|
alias(
|
||||||
name = "ninja_toolchain",
|
name = "ninja_toolchain",
|
||||||
|
actual = "//toolchains:ninja_toolchain",
|
||||||
|
deprecation = "This target has been moved to `@rules_foreign_cc//toolchains/...`",
|
||||||
visibility = ["//visibility:public"],
|
visibility = ["//visibility:public"],
|
||||||
)
|
)
|
||||||
|
|
||||||
toolchain_type(
|
alias(
|
||||||
name = "make_toolchain",
|
name = "make_toolchain",
|
||||||
|
actual = "//toolchains:make_toolchain",
|
||||||
|
deprecation = "This target has been moved to `@rules_foreign_cc//toolchains/...`",
|
||||||
visibility = ["//visibility:public"],
|
visibility = ["//visibility:public"],
|
||||||
)
|
)
|
||||||
|
|
||||||
toolchain(
|
alias(
|
||||||
name = "built_cmake_toolchain",
|
name = "built_cmake_toolchain",
|
||||||
toolchain = "@rules_foreign_cc//toolchains:built_cmake",
|
actual = "//toolchains:built_cmake_toolchain",
|
||||||
toolchain_type = "@rules_foreign_cc//tools/build_defs:cmake_toolchain",
|
deprecation = "This target has been moved to `@rules_foreign_cc//toolchains/...`",
|
||||||
)
|
)
|
||||||
|
|
||||||
toolchain(
|
alias(
|
||||||
name = "built_ninja_toolchain",
|
name = "built_ninja_toolchain",
|
||||||
toolchain = "@rules_foreign_cc//toolchains:built_ninja",
|
actual = "//toolchains:built_ninja_toolchain",
|
||||||
toolchain_type = "@rules_foreign_cc//tools/build_defs:ninja_toolchain",
|
deprecation = "This target has been moved to `@rules_foreign_cc//toolchains/...`",
|
||||||
)
|
)
|
||||||
|
|
||||||
toolchain(
|
alias(
|
||||||
name = "built_make_toolchain",
|
name = "built_make_toolchain",
|
||||||
toolchain = "@rules_foreign_cc//toolchains:built_make",
|
actual = "//toolchains:built_make_toolchain",
|
||||||
toolchain_type = "@rules_foreign_cc//tools/build_defs:make_toolchain",
|
deprecation = "This target has been moved to `@rules_foreign_cc//toolchains/...`",
|
||||||
)
|
)
|
||||||
|
|
||||||
# Preinstalled cmake will always be the default, if toolchain with more exact constraints
|
# Preinstalled cmake will always be the default, if toolchain with more exact constraints
|
||||||
# is not defined before; registered from workspace_definitions.bzl#rules_foreign_cc_dependencies
|
# is not defined before; registered from workspace_definitions.bzl#rules_foreign_cc_dependencies
|
||||||
toolchain(
|
alias(
|
||||||
name = "preinstalled_cmake_toolchain",
|
name = "preinstalled_cmake_toolchain",
|
||||||
toolchain = "@rules_foreign_cc//toolchains:preinstalled_cmake",
|
actual = "//toolchains:preinstalled_cmake_toolchain",
|
||||||
toolchain_type = "@rules_foreign_cc//tools/build_defs:cmake_toolchain",
|
deprecation = "This target has been moved to `@rules_foreign_cc//toolchains/...`",
|
||||||
)
|
)
|
||||||
|
|
||||||
# Preinstalled ninja will always be the default, if toolchain with more exact constraints
|
# Preinstalled ninja will always be the default, if toolchain with more exact constraints
|
||||||
# is not defined before; registered from workspace_definitions.bzl#rules_foreign_cc_dependencies
|
# is not defined before; registered from workspace_definitions.bzl#rules_foreign_cc_dependencies
|
||||||
toolchain(
|
alias(
|
||||||
name = "preinstalled_ninja_toolchain",
|
name = "preinstalled_ninja_toolchain",
|
||||||
toolchain = "@rules_foreign_cc//toolchains:preinstalled_ninja",
|
actual = "//toolchains:preinstalled_ninja_toolchain",
|
||||||
toolchain_type = "@rules_foreign_cc//tools/build_defs:ninja_toolchain",
|
deprecation = "This target has been moved to `@rules_foreign_cc//toolchains/...`",
|
||||||
)
|
)
|
||||||
|
|
||||||
# Preinstalled make will always be the default, if toolchain with more exact constraints
|
# Preinstalled make will always be the default, if toolchain with more exact constraints
|
||||||
# is not defined before; registered from workspace_definitions.bzl#rules_foreign_cc_dependencies
|
# is not defined before; registered from workspace_definitions.bzl#rules_foreign_cc_dependencies
|
||||||
toolchain(
|
alias(
|
||||||
name = "preinstalled_make_toolchain",
|
name = "preinstalled_make_toolchain",
|
||||||
toolchain = "@rules_foreign_cc//toolchains:preinstalled_make",
|
actual = "//toolchains:preinstalled_make_toolchain",
|
||||||
toolchain_type = "@rules_foreign_cc//tools/build_defs:make_toolchain",
|
deprecation = "This target has been moved to `@rules_foreign_cc//toolchains/...`",
|
||||||
)
|
)
|
||||||
|
|
||||||
bzl_library(
|
bzl_library(
|
||||||
|
|
|
@ -1,6 +1,12 @@
|
||||||
""" Defines the rule for building external library with CMake
|
""" Defines the rule for building external library with CMake
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
load(
|
||||||
|
"//toolchains/native_tools:tool_access.bzl",
|
||||||
|
"get_cmake_data",
|
||||||
|
"get_make_data",
|
||||||
|
"get_ninja_data",
|
||||||
|
)
|
||||||
load(
|
load(
|
||||||
"//tools/build_defs:cc_toolchain_util.bzl",
|
"//tools/build_defs:cc_toolchain_util.bzl",
|
||||||
"get_flags_info",
|
"get_flags_info",
|
||||||
|
@ -17,12 +23,6 @@ load(
|
||||||
"cc_external_rule_impl",
|
"cc_external_rule_impl",
|
||||||
"create_attrs",
|
"create_attrs",
|
||||||
)
|
)
|
||||||
load(
|
|
||||||
"//tools/build_defs/native_tools:tool_access.bzl",
|
|
||||||
"get_cmake_data",
|
|
||||||
"get_make_data",
|
|
||||||
"get_ninja_data",
|
|
||||||
)
|
|
||||||
load(":cmake_script.bzl", "create_cmake_script")
|
load(":cmake_script.bzl", "create_cmake_script")
|
||||||
|
|
||||||
def _cmake_impl(ctx):
|
def _cmake_impl(ctx):
|
||||||
|
@ -155,9 +155,9 @@ cmake = rule(
|
||||||
output_to_genfiles = True,
|
output_to_genfiles = True,
|
||||||
implementation = _cmake_impl,
|
implementation = _cmake_impl,
|
||||||
toolchains = [
|
toolchains = [
|
||||||
"@rules_foreign_cc//tools/build_defs:cmake_toolchain",
|
"@rules_foreign_cc//toolchains:cmake_toolchain",
|
||||||
"@rules_foreign_cc//tools/build_defs:ninja_toolchain",
|
"@rules_foreign_cc//toolchains:ninja_toolchain",
|
||||||
"@rules_foreign_cc//tools/build_defs:make_toolchain",
|
"@rules_foreign_cc//toolchains:make_toolchain",
|
||||||
"@rules_foreign_cc//tools/build_defs/shell_toolchain/toolchains:shell_commands",
|
"@rules_foreign_cc//tools/build_defs/shell_toolchain/toolchains:shell_commands",
|
||||||
"@bazel_tools//tools/cpp:toolchain_type",
|
"@bazel_tools//tools/cpp:toolchain_type",
|
||||||
],
|
],
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
# buildifier: disable=module-docstring
|
# buildifier: disable=module-docstring
|
||||||
load("@rules_foreign_cc//tools/build_defs:shell_script_helper.bzl", "os_name")
|
load("@rules_foreign_cc//tools/build_defs:shell_script_helper.bzl", "os_name")
|
||||||
|
load("//toolchains/native_tools:tool_access.bzl", "get_make_data")
|
||||||
load(
|
load(
|
||||||
"//tools/build_defs:cc_toolchain_util.bzl",
|
"//tools/build_defs:cc_toolchain_util.bzl",
|
||||||
"get_flags_info",
|
"get_flags_info",
|
||||||
|
@ -16,7 +17,6 @@ load(
|
||||||
"cc_external_rule_impl",
|
"cc_external_rule_impl",
|
||||||
"create_attrs",
|
"create_attrs",
|
||||||
)
|
)
|
||||||
load("//tools/build_defs/native_tools:tool_access.bzl", "get_make_data")
|
|
||||||
load(":configure_script.bzl", "create_configure_script")
|
load(":configure_script.bzl", "create_configure_script")
|
||||||
|
|
||||||
def _configure_make(ctx):
|
def _configure_make(ctx):
|
||||||
|
@ -179,7 +179,7 @@ configure_make = rule(
|
||||||
output_to_genfiles = True,
|
output_to_genfiles = True,
|
||||||
implementation = _configure_make,
|
implementation = _configure_make,
|
||||||
toolchains = [
|
toolchains = [
|
||||||
"@rules_foreign_cc//tools/build_defs:make_toolchain",
|
"@rules_foreign_cc//toolchains:make_toolchain",
|
||||||
"@rules_foreign_cc//tools/build_defs/shell_toolchain/toolchains:shell_commands",
|
"@rules_foreign_cc//tools/build_defs/shell_toolchain/toolchains:shell_commands",
|
||||||
"@bazel_tools//tools/cpp:toolchain_type",
|
"@bazel_tools//tools/cpp:toolchain_type",
|
||||||
],
|
],
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
# buildifier: disable=module-docstring
|
# buildifier: disable=module-docstring
|
||||||
|
load("//toolchains/native_tools:tool_access.bzl", "get_make_data")
|
||||||
load(
|
load(
|
||||||
"//tools/build_defs:cc_toolchain_util.bzl",
|
"//tools/build_defs:cc_toolchain_util.bzl",
|
||||||
"get_flags_info",
|
"get_flags_info",
|
||||||
|
@ -14,7 +15,6 @@ load(
|
||||||
"cc_external_rule_impl",
|
"cc_external_rule_impl",
|
||||||
"create_attrs",
|
"create_attrs",
|
||||||
)
|
)
|
||||||
load("//tools/build_defs/native_tools:tool_access.bzl", "get_make_data")
|
|
||||||
load(":configure_script.bzl", "create_make_script")
|
load(":configure_script.bzl", "create_make_script")
|
||||||
|
|
||||||
def _make(ctx):
|
def _make(ctx):
|
||||||
|
@ -122,7 +122,7 @@ make = rule(
|
||||||
output_to_genfiles = True,
|
output_to_genfiles = True,
|
||||||
implementation = _make,
|
implementation = _make,
|
||||||
toolchains = [
|
toolchains = [
|
||||||
"@rules_foreign_cc//tools/build_defs:make_toolchain",
|
"@rules_foreign_cc//toolchains:make_toolchain",
|
||||||
"@rules_foreign_cc//tools/build_defs/shell_toolchain/toolchains:shell_commands",
|
"@rules_foreign_cc//tools/build_defs/shell_toolchain/toolchains:shell_commands",
|
||||||
"@bazel_tools//tools/cpp:toolchain_type",
|
"@bazel_tools//tools/cpp:toolchain_type",
|
||||||
],
|
],
|
||||||
|
|
|
@ -1,68 +1,9 @@
|
||||||
# buildifier: disable=module-docstring
|
"""This module has been moved to `//toolchains/native_tools:native_tools_toolchains.bzl`.
|
||||||
ToolInfo = provider(
|
This file will be removed at some point in the future
|
||||||
doc = "Information about the native tool",
|
"""
|
||||||
fields = {
|
|
||||||
"path": (
|
|
||||||
"Absolute path to the tool in case the tool is preinstalled on the machine. " +
|
|
||||||
"Relative path to the tool in case the tool is built as part of a build; the path should be relative " +
|
|
||||||
"to the bazel-genfiles, i.e. it should start with the name of the top directory of the built tree " +
|
|
||||||
"artifact. (Please see the example `//examples:built_cmake_toolchain`)"
|
|
||||||
),
|
|
||||||
"target": (
|
|
||||||
"If the tool is preinstalled, must be None. " +
|
|
||||||
"If the tool is built as part of the build, the corresponding build target, which should produce " +
|
|
||||||
"the tree artifact with the binary to call."
|
|
||||||
),
|
|
||||||
},
|
|
||||||
)
|
|
||||||
|
|
||||||
def _native_tool_toolchain_impl(ctx):
|
load("//toolchains/native_tools:native_tools_toolchain.bzl", _native_tool_toolchain = "native_tool_toolchain")
|
||||||
if not ctx.attr.path and not ctx.attr.target:
|
load("//toolchains/native_tools:tool_access.bzl", _access_tool = "access_tool")
|
||||||
fail("Either path or target (and path) should be defined for the tool.")
|
|
||||||
path = None
|
|
||||||
if ctx.attr.target:
|
|
||||||
path = ctx.expand_location(ctx.attr.path, targets = [ctx.attr.target])
|
|
||||||
else:
|
|
||||||
path = ctx.expand_location(ctx.attr.path)
|
|
||||||
return platform_common.ToolchainInfo(data = ToolInfo(
|
|
||||||
path = path,
|
|
||||||
target = ctx.attr.target,
|
|
||||||
))
|
|
||||||
|
|
||||||
native_tool_toolchain = rule(
|
native_tool_toolchain = _native_tool_toolchain
|
||||||
doc = (
|
access_tool = _access_tool
|
||||||
"Rule for defining the toolchain data of the native tools (cmake, ninja), " +
|
|
||||||
"to be used by rules_foreign_cc with toolchain types " +
|
|
||||||
"`@rules_foreign_cc//tools/build_defs:cmake_toolchain` and " +
|
|
||||||
"`@rules_foreign_cc//tools/build_defs:ninja_toolchain`."
|
|
||||||
),
|
|
||||||
implementation = _native_tool_toolchain_impl,
|
|
||||||
attrs = {
|
|
||||||
"path": attr.string(
|
|
||||||
mandatory = False,
|
|
||||||
doc = (
|
|
||||||
"Absolute path to the tool in case the tool is preinstalled on the machine. " +
|
|
||||||
"Relative path to the tool in case the tool is built as part of a build; the path should be " +
|
|
||||||
"relative to the bazel-genfiles, i.e. it should start with the name of the top directory " +
|
|
||||||
"of the built tree artifact. (Please see the example `//examples:built_cmake_toolchain`)"
|
|
||||||
),
|
|
||||||
),
|
|
||||||
"target": attr.label(
|
|
||||||
mandatory = False,
|
|
||||||
doc = (
|
|
||||||
"If the tool is preinstalled, must be None. " +
|
|
||||||
"If the tool is built as part of the build, the corresponding build target, " +
|
|
||||||
"which should produce the tree artifact with the binary to call."
|
|
||||||
),
|
|
||||||
),
|
|
||||||
},
|
|
||||||
)
|
|
||||||
|
|
||||||
def access_tool(toolchain_type_, ctx, tool_name):
|
|
||||||
tool_toolchain = ctx.toolchains[toolchain_type_]
|
|
||||||
if tool_toolchain:
|
|
||||||
return tool_toolchain.data
|
|
||||||
return ToolInfo(
|
|
||||||
path = tool_name,
|
|
||||||
target = None,
|
|
||||||
)
|
|
||||||
|
|
|
@ -1,32 +1,14 @@
|
||||||
# buildifier: disable=module-docstring
|
"""This module has been moved to `//toolchains/native_tools:native_tools_toolchains.bzl`.
|
||||||
load(":native_tools_toolchain.bzl", "access_tool")
|
This file will be removed at some point in the future
|
||||||
|
"""
|
||||||
|
|
||||||
def get_cmake_data(ctx):
|
load(
|
||||||
return _access_and_expect_label_copied("@rules_foreign_cc//tools/build_defs:cmake_toolchain", ctx, "cmake")
|
"//toolchains/native_tools:tool_access.bzl",
|
||||||
|
_get_cmake_data = "get_cmake_data",
|
||||||
|
_get_make_data = "get_make_data",
|
||||||
|
_get_ninja_data = "get_ninja_data",
|
||||||
|
)
|
||||||
|
|
||||||
def get_ninja_data(ctx):
|
get_cmake_data = _get_cmake_data
|
||||||
return _access_and_expect_label_copied("@rules_foreign_cc//tools/build_defs:ninja_toolchain", ctx, "ninja")
|
get_make_data = _get_make_data
|
||||||
|
get_ninja_data = _get_ninja_data
|
||||||
def get_make_data(ctx):
|
|
||||||
return _access_and_expect_label_copied("@rules_foreign_cc//tools/build_defs:make_toolchain", ctx, "make")
|
|
||||||
|
|
||||||
def _access_and_expect_label_copied(toolchain_type_, ctx, tool_name):
|
|
||||||
tool_data = access_tool(toolchain_type_, ctx, tool_name)
|
|
||||||
if tool_data.target:
|
|
||||||
# This could be made more efficient by changing the
|
|
||||||
# toolchain to provide the executable as a target
|
|
||||||
cmd_file = tool_data
|
|
||||||
for f in tool_data.target.files.to_list():
|
|
||||||
if f.path.endswith("/" + tool_data.path):
|
|
||||||
cmd_file = f
|
|
||||||
break
|
|
||||||
return struct(
|
|
||||||
deps = [tool_data.target],
|
|
||||||
# as the tool will be copied into tools directory
|
|
||||||
path = "$EXT_BUILD_ROOT/{}".format(cmd_file.path),
|
|
||||||
)
|
|
||||||
else:
|
|
||||||
return struct(
|
|
||||||
deps = [],
|
|
||||||
path = tool_data.path,
|
|
||||||
)
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
"""A module defining the `ninja` rule. A rule for building projects using the Ninja build tool"""
|
"""A module defining the `ninja` rule. A rule for building projects using the Ninja build tool"""
|
||||||
|
|
||||||
|
load("//toolchains/native_tools:tool_access.bzl", "get_ninja_data")
|
||||||
load(
|
load(
|
||||||
"//tools/build_defs:detect_root.bzl",
|
"//tools/build_defs:detect_root.bzl",
|
||||||
"detect_root",
|
"detect_root",
|
||||||
|
@ -10,7 +11,6 @@ load(
|
||||||
"cc_external_rule_impl",
|
"cc_external_rule_impl",
|
||||||
"create_attrs",
|
"create_attrs",
|
||||||
)
|
)
|
||||||
load("//tools/build_defs/native_tools:tool_access.bzl", "get_ninja_data")
|
|
||||||
|
|
||||||
def _ninja_impl(ctx):
|
def _ninja_impl(ctx):
|
||||||
"""The implementation of the `ninja` rule
|
"""The implementation of the `ninja` rule
|
||||||
|
@ -117,7 +117,7 @@ ninja = rule(
|
||||||
output_to_genfiles = True,
|
output_to_genfiles = True,
|
||||||
implementation = _ninja_impl,
|
implementation = _ninja_impl,
|
||||||
toolchains = [
|
toolchains = [
|
||||||
"@rules_foreign_cc//tools/build_defs:ninja_toolchain",
|
"@rules_foreign_cc//toolchains:ninja_toolchain",
|
||||||
"@rules_foreign_cc//tools/build_defs/shell_toolchain/toolchains:shell_commands",
|
"@rules_foreign_cc//tools/build_defs/shell_toolchain/toolchains:shell_commands",
|
||||||
"@bazel_tools//tools/cpp:toolchain_type",
|
"@bazel_tools//tools/cpp:toolchain_type",
|
||||||
],
|
],
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
"""A module for defining WORKSPACE dependencies required for rules_foreign_cc"""
|
"""A module for defining WORKSPACE dependencies required for rules_foreign_cc"""
|
||||||
|
|
||||||
load("//for_workspace:repositories.bzl", "repositories")
|
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
|
||||||
|
load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
|
||||||
load("//toolchains:toolchains.bzl", "built_toolchains", "prebuilt_toolchains", "preinstalled_toolchains")
|
load("//toolchains:toolchains.bzl", "built_toolchains", "prebuilt_toolchains", "preinstalled_toolchains")
|
||||||
load(
|
load(
|
||||||
"//tools/build_defs/shell_toolchain/toolchains:ws_defs.bzl",
|
"//tools/build_defs/shell_toolchain/toolchains:ws_defs.bzl",
|
||||||
|
@ -24,8 +25,8 @@ def rules_foreign_cc_dependencies(
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
native_tools_toolchains: pass the toolchains for toolchain types
|
native_tools_toolchains: pass the toolchains for toolchain types
|
||||||
'@rules_foreign_cc//tools/build_defs:cmake_toolchain' and
|
'@rules_foreign_cc//toolchains:cmake_toolchain' and
|
||||||
'@rules_foreign_cc//tools/build_defs:ninja_toolchain' with the needed platform constraints.
|
'@rules_foreign_cc//toolchains:ninja_toolchain' with the needed platform constraints.
|
||||||
If you do not pass anything, registered default toolchains will be selected (see below).
|
If you do not pass anything, registered default toolchains will be selected (see below).
|
||||||
|
|
||||||
register_default_tools: If True, the cmake and ninja toolchains, calling corresponding
|
register_default_tools: If True, the cmake and ninja toolchains, calling corresponding
|
||||||
|
@ -56,7 +57,6 @@ def rules_foreign_cc_dependencies(
|
||||||
This value is needed since register_toolchains() is called for these toolchains.
|
This value is needed since register_toolchains() is called for these toolchains.
|
||||||
Please refer to example in @rules_foreign_cc//toolchain_examples.
|
Please refer to example in @rules_foreign_cc//toolchain_examples.
|
||||||
"""
|
"""
|
||||||
repositories()
|
|
||||||
|
|
||||||
shell_toolchain_workspace_initalization(
|
shell_toolchain_workspace_initalization(
|
||||||
additional_shell_toolchain_mappings,
|
additional_shell_toolchain_mappings,
|
||||||
|
@ -77,3 +77,13 @@ def rules_foreign_cc_dependencies(
|
||||||
|
|
||||||
if register_preinstalled_tools:
|
if register_preinstalled_tools:
|
||||||
preinstalled_toolchains()
|
preinstalled_toolchains()
|
||||||
|
|
||||||
|
maybe(
|
||||||
|
http_archive,
|
||||||
|
name = "bazel_skylib",
|
||||||
|
sha256 = "1c531376ac7e5a180e0237938a2536de0c54d93f5c278634818e0efc952dd56c",
|
||||||
|
urls = [
|
||||||
|
"https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.0.3/bazel-skylib-1.0.3.tar.gz",
|
||||||
|
"https://github.com/bazelbuild/bazel-skylib/releases/download/1.0.3/bazel-skylib-1.0.3.tar.gz",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
Loading…
Reference in a new issue