2
0
Fork 0
mirror of https://github.com/bazel-contrib/rules_foreign_cc synced 2024-11-28 08:43:26 +00:00
This commit is contained in:
jsharpe 2021-12-04 21:31:36 +00:00
parent 059b39c3d0
commit b8431bafb7
9 changed files with 76 additions and 58 deletions

View file

@ -258,10 +258,10 @@ cmake(
<h2 id="cmake"><a class="header" href="#cmake">cmake</a></h2>
<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-copts">copts</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_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>)
<a href="#cmake-copts">copts</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-includes">includes</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_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>
<p>Rule for building external library with CMake.</p>
<p><strong>ATTRIBUTES</strong></p>
@ -280,6 +280,7 @@ cmake(<a href="#cmake-name">name</a>, <a href="#cmake-additional_inputs">additio
<tr><td align="left"><a id="cmake-env"></a>env</td><td align="left">Environment variables to set during the build. <code>$(execpath)</code> macros may be used to point at files which are listed as <code>data</code>, <code>deps</code>, or <code>build_data</code>, but unlike with other rules, these will be replaced with absolute paths to those files, because the build does not run in the exec root. This attribute is subject to make variable substitution. No other macros are supported.Variables containing <code>PATH</code> (e.g. <code>PATH</code>, <code>LD_LIBRARY_PATH</code>, <code>CPATH</code>) entries will be prepended to the existing variable.</td><td align="left"><a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -&gt; String</a></td><td align="left">optional</td><td align="left">{}</td></tr>
<tr><td align="left"><a id="cmake-generate_args"></a>generate_args</td><td align="left">Arguments for CMake's generate command. Arguments should be passed as key/value pairs. eg: <code>[&quot;-G Ninja&quot;, &quot;--debug-output&quot;, &quot;-DFOO=bar&quot;]</code>. Note that unless a generator (<code>-G</code>) argument is provided, the default generators are <a href="https://cmake.org/cmake/help/latest/generator/Unix%20Makefiles.html">Unix Makefiles</a> for Linux and MacOS and <a href="https://cmake.org/cmake/help/latest/generator/Ninja.html">Ninja</a> for Windows.</td><td align="left">List of strings</td><td align="left">optional</td><td align="left">[]</td></tr>
<tr><td align="left"><a id="cmake-generate_crosstool_file"></a>generate_crosstool_file</td><td align="left">When True, CMake crosstool file will be generated from the toolchain values, provided cache-entries and env_vars (some values will still be passed as <code>-Dkey=value</code> and environment variables). If <code>CMAKE_TOOLCHAIN_FILE</code> cache entry is passed, specified crosstool file will be used When using this option to cross-compile, it is required to specify <code>CMAKE_SYSTEM_NAME</code> in the cache_entries</td><td align="left">Boolean</td><td align="left">optional</td><td align="left">True</td></tr>
<tr><td align="left"><a id="cmake-includes"></a>includes</td><td align="left">Optional list of include dirs to be passed to the dependencies of this library. They are NOT passed to the compiler, you should duplicate them in the configuration options.</td><td align="left">List of strings</td><td align="left">optional</td><td align="left">[]</td></tr>
<tr><td align="left"><a id="cmake-install"></a>install</td><td align="left">If True, the <code>cmake --install</code> comand will be performed after a build</td><td align="left">Boolean</td><td align="left">optional</td><td align="left">True</td></tr>
<tr><td align="left"><a id="cmake-install_args"></a>install_args</td><td align="left">Arguments for the CMake install command</td><td align="left">List of strings</td><td align="left">optional</td><td align="left">[]</td></tr>
<tr><td align="left"><a id="cmake-lib_name"></a>lib_name</td><td align="left">Library name. Defines the name of the install directory and the name of the static library, if no output files parameters are defined (any of static_libraries, shared_libraries, interface_libraries, binaries_names) Optional. If not defined, defaults to the target's name.</td><td align="left">String</td><td align="left">optional</td><td align="left">&quot;&quot;</td></tr>

View file

@ -155,10 +155,10 @@ build tool</p>
configure_make(<a href="#configure_make-name">name</a>, <a href="#configure_make-additional_inputs">additional_inputs</a>, <a href="#configure_make-additional_tools">additional_tools</a>, <a href="#configure_make-alwayslink">alwayslink</a>, <a href="#configure_make-args">args</a>, <a href="#configure_make-autoconf">autoconf</a>,
<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-copts">copts</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_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>)
<a href="#configure_make-configure_options">configure_options</a>, <a href="#configure_make-configure_prefix">configure_prefix</a>, <a href="#configure_make-copts">copts</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-includes">includes</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_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>
<p>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.</p>
<p><strong>ATTRIBUTES</strong></p>
@ -185,6 +185,7 @@ configure_make(<a href="#configure_make-name">name</a>, <a href="#configure_make
<tr><td align="left"><a id="configure_make-defines"></a>defines</td><td align="left">Optional compilation definitions to be passed to the dependencies of this library. They are NOT passed to the compiler, you should duplicate them in the configuration options.</td><td align="left">List of strings</td><td align="left">optional</td><td align="left">[]</td></tr>
<tr><td align="left"><a id="configure_make-deps"></a>deps</td><td align="left">Optional dependencies to be copied into the directory structure. Typically those directly required for the external building of the library/binaries. (i.e. those that the external build system will be looking for and paths to which are provided by the calling rule)</td><td align="left"><a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a></td><td align="left">optional</td><td align="left">[]</td></tr>
<tr><td align="left"><a id="configure_make-env"></a>env</td><td align="left">Environment variables to set during the build. <code>$(execpath)</code> macros may be used to point at files which are listed as <code>data</code>, <code>deps</code>, or <code>build_data</code>, but unlike with other rules, these will be replaced with absolute paths to those files, because the build does not run in the exec root. This attribute is subject to make variable substitution. No other macros are supported.Variables containing <code>PATH</code> (e.g. <code>PATH</code>, <code>LD_LIBRARY_PATH</code>, <code>CPATH</code>) entries will be prepended to the existing variable.</td><td align="left"><a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -&gt; String</a></td><td align="left">optional</td><td align="left">{}</td></tr>
<tr><td align="left"><a id="configure_make-includes"></a>includes</td><td align="left">Optional list of include dirs to be passed to the dependencies of this library. They are NOT passed to the compiler, you should duplicate them in the configuration options.</td><td align="left">List of strings</td><td align="left">optional</td><td align="left">[]</td></tr>
<tr><td align="left"><a id="configure_make-install_prefix"></a>install_prefix</td><td align="left">Install prefix, i.e. relative path to where to install the result of the build. Passed to the 'configure' script with --prefix flag.</td><td align="left">String</td><td align="left">optional</td><td align="left">&quot;&quot;</td></tr>
<tr><td align="left"><a id="configure_make-lib_name"></a>lib_name</td><td align="left">Library name. Defines the name of the install directory and the name of the static library, if no output files parameters are defined (any of static_libraries, shared_libraries, interface_libraries, binaries_names) Optional. If not defined, defaults to the target's name.</td><td align="left">String</td><td align="left">optional</td><td align="left">&quot;&quot;</td></tr>
<tr><td align="left"><a id="configure_make-lib_source"></a>lib_source</td><td align="left">Label with source code to build. Typically a filegroup for the source of remote repository. Mandatory.</td><td align="left"><a href="https://bazel.build/docs/build-ref.html#labels">Label</a></td><td align="left">required</td><td align="left"></td></tr>

View file

@ -170,7 +170,7 @@
<h2 id="boost_build"><a class="header" href="#boost_build">boost_build</a></h2>
<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-copts">copts</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-copts">copts</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-includes">includes</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-tool_prefix">tool_prefix</a>, <a href="#boost_build-tools_deps">tools_deps</a>,
<a href="#boost_build-user_options">user_options</a>)
@ -189,6 +189,7 @@ boost_build(<a href="#boost_build-name">name</a>, <a href="#boost_build-addition
<tr><td align="left"><a id="boost_build-defines"></a>defines</td><td align="left">Optional compilation definitions to be passed to the dependencies of this library. They are NOT passed to the compiler, you should duplicate them in the configuration options.</td><td align="left">List of strings</td><td align="left">optional</td><td align="left">[]</td></tr>
<tr><td align="left"><a id="boost_build-deps"></a>deps</td><td align="left">Optional dependencies to be copied into the directory structure. Typically those directly required for the external building of the library/binaries. (i.e. those that the external build system will be looking for and paths to which are provided by the calling rule)</td><td align="left"><a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a></td><td align="left">optional</td><td align="left">[]</td></tr>
<tr><td align="left"><a id="boost_build-env"></a>env</td><td align="left">Environment variables to set during the build. <code>$(execpath)</code> macros may be used to point at files which are listed as <code>data</code>, <code>deps</code>, or <code>build_data</code>, but unlike with other rules, these will be replaced with absolute paths to those files, because the build does not run in the exec root. This attribute is subject to make variable substitution. No other macros are supported.Variables containing <code>PATH</code> (e.g. <code>PATH</code>, <code>LD_LIBRARY_PATH</code>, <code>CPATH</code>) entries will be prepended to the existing variable.</td><td align="left"><a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -&gt; String</a></td><td align="left">optional</td><td align="left">{}</td></tr>
<tr><td align="left"><a id="boost_build-includes"></a>includes</td><td align="left">Optional list of include dirs to be passed to the dependencies of this library. They are NOT passed to the compiler, you should duplicate them in the configuration options.</td><td align="left">List of strings</td><td align="left">optional</td><td align="left">[]</td></tr>
<tr><td align="left"><a id="boost_build-lib_name"></a>lib_name</td><td align="left">Library name. Defines the name of the install directory and the name of the static library, if no output files parameters are defined (any of static_libraries, shared_libraries, interface_libraries, binaries_names) Optional. If not defined, defaults to the target's name.</td><td align="left">String</td><td align="left">optional</td><td align="left">&quot;&quot;</td></tr>
<tr><td align="left"><a id="boost_build-lib_source"></a>lib_source</td><td align="left">Label with source code to build. Typically a filegroup for the source of remote repository. Mandatory.</td><td align="left"><a href="https://bazel.build/docs/build-ref.html#labels">Label</a></td><td align="left">required</td><td align="left"></td></tr>
<tr><td align="left"><a id="boost_build-linkopts"></a>linkopts</td><td align="left">Optional link options to be passed up to the dependencies of this library</td><td align="left">List of strings</td><td align="left">optional</td><td align="left">[]</td></tr>
@ -210,10 +211,10 @@ boost_build(<a href="#boost_build-name">name</a>, <a href="#boost_build-addition
<h2 id="cmake"><a class="header" href="#cmake">cmake</a></h2>
<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-copts">copts</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_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>)
<a href="#cmake-copts">copts</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-includes">includes</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_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>
<p>Rule for building external library with CMake.</p>
<p><strong>ATTRIBUTES</strong></p>
@ -232,6 +233,7 @@ cmake(<a href="#cmake-name">name</a>, <a href="#cmake-additional_inputs">additio
<tr><td align="left"><a id="cmake-env"></a>env</td><td align="left">Environment variables to set during the build. <code>$(execpath)</code> macros may be used to point at files which are listed as <code>data</code>, <code>deps</code>, or <code>build_data</code>, but unlike with other rules, these will be replaced with absolute paths to those files, because the build does not run in the exec root. This attribute is subject to make variable substitution. No other macros are supported.Variables containing <code>PATH</code> (e.g. <code>PATH</code>, <code>LD_LIBRARY_PATH</code>, <code>CPATH</code>) entries will be prepended to the existing variable.</td><td align="left"><a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -&gt; String</a></td><td align="left">optional</td><td align="left">{}</td></tr>
<tr><td align="left"><a id="cmake-generate_args"></a>generate_args</td><td align="left">Arguments for CMake's generate command. Arguments should be passed as key/value pairs. eg: <code>[&quot;-G Ninja&quot;, &quot;--debug-output&quot;, &quot;-DFOO=bar&quot;]</code>. Note that unless a generator (<code>-G</code>) argument is provided, the default generators are <a href="https://cmake.org/cmake/help/latest/generator/Unix%20Makefiles.html">Unix Makefiles</a> for Linux and MacOS and <a href="https://cmake.org/cmake/help/latest/generator/Ninja.html">Ninja</a> for Windows.</td><td align="left">List of strings</td><td align="left">optional</td><td align="left">[]</td></tr>
<tr><td align="left"><a id="cmake-generate_crosstool_file"></a>generate_crosstool_file</td><td align="left">When True, CMake crosstool file will be generated from the toolchain values, provided cache-entries and env_vars (some values will still be passed as <code>-Dkey=value</code> and environment variables). If <code>CMAKE_TOOLCHAIN_FILE</code> cache entry is passed, specified crosstool file will be used When using this option to cross-compile, it is required to specify <code>CMAKE_SYSTEM_NAME</code> in the cache_entries</td><td align="left">Boolean</td><td align="left">optional</td><td align="left">True</td></tr>
<tr><td align="left"><a id="cmake-includes"></a>includes</td><td align="left">Optional list of include dirs to be passed to the dependencies of this library. They are NOT passed to the compiler, you should duplicate them in the configuration options.</td><td align="left">List of strings</td><td align="left">optional</td><td align="left">[]</td></tr>
<tr><td align="left"><a id="cmake-install"></a>install</td><td align="left">If True, the <code>cmake --install</code> comand will be performed after a build</td><td align="left">Boolean</td><td align="left">optional</td><td align="left">True</td></tr>
<tr><td align="left"><a id="cmake-install_args"></a>install_args</td><td align="left">Arguments for the CMake install command</td><td align="left">List of strings</td><td align="left">optional</td><td align="left">[]</td></tr>
<tr><td align="left"><a id="cmake-lib_name"></a>lib_name</td><td align="left">Library name. Defines the name of the install directory and the name of the static library, if no output files parameters are defined (any of static_libraries, shared_libraries, interface_libraries, binaries_names) Optional. If not defined, defaults to the target's name.</td><td align="left">String</td><td align="left">optional</td><td align="left">&quot;&quot;</td></tr>
@ -258,10 +260,10 @@ cmake(<a href="#cmake-name">name</a>, <a href="#cmake-additional_inputs">additio
configure_make(<a href="#configure_make-name">name</a>, <a href="#configure_make-additional_inputs">additional_inputs</a>, <a href="#configure_make-additional_tools">additional_tools</a>, <a href="#configure_make-alwayslink">alwayslink</a>, <a href="#configure_make-args">args</a>, <a href="#configure_make-autoconf">autoconf</a>,
<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-copts">copts</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_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>)
<a href="#configure_make-configure_options">configure_options</a>, <a href="#configure_make-configure_prefix">configure_prefix</a>, <a href="#configure_make-copts">copts</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-includes">includes</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_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>
<p>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.</p>
<p><strong>ATTRIBUTES</strong></p>
@ -288,6 +290,7 @@ configure_make(<a href="#configure_make-name">name</a>, <a href="#configure_make
<tr><td align="left"><a id="configure_make-defines"></a>defines</td><td align="left">Optional compilation definitions to be passed to the dependencies of this library. They are NOT passed to the compiler, you should duplicate them in the configuration options.</td><td align="left">List of strings</td><td align="left">optional</td><td align="left">[]</td></tr>
<tr><td align="left"><a id="configure_make-deps"></a>deps</td><td align="left">Optional dependencies to be copied into the directory structure. Typically those directly required for the external building of the library/binaries. (i.e. those that the external build system will be looking for and paths to which are provided by the calling rule)</td><td align="left"><a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a></td><td align="left">optional</td><td align="left">[]</td></tr>
<tr><td align="left"><a id="configure_make-env"></a>env</td><td align="left">Environment variables to set during the build. <code>$(execpath)</code> macros may be used to point at files which are listed as <code>data</code>, <code>deps</code>, or <code>build_data</code>, but unlike with other rules, these will be replaced with absolute paths to those files, because the build does not run in the exec root. This attribute is subject to make variable substitution. No other macros are supported.Variables containing <code>PATH</code> (e.g. <code>PATH</code>, <code>LD_LIBRARY_PATH</code>, <code>CPATH</code>) entries will be prepended to the existing variable.</td><td align="left"><a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -&gt; String</a></td><td align="left">optional</td><td align="left">{}</td></tr>
<tr><td align="left"><a id="configure_make-includes"></a>includes</td><td align="left">Optional list of include dirs to be passed to the dependencies of this library. They are NOT passed to the compiler, you should duplicate them in the configuration options.</td><td align="left">List of strings</td><td align="left">optional</td><td align="left">[]</td></tr>
<tr><td align="left"><a id="configure_make-install_prefix"></a>install_prefix</td><td align="left">Install prefix, i.e. relative path to where to install the result of the build. Passed to the 'configure' script with --prefix flag.</td><td align="left">String</td><td align="left">optional</td><td align="left">&quot;&quot;</td></tr>
<tr><td align="left"><a id="configure_make-lib_name"></a>lib_name</td><td align="left">Library name. Defines the name of the install directory and the name of the static library, if no output files parameters are defined (any of static_libraries, shared_libraries, interface_libraries, binaries_names) Optional. If not defined, defaults to the target's name.</td><td align="left">String</td><td align="left">optional</td><td align="left">&quot;&quot;</td></tr>
<tr><td align="left"><a id="configure_make-lib_source"></a>lib_source</td><td align="left">Label with source code to build. Typically a filegroup for the source of remote repository. Mandatory.</td><td align="left"><a href="https://bazel.build/docs/build-ref.html#labels">Label</a></td><td align="left">required</td><td align="left"></td></tr>
@ -310,7 +313,7 @@ configure_make(<a href="#configure_make-name">name</a>, <a href="#configure_make
<h2 id="make"><a class="header" href="#make">make</a></h2>
<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-copts">copts</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-install_prefix">install_prefix</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-deps">deps</a>, <a href="#make-env">env</a>, <a href="#make-includes">includes</a>, <a href="#make-install_prefix">install_prefix</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>
@ -328,6 +331,7 @@ make(<a href="#make-name">name</a>, <a href="#make-additional_inputs">additional
<tr><td align="left"><a id="make-defines"></a>defines</td><td align="left">Optional compilation definitions to be passed to the dependencies of this library. They are NOT passed to the compiler, you should duplicate them in the configuration options.</td><td align="left">List of strings</td><td align="left">optional</td><td align="left">[]</td></tr>
<tr><td align="left"><a id="make-deps"></a>deps</td><td align="left">Optional dependencies to be copied into the directory structure. Typically those directly required for the external building of the library/binaries. (i.e. those that the external build system will be looking for and paths to which are provided by the calling rule)</td><td align="left"><a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a></td><td align="left">optional</td><td align="left">[]</td></tr>
<tr><td align="left"><a id="make-env"></a>env</td><td align="left">Environment variables to set during the build. <code>$(execpath)</code> macros may be used to point at files which are listed as <code>data</code>, <code>deps</code>, or <code>build_data</code>, but unlike with other rules, these will be replaced with absolute paths to those files, because the build does not run in the exec root. This attribute is subject to make variable substitution. No other macros are supported.Variables containing <code>PATH</code> (e.g. <code>PATH</code>, <code>LD_LIBRARY_PATH</code>, <code>CPATH</code>) entries will be prepended to the existing variable.</td><td align="left"><a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -&gt; String</a></td><td align="left">optional</td><td align="left">{}</td></tr>
<tr><td align="left"><a id="make-includes"></a>includes</td><td align="left">Optional list of include dirs to be passed to the dependencies of this library. They are NOT passed to the compiler, you should duplicate them in the configuration options.</td><td align="left">List of strings</td><td align="left">optional</td><td align="left">[]</td></tr>
<tr><td align="left"><a id="make-install_prefix"></a>install_prefix</td><td align="left">Install prefix, i.e. relative path to where to install the result of the build. Passed as an arg to &quot;make&quot; as PREFIX=&lt;install_prefix&gt;.</td><td align="left">String</td><td align="left">optional</td><td align="left">&quot;$$INSTALLDIR$$&quot;</td></tr>
<tr><td align="left"><a id="make-lib_name"></a>lib_name</td><td align="left">Library name. Defines the name of the install directory and the name of the static library, if no output files parameters are defined (any of static_libraries, shared_libraries, interface_libraries, binaries_names) Optional. If not defined, defaults to the target's name.</td><td align="left">String</td><td align="left">optional</td><td align="left">&quot;&quot;</td></tr>
<tr><td align="left"><a id="make-lib_source"></a>lib_source</td><td align="left">Label with source code to build. Typically a filegroup for the source of remote repository. Mandatory.</td><td align="left"><a href="https://bazel.build/docs/build-ref.html#labels">Label</a></td><td align="left">required</td><td align="left"></td></tr>
@ -374,9 +378,9 @@ native_tool_toolchain(<a href="#native_tool_toolchain-name">name</a>, <a href="#
<h2 id="ninja"><a class="header" href="#ninja">ninja</a></h2>
<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-copts">copts</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_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>)
<a href="#ninja-deps">deps</a>, <a href="#ninja-directory">directory</a>, <a href="#ninja-env">env</a>, <a href="#ninja-includes">includes</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>
<p>Rule for building external libraries with <a href="https://ninja-build.org/">Ninja</a>.</p>
<p><strong>ATTRIBUTES</strong></p>
@ -393,6 +397,7 @@ ninja(<a href="#ninja-name">name</a>, <a href="#ninja-additional_inputs">additio
<tr><td align="left"><a id="ninja-deps"></a>deps</td><td align="left">Optional dependencies to be copied into the directory structure. Typically those directly required for the external building of the library/binaries. (i.e. those that the external build system will be looking for and paths to which are provided by the calling rule)</td><td align="left"><a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a></td><td align="left">optional</td><td align="left">[]</td></tr>
<tr><td align="left"><a id="ninja-directory"></a>directory</td><td align="left">A directory to pass as the <code>-C</code> argument. The rule will always use the root directory of the <code>lib_sources</code> attribute if this attribute is not set</td><td align="left">String</td><td align="left">optional</td><td align="left">&quot;&quot;</td></tr>
<tr><td align="left"><a id="ninja-env"></a>env</td><td align="left">Environment variables to set during the build. <code>$(execpath)</code> macros may be used to point at files which are listed as <code>data</code>, <code>deps</code>, or <code>build_data</code>, but unlike with other rules, these will be replaced with absolute paths to those files, because the build does not run in the exec root. This attribute is subject to make variable substitution. No other macros are supported.Variables containing <code>PATH</code> (e.g. <code>PATH</code>, <code>LD_LIBRARY_PATH</code>, <code>CPATH</code>) entries will be prepended to the existing variable.</td><td align="left"><a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -&gt; String</a></td><td align="left">optional</td><td align="left">{}</td></tr>
<tr><td align="left"><a id="ninja-includes"></a>includes</td><td align="left">Optional list of include dirs to be passed to the dependencies of this library. They are NOT passed to the compiler, you should duplicate them in the configuration options.</td><td align="left">List of strings</td><td align="left">optional</td><td align="left">[]</td></tr>
<tr><td align="left"><a id="ninja-lib_name"></a>lib_name</td><td align="left">Library name. Defines the name of the install directory and the name of the static library, if no output files parameters are defined (any of static_libraries, shared_libraries, interface_libraries, binaries_names) Optional. If not defined, defaults to the target's name.</td><td align="left">String</td><td align="left">optional</td><td align="left">&quot;&quot;</td></tr>
<tr><td align="left"><a id="ninja-lib_source"></a>lib_source</td><td align="left">Label with source code to build. Typically a filegroup for the source of remote repository. Mandatory.</td><td align="left"><a href="https://bazel.build/docs/build-ref.html#labels">Label</a></td><td align="left">required</td><td align="left"></td></tr>
<tr><td align="left"><a id="ninja-linkopts"></a>linkopts</td><td align="left">Optional link options to be passed up to the dependencies of this library</td><td align="left">List of strings</td><td align="left">optional</td><td align="left">[]</td></tr>

View file

@ -149,7 +149,7 @@
<h1 id="rules-foreigncc"><a class="header" href="#rules-foreigncc">Rules ForeignCc</a></h1>
<p>Rules for building C/C++ projects using foreign build systems (non Bazel) inside Bazel projects.</p>
<table><thead><tr><th>Release</th><th>Commit</th><th>Status</th></tr></thead><tbody>
<tr><td>main</td><td><a href="https://github.com/bazelbuild/rules_foreign_cc/commit/bdb0d9cbb72f398053458945b2abd8b74c9d6d2a">bdb0d9c</a></td><td><a href="https://buildkite.com/bazel/rules-foreign-cc/builds?branch=main"><img src="https://badge.buildkite.com/c28afbf846e2077715c753dda1f4b820cdcc46cc6cde16503c.svg?branch=main" alt="Build status" /></a></td></tr>
<tr><td>main</td><td><a href="https://github.com/bazelbuild/rules_foreign_cc/commit/ebfeaa08f8624c23a929c02cca60eb1585ae12e9">ebfeaa0</a></td><td><a href="https://buildkite.com/bazel/rules-foreign-cc/builds?branch=main"><img src="https://badge.buildkite.com/c28afbf846e2077715c753dda1f4b820cdcc46cc6cde16503c.svg?branch=main" alt="Build status" /></a></td></tr>
</tbody></table>
<h2 id="overview"><a class="header" href="#overview">Overview</a></h2>
<p>Rules ForeignCc is designed to help users build projects that are not built by Bazel and also
@ -167,8 +167,8 @@ http_archive(
# release on the releases page: https://github.com/bazelbuild/rules_foreign_cc/releases
#
# sha256 = &quot;...&quot;,
strip_prefix = &quot;rules_foreign_cc-bdb0d9cbb72f398053458945b2abd8b74c9d6d2a&quot;,
url = &quot;https://github.com/bazelbuild/rules_foreign_cc/archive/bdb0d9cbb72f398053458945b2abd8b74c9d6d2a.tar.gz&quot;,
strip_prefix = &quot;rules_foreign_cc-ebfeaa08f8624c23a929c02cca60eb1585ae12e9&quot;,
url = &quot;https://github.com/bazelbuild/rules_foreign_cc/archive/ebfeaa08f8624c23a929c02cca60eb1585ae12e9.tar.gz&quot;,
)
load(&quot;@rules_foreign_cc//foreign_cc:repositories.bzl&quot;, &quot;rules_foreign_cc_dependencies&quot;)

View file

@ -152,7 +152,7 @@
<h2 id="make"><a class="header" href="#make">make</a></h2>
<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-copts">copts</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-install_prefix">install_prefix</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-deps">deps</a>, <a href="#make-env">env</a>, <a href="#make-includes">includes</a>, <a href="#make-install_prefix">install_prefix</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>
@ -170,6 +170,7 @@ make(<a href="#make-name">name</a>, <a href="#make-additional_inputs">additional
<tr><td align="left"><a id="make-defines"></a>defines</td><td align="left">Optional compilation definitions to be passed to the dependencies of this library. They are NOT passed to the compiler, you should duplicate them in the configuration options.</td><td align="left">List of strings</td><td align="left">optional</td><td align="left">[]</td></tr>
<tr><td align="left"><a id="make-deps"></a>deps</td><td align="left">Optional dependencies to be copied into the directory structure. Typically those directly required for the external building of the library/binaries. (i.e. those that the external build system will be looking for and paths to which are provided by the calling rule)</td><td align="left"><a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a></td><td align="left">optional</td><td align="left">[]</td></tr>
<tr><td align="left"><a id="make-env"></a>env</td><td align="left">Environment variables to set during the build. <code>$(execpath)</code> macros may be used to point at files which are listed as <code>data</code>, <code>deps</code>, or <code>build_data</code>, but unlike with other rules, these will be replaced with absolute paths to those files, because the build does not run in the exec root. This attribute is subject to make variable substitution. No other macros are supported.Variables containing <code>PATH</code> (e.g. <code>PATH</code>, <code>LD_LIBRARY_PATH</code>, <code>CPATH</code>) entries will be prepended to the existing variable.</td><td align="left"><a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -&gt; String</a></td><td align="left">optional</td><td align="left">{}</td></tr>
<tr><td align="left"><a id="make-includes"></a>includes</td><td align="left">Optional list of include dirs to be passed to the dependencies of this library. They are NOT passed to the compiler, you should duplicate them in the configuration options.</td><td align="left">List of strings</td><td align="left">optional</td><td align="left">[]</td></tr>
<tr><td align="left"><a id="make-install_prefix"></a>install_prefix</td><td align="left">Install prefix, i.e. relative path to where to install the result of the build. Passed as an arg to &quot;make&quot; as PREFIX=&lt;install_prefix&gt;.</td><td align="left">String</td><td align="left">optional</td><td align="left">&quot;$$INSTALLDIR$$&quot;</td></tr>
<tr><td align="left"><a id="make-lib_name"></a>lib_name</td><td align="left">Library name. Defines the name of the install directory and the name of the static library, if no output files parameters are defined (any of static_libraries, shared_libraries, interface_libraries, binaries_names) Optional. If not defined, defaults to the target's name.</td><td align="left">String</td><td align="left">optional</td><td align="left">&quot;&quot;</td></tr>
<tr><td align="left"><a id="make-lib_source"></a>lib_source</td><td align="left">Label with source code to build. Typically a filegroup for the source of remote repository. Mandatory.</td><td align="left"><a href="https://bazel.build/docs/build-ref.html#labels">Label</a></td><td align="left">required</td><td align="left"></td></tr>

View file

@ -152,9 +152,9 @@
<h2 id="ninja"><a class="header" href="#ninja">ninja</a></h2>
<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-copts">copts</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_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>)
<a href="#ninja-deps">deps</a>, <a href="#ninja-directory">directory</a>, <a href="#ninja-env">env</a>, <a href="#ninja-includes">includes</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>
<p>Rule for building external libraries with <a href="https://ninja-build.org/">Ninja</a>.</p>
<p><strong>ATTRIBUTES</strong></p>
@ -171,6 +171,7 @@ ninja(<a href="#ninja-name">name</a>, <a href="#ninja-additional_inputs">additio
<tr><td align="left"><a id="ninja-deps"></a>deps</td><td align="left">Optional dependencies to be copied into the directory structure. Typically those directly required for the external building of the library/binaries. (i.e. those that the external build system will be looking for and paths to which are provided by the calling rule)</td><td align="left"><a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a></td><td align="left">optional</td><td align="left">[]</td></tr>
<tr><td align="left"><a id="ninja-directory"></a>directory</td><td align="left">A directory to pass as the <code>-C</code> argument. The rule will always use the root directory of the <code>lib_sources</code> attribute if this attribute is not set</td><td align="left">String</td><td align="left">optional</td><td align="left">&quot;&quot;</td></tr>
<tr><td align="left"><a id="ninja-env"></a>env</td><td align="left">Environment variables to set during the build. <code>$(execpath)</code> macros may be used to point at files which are listed as <code>data</code>, <code>deps</code>, or <code>build_data</code>, but unlike with other rules, these will be replaced with absolute paths to those files, because the build does not run in the exec root. This attribute is subject to make variable substitution. No other macros are supported.Variables containing <code>PATH</code> (e.g. <code>PATH</code>, <code>LD_LIBRARY_PATH</code>, <code>CPATH</code>) entries will be prepended to the existing variable.</td><td align="left"><a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -&gt; String</a></td><td align="left">optional</td><td align="left">{}</td></tr>
<tr><td align="left"><a id="ninja-includes"></a>includes</td><td align="left">Optional list of include dirs to be passed to the dependencies of this library. They are NOT passed to the compiler, you should duplicate them in the configuration options.</td><td align="left">List of strings</td><td align="left">optional</td><td align="left">[]</td></tr>
<tr><td align="left"><a id="ninja-lib_name"></a>lib_name</td><td align="left">Library name. Defines the name of the install directory and the name of the static library, if no output files parameters are defined (any of static_libraries, shared_libraries, interface_libraries, binaries_names) Optional. If not defined, defaults to the target's name.</td><td align="left">String</td><td align="left">optional</td><td align="left">&quot;&quot;</td></tr>
<tr><td align="left"><a id="ninja-lib_source"></a>lib_source</td><td align="left">Label with source code to build. Typically a filegroup for the source of remote repository. Mandatory.</td><td align="left"><a href="https://bazel.build/docs/build-ref.html#labels">Label</a></td><td align="left">required</td><td align="left"></td></tr>
<tr><td align="left"><a id="ninja-linkopts"></a>linkopts</td><td align="left">Optional link options to be passed up to the dependencies of this library</td><td align="left">List of strings</td><td align="left">optional</td><td align="left">[]</td></tr>

View file

@ -150,7 +150,7 @@
<h1 id="rules-foreigncc"><a class="header" href="#rules-foreigncc">Rules ForeignCc</a></h1>
<p>Rules for building C/C++ projects using foreign build systems (non Bazel) inside Bazel projects.</p>
<table><thead><tr><th>Release</th><th>Commit</th><th>Status</th></tr></thead><tbody>
<tr><td>main</td><td><a href="https://github.com/bazelbuild/rules_foreign_cc/commit/bdb0d9cbb72f398053458945b2abd8b74c9d6d2a">bdb0d9c</a></td><td><a href="https://buildkite.com/bazel/rules-foreign-cc/builds?branch=main"><img src="https://badge.buildkite.com/c28afbf846e2077715c753dda1f4b820cdcc46cc6cde16503c.svg?branch=main" alt="Build status" /></a></td></tr>
<tr><td>main</td><td><a href="https://github.com/bazelbuild/rules_foreign_cc/commit/ebfeaa08f8624c23a929c02cca60eb1585ae12e9">ebfeaa0</a></td><td><a href="https://buildkite.com/bazel/rules-foreign-cc/builds?branch=main"><img src="https://badge.buildkite.com/c28afbf846e2077715c753dda1f4b820cdcc46cc6cde16503c.svg?branch=main" alt="Build status" /></a></td></tr>
</tbody></table>
<h2 id="overview"><a class="header" href="#overview">Overview</a></h2>
<p>Rules ForeignCc is designed to help users build projects that are not built by Bazel and also
@ -168,8 +168,8 @@ http_archive(
# release on the releases page: https://github.com/bazelbuild/rules_foreign_cc/releases
#
# sha256 = &quot;...&quot;,
strip_prefix = &quot;rules_foreign_cc-bdb0d9cbb72f398053458945b2abd8b74c9d6d2a&quot;,
url = &quot;https://github.com/bazelbuild/rules_foreign_cc/archive/bdb0d9cbb72f398053458945b2abd8b74c9d6d2a.tar.gz&quot;,
strip_prefix = &quot;rules_foreign_cc-ebfeaa08f8624c23a929c02cca60eb1585ae12e9&quot;,
url = &quot;https://github.com/bazelbuild/rules_foreign_cc/archive/ebfeaa08f8624c23a929c02cca60eb1585ae12e9.tar.gz&quot;,
)
load(&quot;@rules_foreign_cc//foreign_cc:repositories.bzl&quot;, &quot;rules_foreign_cc_dependencies&quot;)
@ -300,10 +300,10 @@ cmake(
<h2 id="cmake"><a class="header" href="#cmake">cmake</a></h2>
<pre>
cmake(<a href="cmake.html#cmake-name">name</a>, <a href="cmake.html#cmake-additional_inputs">additional_inputs</a>, <a href="cmake.html#cmake-additional_tools">additional_tools</a>, <a href="cmake.html#cmake-alwayslink">alwayslink</a>, <a href="cmake.html#cmake-build_args">build_args</a>, <a href="cmake.html#cmake-build_data">build_data</a>, <a href="cmake.html#cmake-cache_entries">cache_entries</a>,
<a href="cmake.html#cmake-copts">copts</a>, <a href="cmake.html#cmake-data">data</a>, <a href="cmake.html#cmake-defines">defines</a>, <a href="cmake.html#cmake-deps">deps</a>, <a href="cmake.html#cmake-env">env</a>, <a href="cmake.html#cmake-generate_args">generate_args</a>, <a href="cmake.html#cmake-generate_crosstool_file">generate_crosstool_file</a>, <a href="cmake.html#cmake-install">install</a>, <a href="cmake.html#cmake-install_args">install_args</a>,
<a href="cmake.html#cmake-lib_name">lib_name</a>, <a href="cmake.html#cmake-lib_source">lib_source</a>, <a href="cmake.html#cmake-linkopts">linkopts</a>, <a href="cmake.html#cmake-out_bin_dir">out_bin_dir</a>, <a href="cmake.html#cmake-out_binaries">out_binaries</a>, <a href="cmake.html#cmake-out_data_dirs">out_data_dirs</a>, <a href="cmake.html#cmake-out_headers_only">out_headers_only</a>,
<a href="cmake.html#cmake-out_include_dir">out_include_dir</a>, <a href="cmake.html#cmake-out_interface_libs">out_interface_libs</a>, <a href="cmake.html#cmake-out_lib_dir">out_lib_dir</a>, <a href="cmake.html#cmake-out_shared_libs">out_shared_libs</a>, <a href="cmake.html#cmake-out_static_libs">out_static_libs</a>,
<a href="cmake.html#cmake-postfix_script">postfix_script</a>, <a href="cmake.html#cmake-targets">targets</a>, <a href="cmake.html#cmake-tool_prefix">tool_prefix</a>, <a href="cmake.html#cmake-tools_deps">tools_deps</a>, <a href="cmake.html#cmake-working_directory">working_directory</a>)
<a href="cmake.html#cmake-copts">copts</a>, <a href="cmake.html#cmake-data">data</a>, <a href="cmake.html#cmake-defines">defines</a>, <a href="cmake.html#cmake-deps">deps</a>, <a href="cmake.html#cmake-env">env</a>, <a href="cmake.html#cmake-generate_args">generate_args</a>, <a href="cmake.html#cmake-generate_crosstool_file">generate_crosstool_file</a>, <a href="cmake.html#cmake-includes">includes</a>, <a href="cmake.html#cmake-install">install</a>,
<a href="cmake.html#cmake-install_args">install_args</a>, <a href="cmake.html#cmake-lib_name">lib_name</a>, <a href="cmake.html#cmake-lib_source">lib_source</a>, <a href="cmake.html#cmake-linkopts">linkopts</a>, <a href="cmake.html#cmake-out_bin_dir">out_bin_dir</a>, <a href="cmake.html#cmake-out_binaries">out_binaries</a>, <a href="cmake.html#cmake-out_data_dirs">out_data_dirs</a>,
<a href="cmake.html#cmake-out_headers_only">out_headers_only</a>, <a href="cmake.html#cmake-out_include_dir">out_include_dir</a>, <a href="cmake.html#cmake-out_interface_libs">out_interface_libs</a>, <a href="cmake.html#cmake-out_lib_dir">out_lib_dir</a>, <a href="cmake.html#cmake-out_shared_libs">out_shared_libs</a>,
<a href="cmake.html#cmake-out_static_libs">out_static_libs</a>, <a href="cmake.html#cmake-postfix_script">postfix_script</a>, <a href="cmake.html#cmake-targets">targets</a>, <a href="cmake.html#cmake-tool_prefix">tool_prefix</a>, <a href="cmake.html#cmake-tools_deps">tools_deps</a>, <a href="cmake.html#cmake-working_directory">working_directory</a>)
</pre>
<p>Rule for building external library with CMake.</p>
<p><strong>ATTRIBUTES</strong></p>
@ -322,6 +322,7 @@ cmake(<a href="cmake.html#cmake-name">name</a>, <a href="cmake.html#cmake-additi
<tr><td align="left"><a id="cmake-env"></a>env</td><td align="left">Environment variables to set during the build. <code>$(execpath)</code> macros may be used to point at files which are listed as <code>data</code>, <code>deps</code>, or <code>build_data</code>, but unlike with other rules, these will be replaced with absolute paths to those files, because the build does not run in the exec root. This attribute is subject to make variable substitution. No other macros are supported.Variables containing <code>PATH</code> (e.g. <code>PATH</code>, <code>LD_LIBRARY_PATH</code>, <code>CPATH</code>) entries will be prepended to the existing variable.</td><td align="left"><a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -&gt; String</a></td><td align="left">optional</td><td align="left">{}</td></tr>
<tr><td align="left"><a id="cmake-generate_args"></a>generate_args</td><td align="left">Arguments for CMake's generate command. Arguments should be passed as key/value pairs. eg: <code>[&quot;-G Ninja&quot;, &quot;--debug-output&quot;, &quot;-DFOO=bar&quot;]</code>. Note that unless a generator (<code>-G</code>) argument is provided, the default generators are <a href="https://cmake.org/cmake/help/latest/generator/Unix%20Makefiles.html">Unix Makefiles</a> for Linux and MacOS and <a href="https://cmake.org/cmake/help/latest/generator/Ninja.html">Ninja</a> for Windows.</td><td align="left">List of strings</td><td align="left">optional</td><td align="left">[]</td></tr>
<tr><td align="left"><a id="cmake-generate_crosstool_file"></a>generate_crosstool_file</td><td align="left">When True, CMake crosstool file will be generated from the toolchain values, provided cache-entries and env_vars (some values will still be passed as <code>-Dkey=value</code> and environment variables). If <code>CMAKE_TOOLCHAIN_FILE</code> cache entry is passed, specified crosstool file will be used When using this option to cross-compile, it is required to specify <code>CMAKE_SYSTEM_NAME</code> in the cache_entries</td><td align="left">Boolean</td><td align="left">optional</td><td align="left">True</td></tr>
<tr><td align="left"><a id="cmake-includes"></a>includes</td><td align="left">Optional list of include dirs to be passed to the dependencies of this library. They are NOT passed to the compiler, you should duplicate them in the configuration options.</td><td align="left">List of strings</td><td align="left">optional</td><td align="left">[]</td></tr>
<tr><td align="left"><a id="cmake-install"></a>install</td><td align="left">If True, the <code>cmake --install</code> comand will be performed after a build</td><td align="left">Boolean</td><td align="left">optional</td><td align="left">True</td></tr>
<tr><td align="left"><a id="cmake-install_args"></a>install_args</td><td align="left">Arguments for the CMake install command</td><td align="left">List of strings</td><td align="left">optional</td><td align="left">[]</td></tr>
<tr><td align="left"><a id="cmake-lib_name"></a>lib_name</td><td align="left">Library name. Defines the name of the install directory and the name of the static library, if no output files parameters are defined (any of static_libraries, shared_libraries, interface_libraries, binaries_names) Optional. If not defined, defaults to the target's name.</td><td align="left">String</td><td align="left">optional</td><td align="left">&quot;&quot;</td></tr>
@ -363,10 +364,10 @@ build tool</p>
configure_make(<a href="configure_make.html#configure_make-name">name</a>, <a href="configure_make.html#configure_make-additional_inputs">additional_inputs</a>, <a href="configure_make.html#configure_make-additional_tools">additional_tools</a>, <a href="configure_make.html#configure_make-alwayslink">alwayslink</a>, <a href="configure_make.html#configure_make-args">args</a>, <a href="configure_make.html#configure_make-autoconf">autoconf</a>,
<a href="configure_make.html#configure_make-autoconf_options">autoconf_options</a>, <a href="configure_make.html#configure_make-autogen">autogen</a>, <a href="configure_make.html#configure_make-autogen_command">autogen_command</a>, <a href="configure_make.html#configure_make-autogen_options">autogen_options</a>, <a href="configure_make.html#configure_make-autoreconf">autoreconf</a>,
<a href="configure_make.html#configure_make-autoreconf_options">autoreconf_options</a>, <a href="configure_make.html#configure_make-build_data">build_data</a>, <a href="configure_make.html#configure_make-configure_command">configure_command</a>, <a href="configure_make.html#configure_make-configure_in_place">configure_in_place</a>,
<a href="configure_make.html#configure_make-configure_options">configure_options</a>, <a href="configure_make.html#configure_make-configure_prefix">configure_prefix</a>, <a href="configure_make.html#configure_make-copts">copts</a>, <a href="configure_make.html#configure_make-data">data</a>, <a href="configure_make.html#configure_make-defines">defines</a>, <a href="configure_make.html#configure_make-deps">deps</a>, <a href="configure_make.html#configure_make-env">env</a>, <a href="configure_make.html#configure_make-install_prefix">install_prefix</a>,
<a href="configure_make.html#configure_make-lib_name">lib_name</a>, <a href="configure_make.html#configure_make-lib_source">lib_source</a>, <a href="configure_make.html#configure_make-linkopts">linkopts</a>, <a href="configure_make.html#configure_make-out_bin_dir">out_bin_dir</a>, <a href="configure_make.html#configure_make-out_binaries">out_binaries</a>, <a href="configure_make.html#configure_make-out_data_dirs">out_data_dirs</a>,
<a href="configure_make.html#configure_make-out_headers_only">out_headers_only</a>, <a href="configure_make.html#configure_make-out_include_dir">out_include_dir</a>, <a href="configure_make.html#configure_make-out_interface_libs">out_interface_libs</a>, <a href="configure_make.html#configure_make-out_lib_dir">out_lib_dir</a>, <a href="configure_make.html#configure_make-out_shared_libs">out_shared_libs</a>,
<a href="configure_make.html#configure_make-out_static_libs">out_static_libs</a>, <a href="configure_make.html#configure_make-postfix_script">postfix_script</a>, <a href="configure_make.html#configure_make-targets">targets</a>, <a href="configure_make.html#configure_make-tool_prefix">tool_prefix</a>, <a href="configure_make.html#configure_make-tools_deps">tools_deps</a>)
<a href="configure_make.html#configure_make-configure_options">configure_options</a>, <a href="configure_make.html#configure_make-configure_prefix">configure_prefix</a>, <a href="configure_make.html#configure_make-copts">copts</a>, <a href="configure_make.html#configure_make-data">data</a>, <a href="configure_make.html#configure_make-defines">defines</a>, <a href="configure_make.html#configure_make-deps">deps</a>, <a href="configure_make.html#configure_make-env">env</a>, <a href="configure_make.html#configure_make-includes">includes</a>,
<a href="configure_make.html#configure_make-install_prefix">install_prefix</a>, <a href="configure_make.html#configure_make-lib_name">lib_name</a>, <a href="configure_make.html#configure_make-lib_source">lib_source</a>, <a href="configure_make.html#configure_make-linkopts">linkopts</a>, <a href="configure_make.html#configure_make-out_bin_dir">out_bin_dir</a>, <a href="configure_make.html#configure_make-out_binaries">out_binaries</a>,
<a href="configure_make.html#configure_make-out_data_dirs">out_data_dirs</a>, <a href="configure_make.html#configure_make-out_headers_only">out_headers_only</a>, <a href="configure_make.html#configure_make-out_include_dir">out_include_dir</a>, <a href="configure_make.html#configure_make-out_interface_libs">out_interface_libs</a>, <a href="configure_make.html#configure_make-out_lib_dir">out_lib_dir</a>,
<a href="configure_make.html#configure_make-out_shared_libs">out_shared_libs</a>, <a href="configure_make.html#configure_make-out_static_libs">out_static_libs</a>, <a href="configure_make.html#configure_make-postfix_script">postfix_script</a>, <a href="configure_make.html#configure_make-targets">targets</a>, <a href="configure_make.html#configure_make-tool_prefix">tool_prefix</a>, <a href="configure_make.html#configure_make-tools_deps">tools_deps</a>)
</pre>
<p>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.</p>
<p><strong>ATTRIBUTES</strong></p>
@ -393,6 +394,7 @@ configure_make(<a href="configure_make.html#configure_make-name">name</a>, <a hr
<tr><td align="left"><a id="configure_make-defines"></a>defines</td><td align="left">Optional compilation definitions to be passed to the dependencies of this library. They are NOT passed to the compiler, you should duplicate them in the configuration options.</td><td align="left">List of strings</td><td align="left">optional</td><td align="left">[]</td></tr>
<tr><td align="left"><a id="configure_make-deps"></a>deps</td><td align="left">Optional dependencies to be copied into the directory structure. Typically those directly required for the external building of the library/binaries. (i.e. those that the external build system will be looking for and paths to which are provided by the calling rule)</td><td align="left"><a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a></td><td align="left">optional</td><td align="left">[]</td></tr>
<tr><td align="left"><a id="configure_make-env"></a>env</td><td align="left">Environment variables to set during the build. <code>$(execpath)</code> macros may be used to point at files which are listed as <code>data</code>, <code>deps</code>, or <code>build_data</code>, but unlike with other rules, these will be replaced with absolute paths to those files, because the build does not run in the exec root. This attribute is subject to make variable substitution. No other macros are supported.Variables containing <code>PATH</code> (e.g. <code>PATH</code>, <code>LD_LIBRARY_PATH</code>, <code>CPATH</code>) entries will be prepended to the existing variable.</td><td align="left"><a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -&gt; String</a></td><td align="left">optional</td><td align="left">{}</td></tr>
<tr><td align="left"><a id="configure_make-includes"></a>includes</td><td align="left">Optional list of include dirs to be passed to the dependencies of this library. They are NOT passed to the compiler, you should duplicate them in the configuration options.</td><td align="left">List of strings</td><td align="left">optional</td><td align="left">[]</td></tr>
<tr><td align="left"><a id="configure_make-install_prefix"></a>install_prefix</td><td align="left">Install prefix, i.e. relative path to where to install the result of the build. Passed to the 'configure' script with --prefix flag.</td><td align="left">String</td><td align="left">optional</td><td align="left">&quot;&quot;</td></tr>
<tr><td align="left"><a id="configure_make-lib_name"></a>lib_name</td><td align="left">Library name. Defines the name of the install directory and the name of the static library, if no output files parameters are defined (any of static_libraries, shared_libraries, interface_libraries, binaries_names) Optional. If not defined, defaults to the target's name.</td><td align="left">String</td><td align="left">optional</td><td align="left">&quot;&quot;</td></tr>
<tr><td align="left"><a id="configure_make-lib_source"></a>lib_source</td><td align="left">Label with source code to build. Typically a filegroup for the source of remote repository. Mandatory.</td><td align="left"><a href="https://bazel.build/docs/build-ref.html#labels">Label</a></td><td align="left">required</td><td align="left"></td></tr>
@ -429,7 +431,7 @@ configure_make_variant(<a href="configure_make.html#configure_make_variant-name"
<h2 id="make"><a class="header" href="#make">make</a></h2>
<pre>
make(<a href="make.html#make-name">name</a>, <a href="make.html#make-additional_inputs">additional_inputs</a>, <a href="make.html#make-additional_tools">additional_tools</a>, <a href="make.html#make-alwayslink">alwayslink</a>, <a href="make.html#make-args">args</a>, <a href="make.html#make-build_data">build_data</a>, <a href="make.html#make-copts">copts</a>, <a href="make.html#make-data">data</a>, <a href="make.html#make-defines">defines</a>,
<a href="make.html#make-deps">deps</a>, <a href="make.html#make-env">env</a>, <a href="make.html#make-install_prefix">install_prefix</a>, <a href="make.html#make-lib_name">lib_name</a>, <a href="make.html#make-lib_source">lib_source</a>, <a href="make.html#make-linkopts">linkopts</a>, <a href="make.html#make-out_bin_dir">out_bin_dir</a>, <a href="make.html#make-out_binaries">out_binaries</a>,
<a href="make.html#make-deps">deps</a>, <a href="make.html#make-env">env</a>, <a href="make.html#make-includes">includes</a>, <a href="make.html#make-install_prefix">install_prefix</a>, <a href="make.html#make-lib_name">lib_name</a>, <a href="make.html#make-lib_source">lib_source</a>, <a href="make.html#make-linkopts">linkopts</a>, <a href="make.html#make-out_bin_dir">out_bin_dir</a>, <a href="make.html#make-out_binaries">out_binaries</a>,
<a href="make.html#make-out_data_dirs">out_data_dirs</a>, <a href="make.html#make-out_headers_only">out_headers_only</a>, <a href="make.html#make-out_include_dir">out_include_dir</a>, <a href="make.html#make-out_interface_libs">out_interface_libs</a>, <a href="make.html#make-out_lib_dir">out_lib_dir</a>,
<a href="make.html#make-out_shared_libs">out_shared_libs</a>, <a href="make.html#make-out_static_libs">out_static_libs</a>, <a href="make.html#make-postfix_script">postfix_script</a>, <a href="make.html#make-targets">targets</a>, <a href="make.html#make-tool_prefix">tool_prefix</a>, <a href="make.html#make-tools_deps">tools_deps</a>)
</pre>
@ -447,6 +449,7 @@ make(<a href="make.html#make-name">name</a>, <a href="make.html#make-additional_
<tr><td align="left"><a id="make-defines"></a>defines</td><td align="left">Optional compilation definitions to be passed to the dependencies of this library. They are NOT passed to the compiler, you should duplicate them in the configuration options.</td><td align="left">List of strings</td><td align="left">optional</td><td align="left">[]</td></tr>
<tr><td align="left"><a id="make-deps"></a>deps</td><td align="left">Optional dependencies to be copied into the directory structure. Typically those directly required for the external building of the library/binaries. (i.e. those that the external build system will be looking for and paths to which are provided by the calling rule)</td><td align="left"><a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a></td><td align="left">optional</td><td align="left">[]</td></tr>
<tr><td align="left"><a id="make-env"></a>env</td><td align="left">Environment variables to set during the build. <code>$(execpath)</code> macros may be used to point at files which are listed as <code>data</code>, <code>deps</code>, or <code>build_data</code>, but unlike with other rules, these will be replaced with absolute paths to those files, because the build does not run in the exec root. This attribute is subject to make variable substitution. No other macros are supported.Variables containing <code>PATH</code> (e.g. <code>PATH</code>, <code>LD_LIBRARY_PATH</code>, <code>CPATH</code>) entries will be prepended to the existing variable.</td><td align="left"><a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -&gt; String</a></td><td align="left">optional</td><td align="left">{}</td></tr>
<tr><td align="left"><a id="make-includes"></a>includes</td><td align="left">Optional list of include dirs to be passed to the dependencies of this library. They are NOT passed to the compiler, you should duplicate them in the configuration options.</td><td align="left">List of strings</td><td align="left">optional</td><td align="left">[]</td></tr>
<tr><td align="left"><a id="make-install_prefix"></a>install_prefix</td><td align="left">Install prefix, i.e. relative path to where to install the result of the build. Passed as an arg to &quot;make&quot; as PREFIX=&lt;install_prefix&gt;.</td><td align="left">String</td><td align="left">optional</td><td align="left">&quot;$$INSTALLDIR$$&quot;</td></tr>
<tr><td align="left"><a id="make-lib_name"></a>lib_name</td><td align="left">Library name. Defines the name of the install directory and the name of the static library, if no output files parameters are defined (any of static_libraries, shared_libraries, interface_libraries, binaries_names) Optional. If not defined, defaults to the target's name.</td><td align="left">String</td><td align="left">optional</td><td align="left">&quot;&quot;</td></tr>
<tr><td align="left"><a id="make-lib_source"></a>lib_source</td><td align="left">Label with source code to build. Typically a filegroup for the source of remote repository. Mandatory.</td><td align="left"><a href="https://bazel.build/docs/build-ref.html#labels">Label</a></td><td align="left">required</td><td align="left"></td></tr>
@ -483,9 +486,9 @@ make_variant(<a href="make.html#make_variant-name">name</a>, <a href="make.html#
<h2 id="ninja"><a class="header" href="#ninja">ninja</a></h2>
<pre>
ninja(<a href="ninja.html#ninja-name">name</a>, <a href="ninja.html#ninja-additional_inputs">additional_inputs</a>, <a href="ninja.html#ninja-additional_tools">additional_tools</a>, <a href="ninja.html#ninja-alwayslink">alwayslink</a>, <a href="ninja.html#ninja-args">args</a>, <a href="ninja.html#ninja-build_data">build_data</a>, <a href="ninja.html#ninja-copts">copts</a>, <a href="ninja.html#ninja-data">data</a>, <a href="ninja.html#ninja-defines">defines</a>,
<a href="ninja.html#ninja-deps">deps</a>, <a href="ninja.html#ninja-directory">directory</a>, <a href="ninja.html#ninja-env">env</a>, <a href="ninja.html#ninja-lib_name">lib_name</a>, <a href="ninja.html#ninja-lib_source">lib_source</a>, <a href="ninja.html#ninja-linkopts">linkopts</a>, <a href="ninja.html#ninja-out_bin_dir">out_bin_dir</a>, <a href="ninja.html#ninja-out_binaries">out_binaries</a>, <a href="ninja.html#ninja-out_data_dirs">out_data_dirs</a>,
<a href="ninja.html#ninja-out_headers_only">out_headers_only</a>, <a href="ninja.html#ninja-out_include_dir">out_include_dir</a>, <a href="ninja.html#ninja-out_interface_libs">out_interface_libs</a>, <a href="ninja.html#ninja-out_lib_dir">out_lib_dir</a>, <a href="ninja.html#ninja-out_shared_libs">out_shared_libs</a>,
<a href="ninja.html#ninja-out_static_libs">out_static_libs</a>, <a href="ninja.html#ninja-postfix_script">postfix_script</a>, <a href="ninja.html#ninja-targets">targets</a>, <a href="ninja.html#ninja-tool_prefix">tool_prefix</a>, <a href="ninja.html#ninja-tools_deps">tools_deps</a>)
<a href="ninja.html#ninja-deps">deps</a>, <a href="ninja.html#ninja-directory">directory</a>, <a href="ninja.html#ninja-env">env</a>, <a href="ninja.html#ninja-includes">includes</a>, <a href="ninja.html#ninja-lib_name">lib_name</a>, <a href="ninja.html#ninja-lib_source">lib_source</a>, <a href="ninja.html#ninja-linkopts">linkopts</a>, <a href="ninja.html#ninja-out_bin_dir">out_bin_dir</a>, <a href="ninja.html#ninja-out_binaries">out_binaries</a>,
<a href="ninja.html#ninja-out_data_dirs">out_data_dirs</a>, <a href="ninja.html#ninja-out_headers_only">out_headers_only</a>, <a href="ninja.html#ninja-out_include_dir">out_include_dir</a>, <a href="ninja.html#ninja-out_interface_libs">out_interface_libs</a>, <a href="ninja.html#ninja-out_lib_dir">out_lib_dir</a>,
<a href="ninja.html#ninja-out_shared_libs">out_shared_libs</a>, <a href="ninja.html#ninja-out_static_libs">out_static_libs</a>, <a href="ninja.html#ninja-postfix_script">postfix_script</a>, <a href="ninja.html#ninja-targets">targets</a>, <a href="ninja.html#ninja-tool_prefix">tool_prefix</a>, <a href="ninja.html#ninja-tools_deps">tools_deps</a>)
</pre>
<p>Rule for building external libraries with <a href="https://ninja-build.org/">Ninja</a>.</p>
<p><strong>ATTRIBUTES</strong></p>
@ -502,6 +505,7 @@ ninja(<a href="ninja.html#ninja-name">name</a>, <a href="ninja.html#ninja-additi
<tr><td align="left"><a id="ninja-deps"></a>deps</td><td align="left">Optional dependencies to be copied into the directory structure. Typically those directly required for the external building of the library/binaries. (i.e. those that the external build system will be looking for and paths to which are provided by the calling rule)</td><td align="left"><a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a></td><td align="left">optional</td><td align="left">[]</td></tr>
<tr><td align="left"><a id="ninja-directory"></a>directory</td><td align="left">A directory to pass as the <code>-C</code> argument. The rule will always use the root directory of the <code>lib_sources</code> attribute if this attribute is not set</td><td align="left">String</td><td align="left">optional</td><td align="left">&quot;&quot;</td></tr>
<tr><td align="left"><a id="ninja-env"></a>env</td><td align="left">Environment variables to set during the build. <code>$(execpath)</code> macros may be used to point at files which are listed as <code>data</code>, <code>deps</code>, or <code>build_data</code>, but unlike with other rules, these will be replaced with absolute paths to those files, because the build does not run in the exec root. This attribute is subject to make variable substitution. No other macros are supported.Variables containing <code>PATH</code> (e.g. <code>PATH</code>, <code>LD_LIBRARY_PATH</code>, <code>CPATH</code>) entries will be prepended to the existing variable.</td><td align="left"><a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -&gt; String</a></td><td align="left">optional</td><td align="left">{}</td></tr>
<tr><td align="left"><a id="ninja-includes"></a>includes</td><td align="left">Optional list of include dirs to be passed to the dependencies of this library. They are NOT passed to the compiler, you should duplicate them in the configuration options.</td><td align="left">List of strings</td><td align="left">optional</td><td align="left">[]</td></tr>
<tr><td align="left"><a id="ninja-lib_name"></a>lib_name</td><td align="left">Library name. Defines the name of the install directory and the name of the static library, if no output files parameters are defined (any of static_libraries, shared_libraries, interface_libraries, binaries_names) Optional. If not defined, defaults to the target's name.</td><td align="left">String</td><td align="left">optional</td><td align="left">&quot;&quot;</td></tr>
<tr><td align="left"><a id="ninja-lib_source"></a>lib_source</td><td align="left">Label with source code to build. Typically a filegroup for the source of remote repository. Mandatory.</td><td align="left"><a href="https://bazel.build/docs/build-ref.html#labels">Label</a></td><td align="left">required</td><td align="left"></td></tr>
<tr><td align="left"><a id="ninja-linkopts"></a>linkopts</td><td align="left">Optional link options to be passed up to the dependencies of this library</td><td align="left">List of strings</td><td align="left">optional</td><td align="left">[]</td></tr>
@ -543,7 +547,7 @@ ninja(<a href="ninja.html#ninja-name">name</a>, <a href="ninja.html#ninja-additi
<h2 id="boost_build"><a class="header" href="#boost_build">boost_build</a></h2>
<pre>
boost_build(<a href="flatten.html#boost_build-name">name</a>, <a href="flatten.html#boost_build-additional_inputs">additional_inputs</a>, <a href="flatten.html#boost_build-additional_tools">additional_tools</a>, <a href="flatten.html#boost_build-alwayslink">alwayslink</a>, <a href="flatten.html#boost_build-bootstrap_options">bootstrap_options</a>, <a href="flatten.html#boost_build-build_data">build_data</a>,
<a href="flatten.html#boost_build-copts">copts</a>, <a href="flatten.html#boost_build-data">data</a>, <a href="flatten.html#boost_build-defines">defines</a>, <a href="flatten.html#boost_build-deps">deps</a>, <a href="flatten.html#boost_build-env">env</a>, <a href="flatten.html#boost_build-lib_name">lib_name</a>, <a href="flatten.html#boost_build-lib_source">lib_source</a>, <a href="flatten.html#boost_build-linkopts">linkopts</a>, <a href="flatten.html#boost_build-out_bin_dir">out_bin_dir</a>,
<a href="flatten.html#boost_build-copts">copts</a>, <a href="flatten.html#boost_build-data">data</a>, <a href="flatten.html#boost_build-defines">defines</a>, <a href="flatten.html#boost_build-deps">deps</a>, <a href="flatten.html#boost_build-env">env</a>, <a href="flatten.html#boost_build-includes">includes</a>, <a href="flatten.html#boost_build-lib_name">lib_name</a>, <a href="flatten.html#boost_build-lib_source">lib_source</a>, <a href="flatten.html#boost_build-linkopts">linkopts</a>, <a href="flatten.html#boost_build-out_bin_dir">out_bin_dir</a>,
<a href="flatten.html#boost_build-out_binaries">out_binaries</a>, <a href="flatten.html#boost_build-out_data_dirs">out_data_dirs</a>, <a href="flatten.html#boost_build-out_headers_only">out_headers_only</a>, <a href="flatten.html#boost_build-out_include_dir">out_include_dir</a>, <a href="flatten.html#boost_build-out_interface_libs">out_interface_libs</a>,
<a href="flatten.html#boost_build-out_lib_dir">out_lib_dir</a>, <a href="flatten.html#boost_build-out_shared_libs">out_shared_libs</a>, <a href="flatten.html#boost_build-out_static_libs">out_static_libs</a>, <a href="flatten.html#boost_build-postfix_script">postfix_script</a>, <a href="flatten.html#boost_build-tool_prefix">tool_prefix</a>, <a href="flatten.html#boost_build-tools_deps">tools_deps</a>,
<a href="flatten.html#boost_build-user_options">user_options</a>)
@ -562,6 +566,7 @@ boost_build(<a href="flatten.html#boost_build-name">name</a>, <a href="flatten.h
<tr><td align="left"><a id="boost_build-defines"></a>defines</td><td align="left">Optional compilation definitions to be passed to the dependencies of this library. They are NOT passed to the compiler, you should duplicate them in the configuration options.</td><td align="left">List of strings</td><td align="left">optional</td><td align="left">[]</td></tr>
<tr><td align="left"><a id="boost_build-deps"></a>deps</td><td align="left">Optional dependencies to be copied into the directory structure. Typically those directly required for the external building of the library/binaries. (i.e. those that the external build system will be looking for and paths to which are provided by the calling rule)</td><td align="left"><a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a></td><td align="left">optional</td><td align="left">[]</td></tr>
<tr><td align="left"><a id="boost_build-env"></a>env</td><td align="left">Environment variables to set during the build. <code>$(execpath)</code> macros may be used to point at files which are listed as <code>data</code>, <code>deps</code>, or <code>build_data</code>, but unlike with other rules, these will be replaced with absolute paths to those files, because the build does not run in the exec root. This attribute is subject to make variable substitution. No other macros are supported.Variables containing <code>PATH</code> (e.g. <code>PATH</code>, <code>LD_LIBRARY_PATH</code>, <code>CPATH</code>) entries will be prepended to the existing variable.</td><td align="left"><a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -&gt; String</a></td><td align="left">optional</td><td align="left">{}</td></tr>
<tr><td align="left"><a id="boost_build-includes"></a>includes</td><td align="left">Optional list of include dirs to be passed to the dependencies of this library. They are NOT passed to the compiler, you should duplicate them in the configuration options.</td><td align="left">List of strings</td><td align="left">optional</td><td align="left">[]</td></tr>
<tr><td align="left"><a id="boost_build-lib_name"></a>lib_name</td><td align="left">Library name. Defines the name of the install directory and the name of the static library, if no output files parameters are defined (any of static_libraries, shared_libraries, interface_libraries, binaries_names) Optional. If not defined, defaults to the target's name.</td><td align="left">String</td><td align="left">optional</td><td align="left">&quot;&quot;</td></tr>
<tr><td align="left"><a id="boost_build-lib_source"></a>lib_source</td><td align="left">Label with source code to build. Typically a filegroup for the source of remote repository. Mandatory.</td><td align="left"><a href="https://bazel.build/docs/build-ref.html#labels">Label</a></td><td align="left">required</td><td align="left"></td></tr>
<tr><td align="left"><a id="boost_build-linkopts"></a>linkopts</td><td align="left">Optional link options to be passed up to the dependencies of this library</td><td align="left">List of strings</td><td align="left">optional</td><td align="left">[]</td></tr>
@ -583,10 +588,10 @@ boost_build(<a href="flatten.html#boost_build-name">name</a>, <a href="flatten.h
<h2 id="cmake-1"><a class="header" href="#cmake-1">cmake</a></h2>
<pre>
cmake(<a href="flatten.html#cmake-name">name</a>, <a href="flatten.html#cmake-additional_inputs">additional_inputs</a>, <a href="flatten.html#cmake-additional_tools">additional_tools</a>, <a href="flatten.html#cmake-alwayslink">alwayslink</a>, <a href="flatten.html#cmake-build_args">build_args</a>, <a href="flatten.html#cmake-build_data">build_data</a>, <a href="flatten.html#cmake-cache_entries">cache_entries</a>,
<a href="flatten.html#cmake-copts">copts</a>, <a href="flatten.html#cmake-data">data</a>, <a href="flatten.html#cmake-defines">defines</a>, <a href="flatten.html#cmake-deps">deps</a>, <a href="flatten.html#cmake-env">env</a>, <a href="flatten.html#cmake-generate_args">generate_args</a>, <a href="flatten.html#cmake-generate_crosstool_file">generate_crosstool_file</a>, <a href="flatten.html#cmake-install">install</a>, <a href="flatten.html#cmake-install_args">install_args</a>,
<a href="flatten.html#cmake-lib_name">lib_name</a>, <a href="flatten.html#cmake-lib_source">lib_source</a>, <a href="flatten.html#cmake-linkopts">linkopts</a>, <a href="flatten.html#cmake-out_bin_dir">out_bin_dir</a>, <a href="flatten.html#cmake-out_binaries">out_binaries</a>, <a href="flatten.html#cmake-out_data_dirs">out_data_dirs</a>, <a href="flatten.html#cmake-out_headers_only">out_headers_only</a>,
<a href="flatten.html#cmake-out_include_dir">out_include_dir</a>, <a href="flatten.html#cmake-out_interface_libs">out_interface_libs</a>, <a href="flatten.html#cmake-out_lib_dir">out_lib_dir</a>, <a href="flatten.html#cmake-out_shared_libs">out_shared_libs</a>, <a href="flatten.html#cmake-out_static_libs">out_static_libs</a>,
<a href="flatten.html#cmake-postfix_script">postfix_script</a>, <a href="flatten.html#cmake-targets">targets</a>, <a href="flatten.html#cmake-tool_prefix">tool_prefix</a>, <a href="flatten.html#cmake-tools_deps">tools_deps</a>, <a href="flatten.html#cmake-working_directory">working_directory</a>)
<a href="flatten.html#cmake-copts">copts</a>, <a href="flatten.html#cmake-data">data</a>, <a href="flatten.html#cmake-defines">defines</a>, <a href="flatten.html#cmake-deps">deps</a>, <a href="flatten.html#cmake-env">env</a>, <a href="flatten.html#cmake-generate_args">generate_args</a>, <a href="flatten.html#cmake-generate_crosstool_file">generate_crosstool_file</a>, <a href="flatten.html#cmake-includes">includes</a>, <a href="flatten.html#cmake-install">install</a>,
<a href="flatten.html#cmake-install_args">install_args</a>, <a href="flatten.html#cmake-lib_name">lib_name</a>, <a href="flatten.html#cmake-lib_source">lib_source</a>, <a href="flatten.html#cmake-linkopts">linkopts</a>, <a href="flatten.html#cmake-out_bin_dir">out_bin_dir</a>, <a href="flatten.html#cmake-out_binaries">out_binaries</a>, <a href="flatten.html#cmake-out_data_dirs">out_data_dirs</a>,
<a href="flatten.html#cmake-out_headers_only">out_headers_only</a>, <a href="flatten.html#cmake-out_include_dir">out_include_dir</a>, <a href="flatten.html#cmake-out_interface_libs">out_interface_libs</a>, <a href="flatten.html#cmake-out_lib_dir">out_lib_dir</a>, <a href="flatten.html#cmake-out_shared_libs">out_shared_libs</a>,
<a href="flatten.html#cmake-out_static_libs">out_static_libs</a>, <a href="flatten.html#cmake-postfix_script">postfix_script</a>, <a href="flatten.html#cmake-targets">targets</a>, <a href="flatten.html#cmake-tool_prefix">tool_prefix</a>, <a href="flatten.html#cmake-tools_deps">tools_deps</a>, <a href="flatten.html#cmake-working_directory">working_directory</a>)
</pre>
<p>Rule for building external library with CMake.</p>
<p><strong>ATTRIBUTES</strong></p>
@ -605,6 +610,7 @@ cmake(<a href="flatten.html#cmake-name">name</a>, <a href="flatten.html#cmake-ad
<tr><td align="left"><a id="cmake-env"></a>env</td><td align="left">Environment variables to set during the build. <code>$(execpath)</code> macros may be used to point at files which are listed as <code>data</code>, <code>deps</code>, or <code>build_data</code>, but unlike with other rules, these will be replaced with absolute paths to those files, because the build does not run in the exec root. This attribute is subject to make variable substitution. No other macros are supported.Variables containing <code>PATH</code> (e.g. <code>PATH</code>, <code>LD_LIBRARY_PATH</code>, <code>CPATH</code>) entries will be prepended to the existing variable.</td><td align="left"><a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -&gt; String</a></td><td align="left">optional</td><td align="left">{}</td></tr>
<tr><td align="left"><a id="cmake-generate_args"></a>generate_args</td><td align="left">Arguments for CMake's generate command. Arguments should be passed as key/value pairs. eg: <code>[&quot;-G Ninja&quot;, &quot;--debug-output&quot;, &quot;-DFOO=bar&quot;]</code>. Note that unless a generator (<code>-G</code>) argument is provided, the default generators are <a href="https://cmake.org/cmake/help/latest/generator/Unix%20Makefiles.html">Unix Makefiles</a> for Linux and MacOS and <a href="https://cmake.org/cmake/help/latest/generator/Ninja.html">Ninja</a> for Windows.</td><td align="left">List of strings</td><td align="left">optional</td><td align="left">[]</td></tr>
<tr><td align="left"><a id="cmake-generate_crosstool_file"></a>generate_crosstool_file</td><td align="left">When True, CMake crosstool file will be generated from the toolchain values, provided cache-entries and env_vars (some values will still be passed as <code>-Dkey=value</code> and environment variables). If <code>CMAKE_TOOLCHAIN_FILE</code> cache entry is passed, specified crosstool file will be used When using this option to cross-compile, it is required to specify <code>CMAKE_SYSTEM_NAME</code> in the cache_entries</td><td align="left">Boolean</td><td align="left">optional</td><td align="left">True</td></tr>
<tr><td align="left"><a id="cmake-includes"></a>includes</td><td align="left">Optional list of include dirs to be passed to the dependencies of this library. They are NOT passed to the compiler, you should duplicate them in the configuration options.</td><td align="left">List of strings</td><td align="left">optional</td><td align="left">[]</td></tr>
<tr><td align="left"><a id="cmake-install"></a>install</td><td align="left">If True, the <code>cmake --install</code> comand will be performed after a build</td><td align="left">Boolean</td><td align="left">optional</td><td align="left">True</td></tr>
<tr><td align="left"><a id="cmake-install_args"></a>install_args</td><td align="left">Arguments for the CMake install command</td><td align="left">List of strings</td><td align="left">optional</td><td align="left">[]</td></tr>
<tr><td align="left"><a id="cmake-lib_name"></a>lib_name</td><td align="left">Library name. Defines the name of the install directory and the name of the static library, if no output files parameters are defined (any of static_libraries, shared_libraries, interface_libraries, binaries_names) Optional. If not defined, defaults to the target's name.</td><td align="left">String</td><td align="left">optional</td><td align="left">&quot;&quot;</td></tr>
@ -631,10 +637,10 @@ cmake(<a href="flatten.html#cmake-name">name</a>, <a href="flatten.html#cmake-ad
configure_make(<a href="flatten.html#configure_make-name">name</a>, <a href="flatten.html#configure_make-additional_inputs">additional_inputs</a>, <a href="flatten.html#configure_make-additional_tools">additional_tools</a>, <a href="flatten.html#configure_make-alwayslink">alwayslink</a>, <a href="flatten.html#configure_make-args">args</a>, <a href="flatten.html#configure_make-autoconf">autoconf</a>,
<a href="flatten.html#configure_make-autoconf_options">autoconf_options</a>, <a href="flatten.html#configure_make-autogen">autogen</a>, <a href="flatten.html#configure_make-autogen_command">autogen_command</a>, <a href="flatten.html#configure_make-autogen_options">autogen_options</a>, <a href="flatten.html#configure_make-autoreconf">autoreconf</a>,
<a href="flatten.html#configure_make-autoreconf_options">autoreconf_options</a>, <a href="flatten.html#configure_make-build_data">build_data</a>, <a href="flatten.html#configure_make-configure_command">configure_command</a>, <a href="flatten.html#configure_make-configure_in_place">configure_in_place</a>,
<a href="flatten.html#configure_make-configure_options">configure_options</a>, <a href="flatten.html#configure_make-configure_prefix">configure_prefix</a>, <a href="flatten.html#configure_make-copts">copts</a>, <a href="flatten.html#configure_make-data">data</a>, <a href="flatten.html#configure_make-defines">defines</a>, <a href="flatten.html#configure_make-deps">deps</a>, <a href="flatten.html#configure_make-env">env</a>, <a href="flatten.html#configure_make-install_prefix">install_prefix</a>,
<a href="flatten.html#configure_make-lib_name">lib_name</a>, <a href="flatten.html#configure_make-lib_source">lib_source</a>, <a href="flatten.html#configure_make-linkopts">linkopts</a>, <a href="flatten.html#configure_make-out_bin_dir">out_bin_dir</a>, <a href="flatten.html#configure_make-out_binaries">out_binaries</a>, <a href="flatten.html#configure_make-out_data_dirs">out_data_dirs</a>,
<a href="flatten.html#configure_make-out_headers_only">out_headers_only</a>, <a href="flatten.html#configure_make-out_include_dir">out_include_dir</a>, <a href="flatten.html#configure_make-out_interface_libs">out_interface_libs</a>, <a href="flatten.html#configure_make-out_lib_dir">out_lib_dir</a>, <a href="flatten.html#configure_make-out_shared_libs">out_shared_libs</a>,
<a href="flatten.html#configure_make-out_static_libs">out_static_libs</a>, <a href="flatten.html#configure_make-postfix_script">postfix_script</a>, <a href="flatten.html#configure_make-targets">targets</a>, <a href="flatten.html#configure_make-tool_prefix">tool_prefix</a>, <a href="flatten.html#configure_make-tools_deps">tools_deps</a>)
<a href="flatten.html#configure_make-configure_options">configure_options</a>, <a href="flatten.html#configure_make-configure_prefix">configure_prefix</a>, <a href="flatten.html#configure_make-copts">copts</a>, <a href="flatten.html#configure_make-data">data</a>, <a href="flatten.html#configure_make-defines">defines</a>, <a href="flatten.html#configure_make-deps">deps</a>, <a href="flatten.html#configure_make-env">env</a>, <a href="flatten.html#configure_make-includes">includes</a>,
<a href="flatten.html#configure_make-install_prefix">install_prefix</a>, <a href="flatten.html#configure_make-lib_name">lib_name</a>, <a href="flatten.html#configure_make-lib_source">lib_source</a>, <a href="flatten.html#configure_make-linkopts">linkopts</a>, <a href="flatten.html#configure_make-out_bin_dir">out_bin_dir</a>, <a href="flatten.html#configure_make-out_binaries">out_binaries</a>,
<a href="flatten.html#configure_make-out_data_dirs">out_data_dirs</a>, <a href="flatten.html#configure_make-out_headers_only">out_headers_only</a>, <a href="flatten.html#configure_make-out_include_dir">out_include_dir</a>, <a href="flatten.html#configure_make-out_interface_libs">out_interface_libs</a>, <a href="flatten.html#configure_make-out_lib_dir">out_lib_dir</a>,
<a href="flatten.html#configure_make-out_shared_libs">out_shared_libs</a>, <a href="flatten.html#configure_make-out_static_libs">out_static_libs</a>, <a href="flatten.html#configure_make-postfix_script">postfix_script</a>, <a href="flatten.html#configure_make-targets">targets</a>, <a href="flatten.html#configure_make-tool_prefix">tool_prefix</a>, <a href="flatten.html#configure_make-tools_deps">tools_deps</a>)
</pre>
<p>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.</p>
<p><strong>ATTRIBUTES</strong></p>
@ -661,6 +667,7 @@ configure_make(<a href="flatten.html#configure_make-name">name</a>, <a href="fla
<tr><td align="left"><a id="configure_make-defines"></a>defines</td><td align="left">Optional compilation definitions to be passed to the dependencies of this library. They are NOT passed to the compiler, you should duplicate them in the configuration options.</td><td align="left">List of strings</td><td align="left">optional</td><td align="left">[]</td></tr>
<tr><td align="left"><a id="configure_make-deps"></a>deps</td><td align="left">Optional dependencies to be copied into the directory structure. Typically those directly required for the external building of the library/binaries. (i.e. those that the external build system will be looking for and paths to which are provided by the calling rule)</td><td align="left"><a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a></td><td align="left">optional</td><td align="left">[]</td></tr>
<tr><td align="left"><a id="configure_make-env"></a>env</td><td align="left">Environment variables to set during the build. <code>$(execpath)</code> macros may be used to point at files which are listed as <code>data</code>, <code>deps</code>, or <code>build_data</code>, but unlike with other rules, these will be replaced with absolute paths to those files, because the build does not run in the exec root. This attribute is subject to make variable substitution. No other macros are supported.Variables containing <code>PATH</code> (e.g. <code>PATH</code>, <code>LD_LIBRARY_PATH</code>, <code>CPATH</code>) entries will be prepended to the existing variable.</td><td align="left"><a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -&gt; String</a></td><td align="left">optional</td><td align="left">{}</td></tr>
<tr><td align="left"><a id="configure_make-includes"></a>includes</td><td align="left">Optional list of include dirs to be passed to the dependencies of this library. They are NOT passed to the compiler, you should duplicate them in the configuration options.</td><td align="left">List of strings</td><td align="left">optional</td><td align="left">[]</td></tr>
<tr><td align="left"><a id="configure_make-install_prefix"></a>install_prefix</td><td align="left">Install prefix, i.e. relative path to where to install the result of the build. Passed to the 'configure' script with --prefix flag.</td><td align="left">String</td><td align="left">optional</td><td align="left">&quot;&quot;</td></tr>
<tr><td align="left"><a id="configure_make-lib_name"></a>lib_name</td><td align="left">Library name. Defines the name of the install directory and the name of the static library, if no output files parameters are defined (any of static_libraries, shared_libraries, interface_libraries, binaries_names) Optional. If not defined, defaults to the target's name.</td><td align="left">String</td><td align="left">optional</td><td align="left">&quot;&quot;</td></tr>
<tr><td align="left"><a id="configure_make-lib_source"></a>lib_source</td><td align="left">Label with source code to build. Typically a filegroup for the source of remote repository. Mandatory.</td><td align="left"><a href="https://bazel.build/docs/build-ref.html#labels">Label</a></td><td align="left">required</td><td align="left"></td></tr>
@ -683,7 +690,7 @@ configure_make(<a href="flatten.html#configure_make-name">name</a>, <a href="fla
<h2 id="make-1"><a class="header" href="#make-1">make</a></h2>
<pre>
make(<a href="flatten.html#make-name">name</a>, <a href="flatten.html#make-additional_inputs">additional_inputs</a>, <a href="flatten.html#make-additional_tools">additional_tools</a>, <a href="flatten.html#make-alwayslink">alwayslink</a>, <a href="flatten.html#make-args">args</a>, <a href="flatten.html#make-build_data">build_data</a>, <a href="flatten.html#make-copts">copts</a>, <a href="flatten.html#make-data">data</a>, <a href="flatten.html#make-defines">defines</a>,
<a href="flatten.html#make-deps">deps</a>, <a href="flatten.html#make-env">env</a>, <a href="flatten.html#make-install_prefix">install_prefix</a>, <a href="flatten.html#make-lib_name">lib_name</a>, <a href="flatten.html#make-lib_source">lib_source</a>, <a href="flatten.html#make-linkopts">linkopts</a>, <a href="flatten.html#make-out_bin_dir">out_bin_dir</a>, <a href="flatten.html#make-out_binaries">out_binaries</a>,
<a href="flatten.html#make-deps">deps</a>, <a href="flatten.html#make-env">env</a>, <a href="flatten.html#make-includes">includes</a>, <a href="flatten.html#make-install_prefix">install_prefix</a>, <a href="flatten.html#make-lib_name">lib_name</a>, <a href="flatten.html#make-lib_source">lib_source</a>, <a href="flatten.html#make-linkopts">linkopts</a>, <a href="flatten.html#make-out_bin_dir">out_bin_dir</a>, <a href="flatten.html#make-out_binaries">out_binaries</a>,
<a href="flatten.html#make-out_data_dirs">out_data_dirs</a>, <a href="flatten.html#make-out_headers_only">out_headers_only</a>, <a href="flatten.html#make-out_include_dir">out_include_dir</a>, <a href="flatten.html#make-out_interface_libs">out_interface_libs</a>, <a href="flatten.html#make-out_lib_dir">out_lib_dir</a>,
<a href="flatten.html#make-out_shared_libs">out_shared_libs</a>, <a href="flatten.html#make-out_static_libs">out_static_libs</a>, <a href="flatten.html#make-postfix_script">postfix_script</a>, <a href="flatten.html#make-targets">targets</a>, <a href="flatten.html#make-tool_prefix">tool_prefix</a>, <a href="flatten.html#make-tools_deps">tools_deps</a>)
</pre>
@ -701,6 +708,7 @@ make(<a href="flatten.html#make-name">name</a>, <a href="flatten.html#make-addit
<tr><td align="left"><a id="make-defines"></a>defines</td><td align="left">Optional compilation definitions to be passed to the dependencies of this library. They are NOT passed to the compiler, you should duplicate them in the configuration options.</td><td align="left">List of strings</td><td align="left">optional</td><td align="left">[]</td></tr>
<tr><td align="left"><a id="make-deps"></a>deps</td><td align="left">Optional dependencies to be copied into the directory structure. Typically those directly required for the external building of the library/binaries. (i.e. those that the external build system will be looking for and paths to which are provided by the calling rule)</td><td align="left"><a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a></td><td align="left">optional</td><td align="left">[]</td></tr>
<tr><td align="left"><a id="make-env"></a>env</td><td align="left">Environment variables to set during the build. <code>$(execpath)</code> macros may be used to point at files which are listed as <code>data</code>, <code>deps</code>, or <code>build_data</code>, but unlike with other rules, these will be replaced with absolute paths to those files, because the build does not run in the exec root. This attribute is subject to make variable substitution. No other macros are supported.Variables containing <code>PATH</code> (e.g. <code>PATH</code>, <code>LD_LIBRARY_PATH</code>, <code>CPATH</code>) entries will be prepended to the existing variable.</td><td align="left"><a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -&gt; String</a></td><td align="left">optional</td><td align="left">{}</td></tr>
<tr><td align="left"><a id="make-includes"></a>includes</td><td align="left">Optional list of include dirs to be passed to the dependencies of this library. They are NOT passed to the compiler, you should duplicate them in the configuration options.</td><td align="left">List of strings</td><td align="left">optional</td><td align="left">[]</td></tr>
<tr><td align="left"><a id="make-install_prefix"></a>install_prefix</td><td align="left">Install prefix, i.e. relative path to where to install the result of the build. Passed as an arg to &quot;make&quot; as PREFIX=&lt;install_prefix&gt;.</td><td align="left">String</td><td align="left">optional</td><td align="left">&quot;$$INSTALLDIR$$&quot;</td></tr>
<tr><td align="left"><a id="make-lib_name"></a>lib_name</td><td align="left">Library name. Defines the name of the install directory and the name of the static library, if no output files parameters are defined (any of static_libraries, shared_libraries, interface_libraries, binaries_names) Optional. If not defined, defaults to the target's name.</td><td align="left">String</td><td align="left">optional</td><td align="left">&quot;&quot;</td></tr>
<tr><td align="left"><a id="make-lib_source"></a>lib_source</td><td align="left">Label with source code to build. Typically a filegroup for the source of remote repository. Mandatory.</td><td align="left"><a href="https://bazel.build/docs/build-ref.html#labels">Label</a></td><td align="left">required</td><td align="left"></td></tr>
@ -747,9 +755,9 @@ native_tool_toolchain(<a href="flatten.html#native_tool_toolchain-name">name</a>
<h2 id="ninja-1"><a class="header" href="#ninja-1">ninja</a></h2>
<pre>
ninja(<a href="flatten.html#ninja-name">name</a>, <a href="flatten.html#ninja-additional_inputs">additional_inputs</a>, <a href="flatten.html#ninja-additional_tools">additional_tools</a>, <a href="flatten.html#ninja-alwayslink">alwayslink</a>, <a href="flatten.html#ninja-args">args</a>, <a href="flatten.html#ninja-build_data">build_data</a>, <a href="flatten.html#ninja-copts">copts</a>, <a href="flatten.html#ninja-data">data</a>, <a href="flatten.html#ninja-defines">defines</a>,
<a href="flatten.html#ninja-deps">deps</a>, <a href="flatten.html#ninja-directory">directory</a>, <a href="flatten.html#ninja-env">env</a>, <a href="flatten.html#ninja-lib_name">lib_name</a>, <a href="flatten.html#ninja-lib_source">lib_source</a>, <a href="flatten.html#ninja-linkopts">linkopts</a>, <a href="flatten.html#ninja-out_bin_dir">out_bin_dir</a>, <a href="flatten.html#ninja-out_binaries">out_binaries</a>, <a href="flatten.html#ninja-out_data_dirs">out_data_dirs</a>,
<a href="flatten.html#ninja-out_headers_only">out_headers_only</a>, <a href="flatten.html#ninja-out_include_dir">out_include_dir</a>, <a href="flatten.html#ninja-out_interface_libs">out_interface_libs</a>, <a href="flatten.html#ninja-out_lib_dir">out_lib_dir</a>, <a href="flatten.html#ninja-out_shared_libs">out_shared_libs</a>,
<a href="flatten.html#ninja-out_static_libs">out_static_libs</a>, <a href="flatten.html#ninja-postfix_script">postfix_script</a>, <a href="flatten.html#ninja-targets">targets</a>, <a href="flatten.html#ninja-tool_prefix">tool_prefix</a>, <a href="flatten.html#ninja-tools_deps">tools_deps</a>)
<a href="flatten.html#ninja-deps">deps</a>, <a href="flatten.html#ninja-directory">directory</a>, <a href="flatten.html#ninja-env">env</a>, <a href="flatten.html#ninja-includes">includes</a>, <a href="flatten.html#ninja-lib_name">lib_name</a>, <a href="flatten.html#ninja-lib_source">lib_source</a>, <a href="flatten.html#ninja-linkopts">linkopts</a>, <a href="flatten.html#ninja-out_bin_dir">out_bin_dir</a>, <a href="flatten.html#ninja-out_binaries">out_binaries</a>,
<a href="flatten.html#ninja-out_data_dirs">out_data_dirs</a>, <a href="flatten.html#ninja-out_headers_only">out_headers_only</a>, <a href="flatten.html#ninja-out_include_dir">out_include_dir</a>, <a href="flatten.html#ninja-out_interface_libs">out_interface_libs</a>, <a href="flatten.html#ninja-out_lib_dir">out_lib_dir</a>,
<a href="flatten.html#ninja-out_shared_libs">out_shared_libs</a>, <a href="flatten.html#ninja-out_static_libs">out_static_libs</a>, <a href="flatten.html#ninja-postfix_script">postfix_script</a>, <a href="flatten.html#ninja-targets">targets</a>, <a href="flatten.html#ninja-tool_prefix">tool_prefix</a>, <a href="flatten.html#ninja-tools_deps">tools_deps</a>)
</pre>
<p>Rule for building external libraries with <a href="https://ninja-build.org/">Ninja</a>.</p>
<p><strong>ATTRIBUTES</strong></p>
@ -766,6 +774,7 @@ ninja(<a href="flatten.html#ninja-name">name</a>, <a href="flatten.html#ninja-ad
<tr><td align="left"><a id="ninja-deps"></a>deps</td><td align="left">Optional dependencies to be copied into the directory structure. Typically those directly required for the external building of the library/binaries. (i.e. those that the external build system will be looking for and paths to which are provided by the calling rule)</td><td align="left"><a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a></td><td align="left">optional</td><td align="left">[]</td></tr>
<tr><td align="left"><a id="ninja-directory"></a>directory</td><td align="left">A directory to pass as the <code>-C</code> argument. The rule will always use the root directory of the <code>lib_sources</code> attribute if this attribute is not set</td><td align="left">String</td><td align="left">optional</td><td align="left">&quot;&quot;</td></tr>
<tr><td align="left"><a id="ninja-env"></a>env</td><td align="left">Environment variables to set during the build. <code>$(execpath)</code> macros may be used to point at files which are listed as <code>data</code>, <code>deps</code>, or <code>build_data</code>, but unlike with other rules, these will be replaced with absolute paths to those files, because the build does not run in the exec root. This attribute is subject to make variable substitution. No other macros are supported.Variables containing <code>PATH</code> (e.g. <code>PATH</code>, <code>LD_LIBRARY_PATH</code>, <code>CPATH</code>) entries will be prepended to the existing variable.</td><td align="left"><a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -&gt; String</a></td><td align="left">optional</td><td align="left">{}</td></tr>
<tr><td align="left"><a id="ninja-includes"></a>includes</td><td align="left">Optional list of include dirs to be passed to the dependencies of this library. They are NOT passed to the compiler, you should duplicate them in the configuration options.</td><td align="left">List of strings</td><td align="left">optional</td><td align="left">[]</td></tr>
<tr><td align="left"><a id="ninja-lib_name"></a>lib_name</td><td align="left">Library name. Defines the name of the install directory and the name of the static library, if no output files parameters are defined (any of static_libraries, shared_libraries, interface_libraries, binaries_names) Optional. If not defined, defaults to the target's name.</td><td align="left">String</td><td align="left">optional</td><td align="left">&quot;&quot;</td></tr>
<tr><td align="left"><a id="ninja-lib_source"></a>lib_source</td><td align="left">Label with source code to build. Typically a filegroup for the source of remote repository. Mandatory.</td><td align="left"><a href="https://bazel.build/docs/build-ref.html#labels">Label</a></td><td align="left">required</td><td align="left"></td></tr>
<tr><td align="left"><a id="ninja-linkopts"></a>linkopts</td><td align="left">Optional link options to be passed up to the dependencies of this library</td><td align="left">List of strings</td><td align="left">optional</td><td align="left">[]</td></tr>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long