This change facilitates hermetic python toolchains, as demonstrated by the test added in this commit.
This commit is contained in:
parent
96dc580194
commit
5663d884a2
|
@ -15,9 +15,9 @@ should be used instead.
|
|||
|
||||
<pre>
|
||||
boost_build(<a href="#boost_build-name">name</a>, <a href="#boost_build-additional_inputs">additional_inputs</a>, <a href="#boost_build-additional_tools">additional_tools</a>, <a href="#boost_build-alwayslink">alwayslink</a>, <a href="#boost_build-bootstrap_options">bootstrap_options</a>, <a href="#boost_build-data">data</a>, <a href="#boost_build-defines">defines</a>,
|
||||
<a href="#boost_build-deps">deps</a>, <a href="#boost_build-env">env</a>, <a href="#boost_build-lib_name">lib_name</a>, <a href="#boost_build-lib_source">lib_source</a>, <a href="#boost_build-linkopts">linkopts</a>, <a href="#boost_build-out_bin_dir">out_bin_dir</a>, <a href="#boost_build-out_binaries">out_binaries</a>, <a href="#boost_build-out_headers_only">out_headers_only</a>,
|
||||
<a href="#boost_build-out_include_dir">out_include_dir</a>, <a href="#boost_build-out_interface_libs">out_interface_libs</a>, <a href="#boost_build-out_lib_dir">out_lib_dir</a>, <a href="#boost_build-out_shared_libs">out_shared_libs</a>, <a href="#boost_build-out_static_libs">out_static_libs</a>,
|
||||
<a href="#boost_build-postfix_script">postfix_script</a>, <a href="#boost_build-tools_deps">tools_deps</a>, <a href="#boost_build-user_options">user_options</a>)
|
||||
<a href="#boost_build-deps">deps</a>, <a href="#boost_build-env">env</a>, <a href="#boost_build-lib_name">lib_name</a>, <a href="#boost_build-lib_source">lib_source</a>, <a href="#boost_build-linkopts">linkopts</a>, <a href="#boost_build-out_bin_dir">out_bin_dir</a>, <a href="#boost_build-out_binaries">out_binaries</a>, <a href="#boost_build-out_data_dirs">out_data_dirs</a>,
|
||||
<a href="#boost_build-out_headers_only">out_headers_only</a>, <a href="#boost_build-out_include_dir">out_include_dir</a>, <a href="#boost_build-out_interface_libs">out_interface_libs</a>, <a href="#boost_build-out_lib_dir">out_lib_dir</a>, <a href="#boost_build-out_shared_libs">out_shared_libs</a>,
|
||||
<a href="#boost_build-out_static_libs">out_static_libs</a>, <a href="#boost_build-postfix_script">postfix_script</a>, <a href="#boost_build-tools_deps">tools_deps</a>, <a href="#boost_build-user_options">user_options</a>)
|
||||
</pre>
|
||||
|
||||
Rule for building Boost. Invokes bootstrap.sh and then b2 install.
|
||||
|
@ -41,6 +41,7 @@ Rule for building Boost. Invokes bootstrap.sh and then b2 install.
|
|||
| <a id="boost_build-linkopts"></a>linkopts | Optional link options to be passed up to the dependencies of this library | List of strings | optional | [] |
|
||||
| <a id="boost_build-out_bin_dir"></a>out_bin_dir | Optional name of the output subdirectory with the binary files, defaults to 'bin'. | String | optional | "bin" |
|
||||
| <a id="boost_build-out_binaries"></a>out_binaries | Optional names of the resulting binaries. | List of strings | optional | [] |
|
||||
| <a id="boost_build-out_data_dirs"></a>out_data_dirs | Optional names of additional directories created by the build that should be declared as bazel action outputs | List of strings | optional | [] |
|
||||
| <a id="boost_build-out_headers_only"></a>out_headers_only | Flag variable to indicate that the library produces only headers | Boolean | optional | False |
|
||||
| <a id="boost_build-out_include_dir"></a>out_include_dir | Optional name of the output subdirectory with the header files, defaults to 'include'. | String | optional | "include" |
|
||||
| <a id="boost_build-out_interface_libs"></a>out_interface_libs | Optional names of the resulting interface libraries. | List of strings | optional | [] |
|
||||
|
@ -59,9 +60,9 @@ Rule for building Boost. Invokes bootstrap.sh and then b2 install.
|
|||
<pre>
|
||||
cmake(<a href="#cmake-name">name</a>, <a href="#cmake-additional_inputs">additional_inputs</a>, <a href="#cmake-additional_tools">additional_tools</a>, <a href="#cmake-alwayslink">alwayslink</a>, <a href="#cmake-build_args">build_args</a>, <a href="#cmake-cache_entries">cache_entries</a>, <a href="#cmake-data">data</a>,
|
||||
<a href="#cmake-defines">defines</a>, <a href="#cmake-deps">deps</a>, <a href="#cmake-env">env</a>, <a href="#cmake-env_vars">env_vars</a>, <a href="#cmake-generate_args">generate_args</a>, <a href="#cmake-generate_crosstool_file">generate_crosstool_file</a>, <a href="#cmake-install">install</a>, <a href="#cmake-install_args">install_args</a>,
|
||||
<a href="#cmake-lib_name">lib_name</a>, <a href="#cmake-lib_source">lib_source</a>, <a href="#cmake-linkopts">linkopts</a>, <a href="#cmake-out_bin_dir">out_bin_dir</a>, <a href="#cmake-out_binaries">out_binaries</a>, <a href="#cmake-out_headers_only">out_headers_only</a>, <a href="#cmake-out_include_dir">out_include_dir</a>,
|
||||
<a href="#cmake-out_interface_libs">out_interface_libs</a>, <a href="#cmake-out_lib_dir">out_lib_dir</a>, <a href="#cmake-out_shared_libs">out_shared_libs</a>, <a href="#cmake-out_static_libs">out_static_libs</a>, <a href="#cmake-postfix_script">postfix_script</a>, <a href="#cmake-targets">targets</a>,
|
||||
<a href="#cmake-tools_deps">tools_deps</a>, <a href="#cmake-working_directory">working_directory</a>)
|
||||
<a href="#cmake-lib_name">lib_name</a>, <a href="#cmake-lib_source">lib_source</a>, <a href="#cmake-linkopts">linkopts</a>, <a href="#cmake-out_bin_dir">out_bin_dir</a>, <a href="#cmake-out_binaries">out_binaries</a>, <a href="#cmake-out_data_dirs">out_data_dirs</a>, <a href="#cmake-out_headers_only">out_headers_only</a>,
|
||||
<a href="#cmake-out_include_dir">out_include_dir</a>, <a href="#cmake-out_interface_libs">out_interface_libs</a>, <a href="#cmake-out_lib_dir">out_lib_dir</a>, <a href="#cmake-out_shared_libs">out_shared_libs</a>, <a href="#cmake-out_static_libs">out_static_libs</a>,
|
||||
<a href="#cmake-postfix_script">postfix_script</a>, <a href="#cmake-targets">targets</a>, <a href="#cmake-tools_deps">tools_deps</a>, <a href="#cmake-working_directory">working_directory</a>)
|
||||
</pre>
|
||||
|
||||
Rule for building external library with CMake.
|
||||
|
@ -91,6 +92,7 @@ Rule for building external library with CMake.
|
|||
| <a id="cmake-linkopts"></a>linkopts | Optional link options to be passed up to the dependencies of this library | List of strings | optional | [] |
|
||||
| <a id="cmake-out_bin_dir"></a>out_bin_dir | Optional name of the output subdirectory with the binary files, defaults to 'bin'. | String | optional | "bin" |
|
||||
| <a id="cmake-out_binaries"></a>out_binaries | Optional names of the resulting binaries. | List of strings | optional | [] |
|
||||
| <a id="cmake-out_data_dirs"></a>out_data_dirs | Optional names of additional directories created by the build that should be declared as bazel action outputs | List of strings | optional | [] |
|
||||
| <a id="cmake-out_headers_only"></a>out_headers_only | Flag variable to indicate that the library produces only headers | Boolean | optional | False |
|
||||
| <a id="cmake-out_include_dir"></a>out_include_dir | Optional name of the output subdirectory with the header files, defaults to 'include'. | String | optional | "include" |
|
||||
| <a id="cmake-out_interface_libs"></a>out_interface_libs | Optional names of the resulting interface libraries. | List of strings | optional | [] |
|
||||
|
@ -132,8 +134,9 @@ configure_make(<a href="#configure_make-name">name</a>, <a href="#configure_make
|
|||
<a href="#configure_make-autogen_options">autogen_options</a>, <a href="#configure_make-autoreconf">autoreconf</a>, <a href="#configure_make-autoreconf_env_vars">autoreconf_env_vars</a>, <a href="#configure_make-autoreconf_options">autoreconf_options</a>,
|
||||
<a href="#configure_make-configure_command">configure_command</a>, <a href="#configure_make-configure_env_vars">configure_env_vars</a>, <a href="#configure_make-configure_in_place">configure_in_place</a>, <a href="#configure_make-configure_options">configure_options</a>, <a href="#configure_make-data">data</a>,
|
||||
<a href="#configure_make-defines">defines</a>, <a href="#configure_make-deps">deps</a>, <a href="#configure_make-env">env</a>, <a href="#configure_make-install_prefix">install_prefix</a>, <a href="#configure_make-lib_name">lib_name</a>, <a href="#configure_make-lib_source">lib_source</a>, <a href="#configure_make-linkopts">linkopts</a>, <a href="#configure_make-make_commands">make_commands</a>,
|
||||
<a href="#configure_make-out_bin_dir">out_bin_dir</a>, <a href="#configure_make-out_binaries">out_binaries</a>, <a href="#configure_make-out_headers_only">out_headers_only</a>, <a href="#configure_make-out_include_dir">out_include_dir</a>, <a href="#configure_make-out_interface_libs">out_interface_libs</a>,
|
||||
<a href="#configure_make-out_lib_dir">out_lib_dir</a>, <a href="#configure_make-out_shared_libs">out_shared_libs</a>, <a href="#configure_make-out_static_libs">out_static_libs</a>, <a href="#configure_make-postfix_script">postfix_script</a>, <a href="#configure_make-targets">targets</a>, <a href="#configure_make-tools_deps">tools_deps</a>)
|
||||
<a href="#configure_make-out_bin_dir">out_bin_dir</a>, <a href="#configure_make-out_binaries">out_binaries</a>, <a href="#configure_make-out_data_dirs">out_data_dirs</a>, <a href="#configure_make-out_headers_only">out_headers_only</a>, <a href="#configure_make-out_include_dir">out_include_dir</a>,
|
||||
<a href="#configure_make-out_interface_libs">out_interface_libs</a>, <a href="#configure_make-out_lib_dir">out_lib_dir</a>, <a href="#configure_make-out_shared_libs">out_shared_libs</a>, <a href="#configure_make-out_static_libs">out_static_libs</a>, <a href="#configure_make-postfix_script">postfix_script</a>,
|
||||
<a href="#configure_make-targets">targets</a>, <a href="#configure_make-tools_deps">tools_deps</a>)
|
||||
</pre>
|
||||
|
||||
Rule for building external libraries with configure-make pattern. Some 'configure' script is invoked with --prefix=install (by default), and other parameters for compilation and linking, taken from Bazel C/C++ toolchain and passed dependencies. After configuration, GNU Make is called.
|
||||
|
@ -173,6 +176,7 @@ Rule for building external libraries with configure-make pattern. Some 'configur
|
|||
| <a id="configure_make-make_commands"></a>make_commands | Optional make commands. | List of strings | optional | ["make", "make install"] |
|
||||
| <a id="configure_make-out_bin_dir"></a>out_bin_dir | Optional name of the output subdirectory with the binary files, defaults to 'bin'. | String | optional | "bin" |
|
||||
| <a id="configure_make-out_binaries"></a>out_binaries | Optional names of the resulting binaries. | List of strings | optional | [] |
|
||||
| <a id="configure_make-out_data_dirs"></a>out_data_dirs | Optional names of additional directories created by the build that should be declared as bazel action outputs | List of strings | optional | [] |
|
||||
| <a id="configure_make-out_headers_only"></a>out_headers_only | Flag variable to indicate that the library produces only headers | Boolean | optional | False |
|
||||
| <a id="configure_make-out_include_dir"></a>out_include_dir | Optional name of the output subdirectory with the header files, defaults to 'include'. | String | optional | "include" |
|
||||
| <a id="configure_make-out_interface_libs"></a>out_interface_libs | Optional names of the resulting interface libraries. | List of strings | optional | [] |
|
||||
|
@ -190,9 +194,9 @@ Rule for building external libraries with configure-make pattern. Some 'configur
|
|||
|
||||
<pre>
|
||||
make(<a href="#make-name">name</a>, <a href="#make-additional_inputs">additional_inputs</a>, <a href="#make-additional_tools">additional_tools</a>, <a href="#make-alwayslink">alwayslink</a>, <a href="#make-args">args</a>, <a href="#make-data">data</a>, <a href="#make-defines">defines</a>, <a href="#make-deps">deps</a>, <a href="#make-env">env</a>,
|
||||
<a href="#make-lib_name">lib_name</a>, <a href="#make-lib_source">lib_source</a>, <a href="#make-linkopts">linkopts</a>, <a href="#make-out_bin_dir">out_bin_dir</a>, <a href="#make-out_binaries">out_binaries</a>, <a href="#make-out_headers_only">out_headers_only</a>, <a href="#make-out_include_dir">out_include_dir</a>,
|
||||
<a href="#make-out_interface_libs">out_interface_libs</a>, <a href="#make-out_lib_dir">out_lib_dir</a>, <a href="#make-out_shared_libs">out_shared_libs</a>, <a href="#make-out_static_libs">out_static_libs</a>, <a href="#make-postfix_script">postfix_script</a>, <a href="#make-targets">targets</a>,
|
||||
<a href="#make-tools_deps">tools_deps</a>)
|
||||
<a href="#make-lib_name">lib_name</a>, <a href="#make-lib_source">lib_source</a>, <a href="#make-linkopts">linkopts</a>, <a href="#make-out_bin_dir">out_bin_dir</a>, <a href="#make-out_binaries">out_binaries</a>, <a href="#make-out_data_dirs">out_data_dirs</a>, <a href="#make-out_headers_only">out_headers_only</a>,
|
||||
<a href="#make-out_include_dir">out_include_dir</a>, <a href="#make-out_interface_libs">out_interface_libs</a>, <a href="#make-out_lib_dir">out_lib_dir</a>, <a href="#make-out_shared_libs">out_shared_libs</a>, <a href="#make-out_static_libs">out_static_libs</a>,
|
||||
<a href="#make-postfix_script">postfix_script</a>, <a href="#make-targets">targets</a>, <a href="#make-tools_deps">tools_deps</a>)
|
||||
</pre>
|
||||
|
||||
Rule for building external libraries with GNU Make. GNU Make commands (make and make install by default) are invoked with prefix="install" (by default), and other environment variables for compilation and linking, taken from Bazel C/C++ toolchain and passed dependencies.
|
||||
|
@ -216,6 +220,7 @@ Rule for building external libraries with GNU Make. GNU Make commands (make and
|
|||
| <a id="make-linkopts"></a>linkopts | Optional link options to be passed up to the dependencies of this library | List of strings | optional | [] |
|
||||
| <a id="make-out_bin_dir"></a>out_bin_dir | Optional name of the output subdirectory with the binary files, defaults to 'bin'. | String | optional | "bin" |
|
||||
| <a id="make-out_binaries"></a>out_binaries | Optional names of the resulting binaries. | List of strings | optional | [] |
|
||||
| <a id="make-out_data_dirs"></a>out_data_dirs | Optional names of additional directories created by the build that should be declared as bazel action outputs | List of strings | optional | [] |
|
||||
| <a id="make-out_headers_only"></a>out_headers_only | Flag variable to indicate that the library produces only headers | Boolean | optional | False |
|
||||
| <a id="make-out_include_dir"></a>out_include_dir | Optional name of the output subdirectory with the header files, defaults to 'include'. | String | optional | "include" |
|
||||
| <a id="make-out_interface_libs"></a>out_interface_libs | Optional names of the resulting interface libraries. | List of strings | optional | [] |
|
||||
|
@ -272,7 +277,7 @@ Rule for defining the toolchain data of the native tools (cmake, ninja), to be u
|
|||
|
||||
<pre>
|
||||
ninja(<a href="#ninja-name">name</a>, <a href="#ninja-additional_inputs">additional_inputs</a>, <a href="#ninja-additional_tools">additional_tools</a>, <a href="#ninja-alwayslink">alwayslink</a>, <a href="#ninja-args">args</a>, <a href="#ninja-data">data</a>, <a href="#ninja-defines">defines</a>, <a href="#ninja-deps">deps</a>, <a href="#ninja-directory">directory</a>,
|
||||
<a href="#ninja-env">env</a>, <a href="#ninja-lib_name">lib_name</a>, <a href="#ninja-lib_source">lib_source</a>, <a href="#ninja-linkopts">linkopts</a>, <a href="#ninja-out_bin_dir">out_bin_dir</a>, <a href="#ninja-out_binaries">out_binaries</a>, <a href="#ninja-out_headers_only">out_headers_only</a>,
|
||||
<a href="#ninja-env">env</a>, <a href="#ninja-lib_name">lib_name</a>, <a href="#ninja-lib_source">lib_source</a>, <a href="#ninja-linkopts">linkopts</a>, <a href="#ninja-out_bin_dir">out_bin_dir</a>, <a href="#ninja-out_binaries">out_binaries</a>, <a href="#ninja-out_data_dirs">out_data_dirs</a>, <a href="#ninja-out_headers_only">out_headers_only</a>,
|
||||
<a href="#ninja-out_include_dir">out_include_dir</a>, <a href="#ninja-out_interface_libs">out_interface_libs</a>, <a href="#ninja-out_lib_dir">out_lib_dir</a>, <a href="#ninja-out_shared_libs">out_shared_libs</a>, <a href="#ninja-out_static_libs">out_static_libs</a>,
|
||||
<a href="#ninja-postfix_script">postfix_script</a>, <a href="#ninja-targets">targets</a>, <a href="#ninja-tools_deps">tools_deps</a>)
|
||||
</pre>
|
||||
|
@ -299,6 +304,7 @@ Rule for building external libraries with [Ninja](https://ninja-build.org/).
|
|||
| <a id="ninja-linkopts"></a>linkopts | Optional link options to be passed up to the dependencies of this library | List of strings | optional | [] |
|
||||
| <a id="ninja-out_bin_dir"></a>out_bin_dir | Optional name of the output subdirectory with the binary files, defaults to 'bin'. | String | optional | "bin" |
|
||||
| <a id="ninja-out_binaries"></a>out_binaries | Optional names of the resulting binaries. | List of strings | optional | [] |
|
||||
| <a id="ninja-out_data_dirs"></a>out_data_dirs | Optional names of additional directories created by the build that should be declared as bazel action outputs | List of strings | optional | [] |
|
||||
| <a id="ninja-out_headers_only"></a>out_headers_only | Flag variable to indicate that the library produces only headers | Boolean | optional | False |
|
||||
| <a id="ninja-out_include_dir"></a>out_include_dir | Optional name of the output subdirectory with the header files, defaults to 'include'. | String | optional | "include" |
|
||||
| <a id="ninja-out_interface_libs"></a>out_interface_libs | Optional names of the resulting interface libraries. | List of strings | optional | [] |
|
||||
|
|
|
@ -138,9 +138,9 @@ cmake(
|
|||
<pre>
|
||||
cmake(<a href="#cmake-name">name</a>, <a href="#cmake-additional_inputs">additional_inputs</a>, <a href="#cmake-additional_tools">additional_tools</a>, <a href="#cmake-alwayslink">alwayslink</a>, <a href="#cmake-build_args">build_args</a>, <a href="#cmake-build_data">build_data</a>, <a href="#cmake-cache_entries">cache_entries</a>,
|
||||
<a href="#cmake-data">data</a>, <a href="#cmake-defines">defines</a>, <a href="#cmake-deps">deps</a>, <a href="#cmake-env">env</a>, <a href="#cmake-generate_args">generate_args</a>, <a href="#cmake-generate_crosstool_file">generate_crosstool_file</a>, <a href="#cmake-install">install</a>, <a href="#cmake-install_args">install_args</a>,
|
||||
<a href="#cmake-lib_name">lib_name</a>, <a href="#cmake-lib_source">lib_source</a>, <a href="#cmake-linkopts">linkopts</a>, <a href="#cmake-out_bin_dir">out_bin_dir</a>, <a href="#cmake-out_binaries">out_binaries</a>, <a href="#cmake-out_headers_only">out_headers_only</a>, <a href="#cmake-out_include_dir">out_include_dir</a>,
|
||||
<a href="#cmake-out_interface_libs">out_interface_libs</a>, <a href="#cmake-out_lib_dir">out_lib_dir</a>, <a href="#cmake-out_shared_libs">out_shared_libs</a>, <a href="#cmake-out_static_libs">out_static_libs</a>, <a href="#cmake-postfix_script">postfix_script</a>, <a href="#cmake-targets">targets</a>,
|
||||
<a href="#cmake-tool_prefix">tool_prefix</a>, <a href="#cmake-tools_deps">tools_deps</a>, <a href="#cmake-working_directory">working_directory</a>)
|
||||
<a href="#cmake-lib_name">lib_name</a>, <a href="#cmake-lib_source">lib_source</a>, <a href="#cmake-linkopts">linkopts</a>, <a href="#cmake-out_bin_dir">out_bin_dir</a>, <a href="#cmake-out_binaries">out_binaries</a>, <a href="#cmake-out_data_dirs">out_data_dirs</a>, <a href="#cmake-out_headers_only">out_headers_only</a>,
|
||||
<a href="#cmake-out_include_dir">out_include_dir</a>, <a href="#cmake-out_interface_libs">out_interface_libs</a>, <a href="#cmake-out_lib_dir">out_lib_dir</a>, <a href="#cmake-out_shared_libs">out_shared_libs</a>, <a href="#cmake-out_static_libs">out_static_libs</a>,
|
||||
<a href="#cmake-postfix_script">postfix_script</a>, <a href="#cmake-targets">targets</a>, <a href="#cmake-tool_prefix">tool_prefix</a>, <a href="#cmake-tools_deps">tools_deps</a>, <a href="#cmake-working_directory">working_directory</a>)
|
||||
</pre>
|
||||
|
||||
Rule for building external library with CMake.
|
||||
|
@ -170,6 +170,7 @@ Rule for building external library with CMake.
|
|||
| <a id="cmake-linkopts"></a>linkopts | Optional link options to be passed up to the dependencies of this library | List of strings | optional | [] |
|
||||
| <a id="cmake-out_bin_dir"></a>out_bin_dir | Optional name of the output subdirectory with the binary files, defaults to 'bin'. | String | optional | "bin" |
|
||||
| <a id="cmake-out_binaries"></a>out_binaries | Optional names of the resulting binaries. | List of strings | optional | [] |
|
||||
| <a id="cmake-out_data_dirs"></a>out_data_dirs | Optional names of additional directories created by the build that should be declared as bazel action outputs | List of strings | optional | [] |
|
||||
| <a id="cmake-out_headers_only"></a>out_headers_only | Flag variable to indicate that the library produces only headers | Boolean | optional | False |
|
||||
| <a id="cmake-out_include_dir"></a>out_include_dir | Optional name of the output subdirectory with the header files, defaults to 'include'. | String | optional | "include" |
|
||||
| <a id="cmake-out_interface_libs"></a>out_interface_libs | Optional names of the resulting interface libraries. | List of strings | optional | [] |
|
||||
|
|
|
@ -13,9 +13,9 @@ configure_make(<a href="#configure_make-name">name</a>, <a href="#configure_make
|
|||
<a href="#configure_make-autoconf_options">autoconf_options</a>, <a href="#configure_make-autogen">autogen</a>, <a href="#configure_make-autogen_command">autogen_command</a>, <a href="#configure_make-autogen_options">autogen_options</a>, <a href="#configure_make-autoreconf">autoreconf</a>,
|
||||
<a href="#configure_make-autoreconf_options">autoreconf_options</a>, <a href="#configure_make-build_data">build_data</a>, <a href="#configure_make-configure_command">configure_command</a>, <a href="#configure_make-configure_in_place">configure_in_place</a>,
|
||||
<a href="#configure_make-configure_options">configure_options</a>, <a href="#configure_make-configure_prefix">configure_prefix</a>, <a href="#configure_make-data">data</a>, <a href="#configure_make-defines">defines</a>, <a href="#configure_make-deps">deps</a>, <a href="#configure_make-env">env</a>, <a href="#configure_make-install_prefix">install_prefix</a>,
|
||||
<a href="#configure_make-lib_name">lib_name</a>, <a href="#configure_make-lib_source">lib_source</a>, <a href="#configure_make-linkopts">linkopts</a>, <a href="#configure_make-out_bin_dir">out_bin_dir</a>, <a href="#configure_make-out_binaries">out_binaries</a>, <a href="#configure_make-out_headers_only">out_headers_only</a>,
|
||||
<a href="#configure_make-out_include_dir">out_include_dir</a>, <a href="#configure_make-out_interface_libs">out_interface_libs</a>, <a href="#configure_make-out_lib_dir">out_lib_dir</a>, <a href="#configure_make-out_shared_libs">out_shared_libs</a>, <a href="#configure_make-out_static_libs">out_static_libs</a>,
|
||||
<a href="#configure_make-postfix_script">postfix_script</a>, <a href="#configure_make-targets">targets</a>, <a href="#configure_make-tool_prefix">tool_prefix</a>, <a href="#configure_make-tools_deps">tools_deps</a>)
|
||||
<a href="#configure_make-lib_name">lib_name</a>, <a href="#configure_make-lib_source">lib_source</a>, <a href="#configure_make-linkopts">linkopts</a>, <a href="#configure_make-out_bin_dir">out_bin_dir</a>, <a href="#configure_make-out_binaries">out_binaries</a>, <a href="#configure_make-out_data_dirs">out_data_dirs</a>,
|
||||
<a href="#configure_make-out_headers_only">out_headers_only</a>, <a href="#configure_make-out_include_dir">out_include_dir</a>, <a href="#configure_make-out_interface_libs">out_interface_libs</a>, <a href="#configure_make-out_lib_dir">out_lib_dir</a>, <a href="#configure_make-out_shared_libs">out_shared_libs</a>,
|
||||
<a href="#configure_make-out_static_libs">out_static_libs</a>, <a href="#configure_make-postfix_script">postfix_script</a>, <a href="#configure_make-targets">targets</a>, <a href="#configure_make-tool_prefix">tool_prefix</a>, <a href="#configure_make-tools_deps">tools_deps</a>)
|
||||
</pre>
|
||||
|
||||
Rule for building external libraries with configure-make pattern. Some 'configure' script is invoked with --prefix=install (by default), and other parameters for compilation and linking, taken from Bazel C/C++ toolchain and passed dependencies. After configuration, GNU Make is called.
|
||||
|
@ -52,6 +52,7 @@ Rule for building external libraries with configure-make pattern. Some 'configur
|
|||
| <a id="configure_make-linkopts"></a>linkopts | Optional link options to be passed up to the dependencies of this library | List of strings | optional | [] |
|
||||
| <a id="configure_make-out_bin_dir"></a>out_bin_dir | Optional name of the output subdirectory with the binary files, defaults to 'bin'. | String | optional | "bin" |
|
||||
| <a id="configure_make-out_binaries"></a>out_binaries | Optional names of the resulting binaries. | List of strings | optional | [] |
|
||||
| <a id="configure_make-out_data_dirs"></a>out_data_dirs | Optional names of additional directories created by the build that should be declared as bazel action outputs | List of strings | optional | [] |
|
||||
| <a id="configure_make-out_headers_only"></a>out_headers_only | Flag variable to indicate that the library produces only headers | Boolean | optional | False |
|
||||
| <a id="configure_make-out_include_dir"></a>out_include_dir | Optional name of the output subdirectory with the header files, defaults to 'include'. | String | optional | "include" |
|
||||
| <a id="configure_make-out_interface_libs"></a>out_interface_libs | Optional names of the resulting interface libraries. | List of strings | optional | [] |
|
||||
|
|
|
@ -22,8 +22,8 @@
|
|||
<pre>
|
||||
boost_build(<a href="#boost_build-name">name</a>, <a href="#boost_build-additional_inputs">additional_inputs</a>, <a href="#boost_build-additional_tools">additional_tools</a>, <a href="#boost_build-alwayslink">alwayslink</a>, <a href="#boost_build-bootstrap_options">bootstrap_options</a>, <a href="#boost_build-build_data">build_data</a>,
|
||||
<a href="#boost_build-data">data</a>, <a href="#boost_build-defines">defines</a>, <a href="#boost_build-deps">deps</a>, <a href="#boost_build-env">env</a>, <a href="#boost_build-lib_name">lib_name</a>, <a href="#boost_build-lib_source">lib_source</a>, <a href="#boost_build-linkopts">linkopts</a>, <a href="#boost_build-out_bin_dir">out_bin_dir</a>, <a href="#boost_build-out_binaries">out_binaries</a>,
|
||||
<a href="#boost_build-out_headers_only">out_headers_only</a>, <a href="#boost_build-out_include_dir">out_include_dir</a>, <a href="#boost_build-out_interface_libs">out_interface_libs</a>, <a href="#boost_build-out_lib_dir">out_lib_dir</a>, <a href="#boost_build-out_shared_libs">out_shared_libs</a>,
|
||||
<a href="#boost_build-out_static_libs">out_static_libs</a>, <a href="#boost_build-postfix_script">postfix_script</a>, <a href="#boost_build-tool_prefix">tool_prefix</a>, <a href="#boost_build-tools_deps">tools_deps</a>, <a href="#boost_build-user_options">user_options</a>)
|
||||
<a href="#boost_build-out_data_dirs">out_data_dirs</a>, <a href="#boost_build-out_headers_only">out_headers_only</a>, <a href="#boost_build-out_include_dir">out_include_dir</a>, <a href="#boost_build-out_interface_libs">out_interface_libs</a>, <a href="#boost_build-out_lib_dir">out_lib_dir</a>,
|
||||
<a href="#boost_build-out_shared_libs">out_shared_libs</a>, <a href="#boost_build-out_static_libs">out_static_libs</a>, <a href="#boost_build-postfix_script">postfix_script</a>, <a href="#boost_build-tool_prefix">tool_prefix</a>, <a href="#boost_build-tools_deps">tools_deps</a>, <a href="#boost_build-user_options">user_options</a>)
|
||||
</pre>
|
||||
|
||||
Rule for building Boost. Invokes bootstrap.sh and then b2 install.
|
||||
|
@ -48,6 +48,7 @@ Rule for building Boost. Invokes bootstrap.sh and then b2 install.
|
|||
| <a id="boost_build-linkopts"></a>linkopts | Optional link options to be passed up to the dependencies of this library | List of strings | optional | [] |
|
||||
| <a id="boost_build-out_bin_dir"></a>out_bin_dir | Optional name of the output subdirectory with the binary files, defaults to 'bin'. | String | optional | "bin" |
|
||||
| <a id="boost_build-out_binaries"></a>out_binaries | Optional names of the resulting binaries. | List of strings | optional | [] |
|
||||
| <a id="boost_build-out_data_dirs"></a>out_data_dirs | Optional names of additional directories created by the build that should be declared as bazel action outputs | List of strings | optional | [] |
|
||||
| <a id="boost_build-out_headers_only"></a>out_headers_only | Flag variable to indicate that the library produces only headers | Boolean | optional | False |
|
||||
| <a id="boost_build-out_include_dir"></a>out_include_dir | Optional name of the output subdirectory with the header files, defaults to 'include'. | String | optional | "include" |
|
||||
| <a id="boost_build-out_interface_libs"></a>out_interface_libs | Optional names of the resulting interface libraries. | List of strings | optional | [] |
|
||||
|
@ -67,9 +68,9 @@ Rule for building Boost. Invokes bootstrap.sh and then b2 install.
|
|||
<pre>
|
||||
cmake(<a href="#cmake-name">name</a>, <a href="#cmake-additional_inputs">additional_inputs</a>, <a href="#cmake-additional_tools">additional_tools</a>, <a href="#cmake-alwayslink">alwayslink</a>, <a href="#cmake-build_args">build_args</a>, <a href="#cmake-build_data">build_data</a>, <a href="#cmake-cache_entries">cache_entries</a>,
|
||||
<a href="#cmake-data">data</a>, <a href="#cmake-defines">defines</a>, <a href="#cmake-deps">deps</a>, <a href="#cmake-env">env</a>, <a href="#cmake-generate_args">generate_args</a>, <a href="#cmake-generate_crosstool_file">generate_crosstool_file</a>, <a href="#cmake-install">install</a>, <a href="#cmake-install_args">install_args</a>,
|
||||
<a href="#cmake-lib_name">lib_name</a>, <a href="#cmake-lib_source">lib_source</a>, <a href="#cmake-linkopts">linkopts</a>, <a href="#cmake-out_bin_dir">out_bin_dir</a>, <a href="#cmake-out_binaries">out_binaries</a>, <a href="#cmake-out_headers_only">out_headers_only</a>, <a href="#cmake-out_include_dir">out_include_dir</a>,
|
||||
<a href="#cmake-out_interface_libs">out_interface_libs</a>, <a href="#cmake-out_lib_dir">out_lib_dir</a>, <a href="#cmake-out_shared_libs">out_shared_libs</a>, <a href="#cmake-out_static_libs">out_static_libs</a>, <a href="#cmake-postfix_script">postfix_script</a>, <a href="#cmake-targets">targets</a>,
|
||||
<a href="#cmake-tool_prefix">tool_prefix</a>, <a href="#cmake-tools_deps">tools_deps</a>, <a href="#cmake-working_directory">working_directory</a>)
|
||||
<a href="#cmake-lib_name">lib_name</a>, <a href="#cmake-lib_source">lib_source</a>, <a href="#cmake-linkopts">linkopts</a>, <a href="#cmake-out_bin_dir">out_bin_dir</a>, <a href="#cmake-out_binaries">out_binaries</a>, <a href="#cmake-out_data_dirs">out_data_dirs</a>, <a href="#cmake-out_headers_only">out_headers_only</a>,
|
||||
<a href="#cmake-out_include_dir">out_include_dir</a>, <a href="#cmake-out_interface_libs">out_interface_libs</a>, <a href="#cmake-out_lib_dir">out_lib_dir</a>, <a href="#cmake-out_shared_libs">out_shared_libs</a>, <a href="#cmake-out_static_libs">out_static_libs</a>,
|
||||
<a href="#cmake-postfix_script">postfix_script</a>, <a href="#cmake-targets">targets</a>, <a href="#cmake-tool_prefix">tool_prefix</a>, <a href="#cmake-tools_deps">tools_deps</a>, <a href="#cmake-working_directory">working_directory</a>)
|
||||
</pre>
|
||||
|
||||
Rule for building external library with CMake.
|
||||
|
@ -99,6 +100,7 @@ Rule for building external library with CMake.
|
|||
| <a id="cmake-linkopts"></a>linkopts | Optional link options to be passed up to the dependencies of this library | List of strings | optional | [] |
|
||||
| <a id="cmake-out_bin_dir"></a>out_bin_dir | Optional name of the output subdirectory with the binary files, defaults to 'bin'. | String | optional | "bin" |
|
||||
| <a id="cmake-out_binaries"></a>out_binaries | Optional names of the resulting binaries. | List of strings | optional | [] |
|
||||
| <a id="cmake-out_data_dirs"></a>out_data_dirs | Optional names of additional directories created by the build that should be declared as bazel action outputs | List of strings | optional | [] |
|
||||
| <a id="cmake-out_headers_only"></a>out_headers_only | Flag variable to indicate that the library produces only headers | Boolean | optional | False |
|
||||
| <a id="cmake-out_include_dir"></a>out_include_dir | Optional name of the output subdirectory with the header files, defaults to 'include'. | String | optional | "include" |
|
||||
| <a id="cmake-out_interface_libs"></a>out_interface_libs | Optional names of the resulting interface libraries. | List of strings | optional | [] |
|
||||
|
@ -140,9 +142,9 @@ configure_make(<a href="#configure_make-name">name</a>, <a href="#configure_make
|
|||
<a href="#configure_make-autoconf_options">autoconf_options</a>, <a href="#configure_make-autogen">autogen</a>, <a href="#configure_make-autogen_command">autogen_command</a>, <a href="#configure_make-autogen_options">autogen_options</a>, <a href="#configure_make-autoreconf">autoreconf</a>,
|
||||
<a href="#configure_make-autoreconf_options">autoreconf_options</a>, <a href="#configure_make-build_data">build_data</a>, <a href="#configure_make-configure_command">configure_command</a>, <a href="#configure_make-configure_in_place">configure_in_place</a>,
|
||||
<a href="#configure_make-configure_options">configure_options</a>, <a href="#configure_make-configure_prefix">configure_prefix</a>, <a href="#configure_make-data">data</a>, <a href="#configure_make-defines">defines</a>, <a href="#configure_make-deps">deps</a>, <a href="#configure_make-env">env</a>, <a href="#configure_make-install_prefix">install_prefix</a>,
|
||||
<a href="#configure_make-lib_name">lib_name</a>, <a href="#configure_make-lib_source">lib_source</a>, <a href="#configure_make-linkopts">linkopts</a>, <a href="#configure_make-out_bin_dir">out_bin_dir</a>, <a href="#configure_make-out_binaries">out_binaries</a>, <a href="#configure_make-out_headers_only">out_headers_only</a>,
|
||||
<a href="#configure_make-out_include_dir">out_include_dir</a>, <a href="#configure_make-out_interface_libs">out_interface_libs</a>, <a href="#configure_make-out_lib_dir">out_lib_dir</a>, <a href="#configure_make-out_shared_libs">out_shared_libs</a>, <a href="#configure_make-out_static_libs">out_static_libs</a>,
|
||||
<a href="#configure_make-postfix_script">postfix_script</a>, <a href="#configure_make-targets">targets</a>, <a href="#configure_make-tool_prefix">tool_prefix</a>, <a href="#configure_make-tools_deps">tools_deps</a>)
|
||||
<a href="#configure_make-lib_name">lib_name</a>, <a href="#configure_make-lib_source">lib_source</a>, <a href="#configure_make-linkopts">linkopts</a>, <a href="#configure_make-out_bin_dir">out_bin_dir</a>, <a href="#configure_make-out_binaries">out_binaries</a>, <a href="#configure_make-out_data_dirs">out_data_dirs</a>,
|
||||
<a href="#configure_make-out_headers_only">out_headers_only</a>, <a href="#configure_make-out_include_dir">out_include_dir</a>, <a href="#configure_make-out_interface_libs">out_interface_libs</a>, <a href="#configure_make-out_lib_dir">out_lib_dir</a>, <a href="#configure_make-out_shared_libs">out_shared_libs</a>,
|
||||
<a href="#configure_make-out_static_libs">out_static_libs</a>, <a href="#configure_make-postfix_script">postfix_script</a>, <a href="#configure_make-targets">targets</a>, <a href="#configure_make-tool_prefix">tool_prefix</a>, <a href="#configure_make-tools_deps">tools_deps</a>)
|
||||
</pre>
|
||||
|
||||
Rule for building external libraries with configure-make pattern. Some 'configure' script is invoked with --prefix=install (by default), and other parameters for compilation and linking, taken from Bazel C/C++ toolchain and passed dependencies. After configuration, GNU Make is called.
|
||||
|
@ -179,6 +181,7 @@ Rule for building external libraries with configure-make pattern. Some 'configur
|
|||
| <a id="configure_make-linkopts"></a>linkopts | Optional link options to be passed up to the dependencies of this library | List of strings | optional | [] |
|
||||
| <a id="configure_make-out_bin_dir"></a>out_bin_dir | Optional name of the output subdirectory with the binary files, defaults to 'bin'. | String | optional | "bin" |
|
||||
| <a id="configure_make-out_binaries"></a>out_binaries | Optional names of the resulting binaries. | List of strings | optional | [] |
|
||||
| <a id="configure_make-out_data_dirs"></a>out_data_dirs | Optional names of additional directories created by the build that should be declared as bazel action outputs | List of strings | optional | [] |
|
||||
| <a id="configure_make-out_headers_only"></a>out_headers_only | Flag variable to indicate that the library produces only headers | Boolean | optional | False |
|
||||
| <a id="configure_make-out_include_dir"></a>out_include_dir | Optional name of the output subdirectory with the header files, defaults to 'include'. | String | optional | "include" |
|
||||
| <a id="configure_make-out_interface_libs"></a>out_interface_libs | Optional names of the resulting interface libraries. | List of strings | optional | [] |
|
||||
|
@ -197,7 +200,7 @@ Rule for building external libraries with configure-make pattern. Some 'configur
|
|||
|
||||
<pre>
|
||||
make(<a href="#make-name">name</a>, <a href="#make-additional_inputs">additional_inputs</a>, <a href="#make-additional_tools">additional_tools</a>, <a href="#make-alwayslink">alwayslink</a>, <a href="#make-args">args</a>, <a href="#make-build_data">build_data</a>, <a href="#make-data">data</a>, <a href="#make-defines">defines</a>, <a href="#make-deps">deps</a>,
|
||||
<a href="#make-env">env</a>, <a href="#make-lib_name">lib_name</a>, <a href="#make-lib_source">lib_source</a>, <a href="#make-linkopts">linkopts</a>, <a href="#make-out_bin_dir">out_bin_dir</a>, <a href="#make-out_binaries">out_binaries</a>, <a href="#make-out_headers_only">out_headers_only</a>,
|
||||
<a href="#make-env">env</a>, <a href="#make-lib_name">lib_name</a>, <a href="#make-lib_source">lib_source</a>, <a href="#make-linkopts">linkopts</a>, <a href="#make-out_bin_dir">out_bin_dir</a>, <a href="#make-out_binaries">out_binaries</a>, <a href="#make-out_data_dirs">out_data_dirs</a>, <a href="#make-out_headers_only">out_headers_only</a>,
|
||||
<a href="#make-out_include_dir">out_include_dir</a>, <a href="#make-out_interface_libs">out_interface_libs</a>, <a href="#make-out_lib_dir">out_lib_dir</a>, <a href="#make-out_shared_libs">out_shared_libs</a>, <a href="#make-out_static_libs">out_static_libs</a>,
|
||||
<a href="#make-postfix_script">postfix_script</a>, <a href="#make-targets">targets</a>, <a href="#make-tool_prefix">tool_prefix</a>, <a href="#make-tools_deps">tools_deps</a>)
|
||||
</pre>
|
||||
|
@ -224,6 +227,7 @@ Rule for building external libraries with GNU Make. GNU Make commands (make and
|
|||
| <a id="make-linkopts"></a>linkopts | Optional link options to be passed up to the dependencies of this library | List of strings | optional | [] |
|
||||
| <a id="make-out_bin_dir"></a>out_bin_dir | Optional name of the output subdirectory with the binary files, defaults to 'bin'. | String | optional | "bin" |
|
||||
| <a id="make-out_binaries"></a>out_binaries | Optional names of the resulting binaries. | List of strings | optional | [] |
|
||||
| <a id="make-out_data_dirs"></a>out_data_dirs | Optional names of additional directories created by the build that should be declared as bazel action outputs | List of strings | optional | [] |
|
||||
| <a id="make-out_headers_only"></a>out_headers_only | Flag variable to indicate that the library produces only headers | Boolean | optional | False |
|
||||
| <a id="make-out_include_dir"></a>out_include_dir | Optional name of the output subdirectory with the header files, defaults to 'include'. | String | optional | "include" |
|
||||
| <a id="make-out_interface_libs"></a>out_interface_libs | Optional names of the resulting interface libraries. | List of strings | optional | [] |
|
||||
|
@ -281,9 +285,9 @@ Rule for defining the toolchain data of the native tools (cmake, ninja), to be u
|
|||
|
||||
<pre>
|
||||
ninja(<a href="#ninja-name">name</a>, <a href="#ninja-additional_inputs">additional_inputs</a>, <a href="#ninja-additional_tools">additional_tools</a>, <a href="#ninja-alwayslink">alwayslink</a>, <a href="#ninja-args">args</a>, <a href="#ninja-build_data">build_data</a>, <a href="#ninja-data">data</a>, <a href="#ninja-defines">defines</a>, <a href="#ninja-deps">deps</a>,
|
||||
<a href="#ninja-directory">directory</a>, <a href="#ninja-env">env</a>, <a href="#ninja-lib_name">lib_name</a>, <a href="#ninja-lib_source">lib_source</a>, <a href="#ninja-linkopts">linkopts</a>, <a href="#ninja-out_bin_dir">out_bin_dir</a>, <a href="#ninja-out_binaries">out_binaries</a>, <a href="#ninja-out_headers_only">out_headers_only</a>,
|
||||
<a href="#ninja-out_include_dir">out_include_dir</a>, <a href="#ninja-out_interface_libs">out_interface_libs</a>, <a href="#ninja-out_lib_dir">out_lib_dir</a>, <a href="#ninja-out_shared_libs">out_shared_libs</a>, <a href="#ninja-out_static_libs">out_static_libs</a>,
|
||||
<a href="#ninja-postfix_script">postfix_script</a>, <a href="#ninja-targets">targets</a>, <a href="#ninja-tool_prefix">tool_prefix</a>, <a href="#ninja-tools_deps">tools_deps</a>)
|
||||
<a href="#ninja-directory">directory</a>, <a href="#ninja-env">env</a>, <a href="#ninja-lib_name">lib_name</a>, <a href="#ninja-lib_source">lib_source</a>, <a href="#ninja-linkopts">linkopts</a>, <a href="#ninja-out_bin_dir">out_bin_dir</a>, <a href="#ninja-out_binaries">out_binaries</a>, <a href="#ninja-out_data_dirs">out_data_dirs</a>,
|
||||
<a href="#ninja-out_headers_only">out_headers_only</a>, <a href="#ninja-out_include_dir">out_include_dir</a>, <a href="#ninja-out_interface_libs">out_interface_libs</a>, <a href="#ninja-out_lib_dir">out_lib_dir</a>, <a href="#ninja-out_shared_libs">out_shared_libs</a>,
|
||||
<a href="#ninja-out_static_libs">out_static_libs</a>, <a href="#ninja-postfix_script">postfix_script</a>, <a href="#ninja-targets">targets</a>, <a href="#ninja-tool_prefix">tool_prefix</a>, <a href="#ninja-tools_deps">tools_deps</a>)
|
||||
</pre>
|
||||
|
||||
Rule for building external libraries with [Ninja](https://ninja-build.org/).
|
||||
|
@ -309,6 +313,7 @@ Rule for building external libraries with [Ninja](https://ninja-build.org/).
|
|||
| <a id="ninja-linkopts"></a>linkopts | Optional link options to be passed up to the dependencies of this library | List of strings | optional | [] |
|
||||
| <a id="ninja-out_bin_dir"></a>out_bin_dir | Optional name of the output subdirectory with the binary files, defaults to 'bin'. | String | optional | "bin" |
|
||||
| <a id="ninja-out_binaries"></a>out_binaries | Optional names of the resulting binaries. | List of strings | optional | [] |
|
||||
| <a id="ninja-out_data_dirs"></a>out_data_dirs | Optional names of additional directories created by the build that should be declared as bazel action outputs | List of strings | optional | [] |
|
||||
| <a id="ninja-out_headers_only"></a>out_headers_only | Flag variable to indicate that the library produces only headers | Boolean | optional | False |
|
||||
| <a id="ninja-out_include_dir"></a>out_include_dir | Optional name of the output subdirectory with the header files, defaults to 'include'. | String | optional | "include" |
|
||||
| <a id="ninja-out_interface_libs"></a>out_interface_libs | Optional names of the resulting interface libraries. | List of strings | optional | [] |
|
||||
|
|
|
@ -8,7 +8,7 @@ A rule for building projects using the [GNU Make](https://www.gnu.org/software/m
|
|||
|
||||
<pre>
|
||||
make(<a href="#make-name">name</a>, <a href="#make-additional_inputs">additional_inputs</a>, <a href="#make-additional_tools">additional_tools</a>, <a href="#make-alwayslink">alwayslink</a>, <a href="#make-args">args</a>, <a href="#make-build_data">build_data</a>, <a href="#make-data">data</a>, <a href="#make-defines">defines</a>, <a href="#make-deps">deps</a>,
|
||||
<a href="#make-env">env</a>, <a href="#make-lib_name">lib_name</a>, <a href="#make-lib_source">lib_source</a>, <a href="#make-linkopts">linkopts</a>, <a href="#make-out_bin_dir">out_bin_dir</a>, <a href="#make-out_binaries">out_binaries</a>, <a href="#make-out_headers_only">out_headers_only</a>,
|
||||
<a href="#make-env">env</a>, <a href="#make-lib_name">lib_name</a>, <a href="#make-lib_source">lib_source</a>, <a href="#make-linkopts">linkopts</a>, <a href="#make-out_bin_dir">out_bin_dir</a>, <a href="#make-out_binaries">out_binaries</a>, <a href="#make-out_data_dirs">out_data_dirs</a>, <a href="#make-out_headers_only">out_headers_only</a>,
|
||||
<a href="#make-out_include_dir">out_include_dir</a>, <a href="#make-out_interface_libs">out_interface_libs</a>, <a href="#make-out_lib_dir">out_lib_dir</a>, <a href="#make-out_shared_libs">out_shared_libs</a>, <a href="#make-out_static_libs">out_static_libs</a>,
|
||||
<a href="#make-postfix_script">postfix_script</a>, <a href="#make-targets">targets</a>, <a href="#make-tool_prefix">tool_prefix</a>, <a href="#make-tools_deps">tools_deps</a>)
|
||||
</pre>
|
||||
|
@ -35,6 +35,7 @@ Rule for building external libraries with GNU Make. GNU Make commands (make and
|
|||
| <a id="make-linkopts"></a>linkopts | Optional link options to be passed up to the dependencies of this library | List of strings | optional | [] |
|
||||
| <a id="make-out_bin_dir"></a>out_bin_dir | Optional name of the output subdirectory with the binary files, defaults to 'bin'. | String | optional | "bin" |
|
||||
| <a id="make-out_binaries"></a>out_binaries | Optional names of the resulting binaries. | List of strings | optional | [] |
|
||||
| <a id="make-out_data_dirs"></a>out_data_dirs | Optional names of additional directories created by the build that should be declared as bazel action outputs | List of strings | optional | [] |
|
||||
| <a id="make-out_headers_only"></a>out_headers_only | Flag variable to indicate that the library produces only headers | Boolean | optional | False |
|
||||
| <a id="make-out_include_dir"></a>out_include_dir | Optional name of the output subdirectory with the header files, defaults to 'include'. | String | optional | "include" |
|
||||
| <a id="make-out_interface_libs"></a>out_interface_libs | Optional names of the resulting interface libraries. | List of strings | optional | [] |
|
||||
|
|
|
@ -8,9 +8,9 @@ A rule for building projects using the [Ninja](https://ninja-build.org/) build t
|
|||
|
||||
<pre>
|
||||
ninja(<a href="#ninja-name">name</a>, <a href="#ninja-additional_inputs">additional_inputs</a>, <a href="#ninja-additional_tools">additional_tools</a>, <a href="#ninja-alwayslink">alwayslink</a>, <a href="#ninja-args">args</a>, <a href="#ninja-build_data">build_data</a>, <a href="#ninja-data">data</a>, <a href="#ninja-defines">defines</a>, <a href="#ninja-deps">deps</a>,
|
||||
<a href="#ninja-directory">directory</a>, <a href="#ninja-env">env</a>, <a href="#ninja-lib_name">lib_name</a>, <a href="#ninja-lib_source">lib_source</a>, <a href="#ninja-linkopts">linkopts</a>, <a href="#ninja-out_bin_dir">out_bin_dir</a>, <a href="#ninja-out_binaries">out_binaries</a>, <a href="#ninja-out_headers_only">out_headers_only</a>,
|
||||
<a href="#ninja-out_include_dir">out_include_dir</a>, <a href="#ninja-out_interface_libs">out_interface_libs</a>, <a href="#ninja-out_lib_dir">out_lib_dir</a>, <a href="#ninja-out_shared_libs">out_shared_libs</a>, <a href="#ninja-out_static_libs">out_static_libs</a>,
|
||||
<a href="#ninja-postfix_script">postfix_script</a>, <a href="#ninja-targets">targets</a>, <a href="#ninja-tool_prefix">tool_prefix</a>, <a href="#ninja-tools_deps">tools_deps</a>)
|
||||
<a href="#ninja-directory">directory</a>, <a href="#ninja-env">env</a>, <a href="#ninja-lib_name">lib_name</a>, <a href="#ninja-lib_source">lib_source</a>, <a href="#ninja-linkopts">linkopts</a>, <a href="#ninja-out_bin_dir">out_bin_dir</a>, <a href="#ninja-out_binaries">out_binaries</a>, <a href="#ninja-out_data_dirs">out_data_dirs</a>,
|
||||
<a href="#ninja-out_headers_only">out_headers_only</a>, <a href="#ninja-out_include_dir">out_include_dir</a>, <a href="#ninja-out_interface_libs">out_interface_libs</a>, <a href="#ninja-out_lib_dir">out_lib_dir</a>, <a href="#ninja-out_shared_libs">out_shared_libs</a>,
|
||||
<a href="#ninja-out_static_libs">out_static_libs</a>, <a href="#ninja-postfix_script">postfix_script</a>, <a href="#ninja-targets">targets</a>, <a href="#ninja-tool_prefix">tool_prefix</a>, <a href="#ninja-tools_deps">tools_deps</a>)
|
||||
</pre>
|
||||
|
||||
Rule for building external libraries with [Ninja](https://ninja-build.org/).
|
||||
|
@ -36,6 +36,7 @@ Rule for building external libraries with [Ninja](https://ninja-build.org/).
|
|||
| <a id="ninja-linkopts"></a>linkopts | Optional link options to be passed up to the dependencies of this library | List of strings | optional | [] |
|
||||
| <a id="ninja-out_bin_dir"></a>out_bin_dir | Optional name of the output subdirectory with the binary files, defaults to 'bin'. | String | optional | "bin" |
|
||||
| <a id="ninja-out_binaries"></a>out_binaries | Optional names of the resulting binaries. | List of strings | optional | [] |
|
||||
| <a id="ninja-out_data_dirs"></a>out_data_dirs | Optional names of additional directories created by the build that should be declared as bazel action outputs | List of strings | optional | [] |
|
||||
| <a id="ninja-out_headers_only"></a>out_headers_only | Flag variable to indicate that the library produces only headers | Boolean | optional | False |
|
||||
| <a id="ninja-out_include_dir"></a>out_include_dir | Optional name of the output subdirectory with the header files, defaults to 'include'. | String | optional | "include" |
|
||||
| <a id="ninja-out_interface_libs"></a>out_interface_libs | Optional names of the resulting interface libraries. | List of strings | optional | [] |
|
||||
|
|
|
@ -17,6 +17,7 @@ test_suite(
|
|||
"//libssh2:libssh2_build_test",
|
||||
"//openssl:openssl_build_test",
|
||||
"//pcre:pcre_build_test",
|
||||
"//python:python_tests",
|
||||
"//sqlite:sqlite_build_test",
|
||||
"//subversion:subversion_build_test",
|
||||
],
|
||||
|
@ -41,6 +42,7 @@ test_suite(
|
|||
"//libssh2:libssh2_build_test",
|
||||
"//openssl:openssl_build_test",
|
||||
"//pcre:pcre_build_test",
|
||||
"//python:python_tests",
|
||||
# Missing a new enough automake to build
|
||||
#"//sqlite:sqlite_build_test",
|
||||
#"//subversion:subversion_build_test",
|
||||
|
@ -64,6 +66,7 @@ test_suite(
|
|||
"//libssh2:libssh2_build_test",
|
||||
"//openssl:openssl_build_test",
|
||||
"//pcre:pcre_build_test",
|
||||
"//python:python_tests",
|
||||
"//sqlite:sqlite_build_test",
|
||||
"//subversion:subversion_build_test",
|
||||
],
|
||||
|
|
|
@ -0,0 +1,57 @@
|
|||
load("@rules_python//python:defs.bzl", "py_runtime", "py_runtime_pair", "py_test")
|
||||
|
||||
exports_files(
|
||||
[
|
||||
"BUILD.python2.bazel",
|
||||
"BUILD.python3.bazel",
|
||||
],
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
||||
|
||||
py_runtime(
|
||||
name = "py2_runtime",
|
||||
files = ["@python2"],
|
||||
interpreter = "@python2//:python2_bin",
|
||||
python_version = "PY2",
|
||||
)
|
||||
|
||||
py_runtime(
|
||||
name = "py3_runtime",
|
||||
files = ["@python3"],
|
||||
interpreter = "@python3//:python3_bin",
|
||||
python_version = "PY3",
|
||||
)
|
||||
|
||||
py_runtime_pair(
|
||||
name = "py_runtime_pair",
|
||||
py2_runtime = ":py2_runtime",
|
||||
py3_runtime = ":py3_runtime",
|
||||
)
|
||||
|
||||
toolchain(
|
||||
name = "python_toolchain",
|
||||
toolchain = ":py_runtime_pair",
|
||||
toolchain_type = "@rules_python//python:toolchain_type",
|
||||
)
|
||||
|
||||
py_test(
|
||||
name = "python2_test",
|
||||
srcs = ["python2_test.py"],
|
||||
python_version = "PY2",
|
||||
visibility = ["//:__pkg__"],
|
||||
)
|
||||
|
||||
py_test(
|
||||
name = "python3_test",
|
||||
srcs = ["python3_test.py"],
|
||||
python_version = "PY3",
|
||||
visibility = ["//:__pkg__"],
|
||||
)
|
||||
|
||||
test_suite(
|
||||
name = "python_tests",
|
||||
tests = [
|
||||
":python2_test",
|
||||
":python3_test",
|
||||
],
|
||||
)
|
|
@ -0,0 +1,47 @@
|
|||
load("@rules_foreign_cc//foreign_cc:defs.bzl", "configure_make")
|
||||
|
||||
package(default_visibility = ["//visibility:public"])
|
||||
|
||||
filegroup(
|
||||
name = "all_srcs",
|
||||
srcs = glob(["**"]),
|
||||
)
|
||||
|
||||
configure_make(
|
||||
name = "python2",
|
||||
build_data = select({
|
||||
"@platforms//os:macos": ["@subversion"],
|
||||
"//conditions:default": [],
|
||||
}),
|
||||
configure_options = [
|
||||
"CFLAGS='-Dredacted=\"redacted\"'",
|
||||
"--with-openssl=$EXT_BUILD_DEPS/openssl",
|
||||
"--with-zlib=$EXT_BUILD_DEPS/zlib",
|
||||
"--enable-optimizations",
|
||||
],
|
||||
env = select({
|
||||
"@platforms//os:macos": {"AR": ""},
|
||||
"//conditions:default": {},
|
||||
}),
|
||||
features = select({
|
||||
"@platforms//os:macos": ["-headerpad"],
|
||||
"//conditions:default": {},
|
||||
}),
|
||||
# rules_foreign_cc defaults the install_prefix to "python". This conflicts with the "python" executable that is generated.
|
||||
install_prefix = "py_install",
|
||||
lib_source = ":all_srcs",
|
||||
out_binaries = [
|
||||
"python2.7",
|
||||
],
|
||||
out_data_dirs = ["lib"],
|
||||
deps = [
|
||||
"@openssl",
|
||||
"@zlib",
|
||||
],
|
||||
)
|
||||
|
||||
filegroup(
|
||||
name = "python2_bin",
|
||||
srcs = [":python2"],
|
||||
output_group = "python2.7",
|
||||
)
|
|
@ -0,0 +1,43 @@
|
|||
load("@rules_foreign_cc//foreign_cc:defs.bzl", "configure_make")
|
||||
|
||||
package(default_visibility = ["//visibility:public"])
|
||||
|
||||
filegroup(
|
||||
name = "all_srcs",
|
||||
srcs = glob(["**"]),
|
||||
)
|
||||
|
||||
configure_make(
|
||||
name = "python3",
|
||||
configure_options = [
|
||||
"CFLAGS='-Dredacted=\"redacted\"'",
|
||||
"--with-openssl=$EXT_BUILD_DEPS/openssl",
|
||||
"--with-zlib=$EXT_BUILD_DEPS/zlib",
|
||||
"--enable-optimizations",
|
||||
],
|
||||
env = select({
|
||||
"@platforms//os:macos": {"AR": ""},
|
||||
"//conditions:default": {},
|
||||
}),
|
||||
features = select({
|
||||
"@platforms//os:macos": ["-headerpad"],
|
||||
"//conditions:default": {},
|
||||
}),
|
||||
# rules_foreign_cc defaults the install_prefix to "python". This conflicts with the "python" executable that is generated.
|
||||
install_prefix = "py_install",
|
||||
lib_source = ":all_srcs",
|
||||
out_binaries = [
|
||||
"python3.9",
|
||||
],
|
||||
out_data_dirs = ["lib"],
|
||||
deps = [
|
||||
"@openssl",
|
||||
"@zlib",
|
||||
],
|
||||
)
|
||||
|
||||
filegroup(
|
||||
name = "python3_bin",
|
||||
srcs = [":python3"],
|
||||
output_group = "python3.9",
|
||||
)
|
|
@ -0,0 +1,8 @@
|
|||
|
||||
import sys
|
||||
import platform
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
assert('python2_test.runfiles/python2/python2/bin/' in sys.executable)
|
||||
assert(platform.python_version() == "2.7.9")
|
|
@ -0,0 +1,8 @@
|
|||
|
||||
import sys
|
||||
import platform
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
assert('python3_test.runfiles/python3/python3/bin/' in sys.executable)
|
||||
assert(platform.python_version() == "3.9.3")
|
|
@ -0,0 +1,39 @@
|
|||
"""A module defining the third party dependency Python"""
|
||||
|
||||
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
|
||||
load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
|
||||
|
||||
# buildifier: disable=unnamed-macro
|
||||
def python_repositories():
|
||||
maybe(
|
||||
http_archive,
|
||||
name = "python2",
|
||||
build_file = Label("//python:BUILD.python2.bazel"),
|
||||
strip_prefix = "Python-2.7.9",
|
||||
urls = [
|
||||
"https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz",
|
||||
],
|
||||
sha256 = "c8bba33e66ac3201dabdc556f0ea7cfe6ac11946ec32d357c4c6f9b018c12c5b",
|
||||
)
|
||||
maybe(
|
||||
http_archive,
|
||||
name = "python3",
|
||||
build_file = Label("//python:BUILD.python3.bazel"),
|
||||
strip_prefix = "Python-3.9.3",
|
||||
urls = [
|
||||
"https://www.python.org/ftp/python/3.9.3/Python-3.9.3.tgz",
|
||||
],
|
||||
sha256 = "3afeb61a45b5a2e6f1c0f621bd8cf925a4ff406099fdb3d8c97b993a5f43d048",
|
||||
)
|
||||
|
||||
maybe(
|
||||
http_archive,
|
||||
name = "rules_python",
|
||||
sha256 = "778197e26c5fbeb07ac2a2c5ae405b30f6cb7ad1f5510ea6fdac03bded96cc6f",
|
||||
urls = [
|
||||
"https://mirror.bazel.build/github.com/bazelbuild/rules_python/releases/download/0.2.0/rules_python-0.2.0.tar.gz",
|
||||
"https://github.com/bazelbuild/rules_python/releases/download/0.2.0/rules_python-0.2.0.tar.gz",
|
||||
],
|
||||
)
|
||||
|
||||
native.register_toolchains("@rules_foreign_cc_examples_third_party//python:python_toolchain")
|
|
@ -16,6 +16,7 @@ load("//libpng:libpng_repositories.bzl", "libpng_repositories")
|
|||
load("//libssh2:libssh2_repositories.bzl", "libssh2_repositories")
|
||||
load("//openssl:openssl_repositories.bzl", "openssl_repositories")
|
||||
load("//pcre:pcre_repositories.bzl", "pcre_repositories")
|
||||
load("//python:python_repositories.bzl", "python_repositories")
|
||||
load("//sqlite:sqlite_repositories.bzl", "sqlite_repositories")
|
||||
load("//subversion:subversion_repositories.bzl", "subversion_repositories")
|
||||
load("//zlib:zlib_repositories.bzl", "zlib_repositories")
|
||||
|
@ -37,6 +38,7 @@ def repositories():
|
|||
libssh2_repositories()
|
||||
openssl_repositories()
|
||||
pcre_repositories()
|
||||
python_repositories()
|
||||
sqlite_repositories()
|
||||
subversion_repositories()
|
||||
zlib_repositories()
|
||||
|
|
|
@ -132,6 +132,10 @@ CC_EXTERNAL_RULE_ATTRIBUTES = {
|
|||
doc = "Optional names of the resulting binaries.",
|
||||
mandatory = False,
|
||||
),
|
||||
"out_data_dirs": attr.string_list(
|
||||
doc = "Optional names of additional directories created by the build that should be declared as bazel action outputs",
|
||||
mandatory = False,
|
||||
),
|
||||
"out_headers_only": attr.bool(
|
||||
doc = "Flag variable to indicate that the library produces only headers",
|
||||
mandatory = False,
|
||||
|
@ -674,6 +678,7 @@ def _define_outputs(ctx, attrs, lib_name):
|
|||
attr_binaries_libs = attrs.out_binaries
|
||||
attr_headers_only = attrs.out_headers_only
|
||||
attr_interface_libs = attrs.out_interface_libs
|
||||
attr_out_data_dirs = attrs.out_data_dirs
|
||||
attr_shared_libs = attrs.out_shared_libs
|
||||
attr_static_libs = attrs.out_static_libs
|
||||
|
||||
|
@ -688,6 +693,10 @@ def _define_outputs(ctx, attrs, lib_name):
|
|||
|
||||
out_include_dir = ctx.actions.declare_directory(lib_name + "/" + attrs.out_include_dir)
|
||||
|
||||
out_data_dirs = []
|
||||
for dir in attr_out_data_dirs:
|
||||
out_data_dirs.append(ctx.actions.declare_directory(lib_name + "/" + dir.lstrip("/")))
|
||||
|
||||
out_binary_files = _declare_out(ctx, lib_name, attrs.out_bin_dir, attr_binaries_libs)
|
||||
|
||||
libraries = LibrariesToLinkInfo(
|
||||
|
@ -696,7 +705,7 @@ def _define_outputs(ctx, attrs, lib_name):
|
|||
interface_libraries = _declare_out(ctx, lib_name, attrs.out_lib_dir, attr_interface_libs),
|
||||
)
|
||||
|
||||
declared_outputs = [out_include_dir] + out_binary_files
|
||||
declared_outputs = [out_include_dir] + out_data_dirs + out_binary_files
|
||||
declared_outputs += libraries.static_libraries
|
||||
declared_outputs += libraries.shared_libraries + libraries.interface_libraries
|
||||
|
||||
|
|
Loading…
Reference in New Issue