blob: f9db113b28d06380788d7411a7a2cd1954938863 [file] [log] [blame]
<html devsite>
<head>
<meta name="project_path" value="/_project.yaml">
<meta name="book_path" value="/versions/7.5.0/_book.yaml">
</head>
<body>
<h1 class="page-title">Bazel BUILD Encyclopedia of Functions</h1>
{% dynamic setvar source_file "src/main/java/com/google/devtools/build/docgen/templates/be/overview.vm" %}
{% dynamic setvar version "7.5.0" %}
{% dynamic setvar original_path "/reference/be/overview" %}
{% include "_buttons.html" %}
<h2>Concepts and terminology</h2>
<ul>
<li>
<a href="/versions/7.5.0/reference/be/common-definitions">Common definitions</a>
<ul>
<li><a href="/versions/7.5.0/reference/be/common-definitions#sh-tokenization">Bourne shell tokenization</a></li>
<li><a href="/versions/7.5.0/reference/be/common-definitions#label-expansion">Label expansion</a></li>
<li><a href="/versions/7.5.0/reference/be/common-definitions#typical-attributes">Typical attributes for most rules</a></li>
<li><a href="/versions/7.5.0/reference/be/common-definitions#common-attributes">Common attributes for all rules</a></li>
<li><a href="/versions/7.5.0/reference/be/common-definitions#common-attributes-tests">Common attributes for tests</a></li>
<li><a href="/versions/7.5.0/reference/be/common-definitions#common-attributes-binaries">Common attributes for binaries</a></li>
<li><a href="/versions/7.5.0/reference/be/common-definitions#configurable-attributes">Configurable attributes</a></li>
<li><a href="/versions/7.5.0/reference/be/common-definitions#implicit-outputs">Implicit output targets</a></li>
</ul>
</li>
<li>
<a href="/versions/7.5.0/reference/be/make-variables">"Make" variables</a>
<ul class="be-toc">
<li><a href="/versions/7.5.0/reference/be/make-variables#use">Use</a></li>
</ul>
</li>
</ul>
<h2>Functions</h2>
<ul class="be-toc">
<li><a href="/versions/7.5.0/reference/be/functions.html#package">package</a></li>
<li><a href="/versions/7.5.0/reference/be/functions.html#package_group">package_group</a></li>
<li><a href="/versions/7.5.0/reference/be/functions.html#exports_files">exports_files</a></li>
<li><a href="/versions/7.5.0/reference/be/functions.html#glob">glob</a></li>
<li><a href="/versions/7.5.0/reference/be/functions.html#select">select</a></li>
<li><a href="/versions/7.5.0/rules/lib/globals/workspace#workspace">workspace</a></li>
</ul>
<h2>Rules</h2>
Native rules ship with the Bazel binary and do not require a <code>load</code> statement.
Native rules are available globally in BUILD files. In .bzl files, you can find them in
the <code>native</code> module.
For non-native Starlark rules that ship separately from Bazel, see the list of
<a href="/versions/7.5.0/rules/rules#recommended-rules">recommended rules</a>.
<h3>Language-specific native rules</h3>
<table class="table table-condensed table-striped" summary="Table of rules sorted by language">
<thead>
<tr>
<th>Language</th>
<th>Binary rules</th>
<th>Library rules</th>
<th>Test rules</th>
<th>Other rules</th>
</tr>
</thead>
<tbody>
<tr>
<td class="lang">Android</td>
<td>
<a href="android.html#android_binary">android_binary</a>
<br />
</td>
<td>
<a href="android.html#aar_import">aar_import</a>
<br />
<a href="android.html#android_library">android_library</a>
<br />
</td>
<td>
<a href="android.html#android_instrumentation_test">android_instrumentation_test</a>
<br />
<a href="android.html#android_local_test">android_local_test</a>
<br />
</td>
<td>
<a href="android.html#android_device">android_device</a>
<br />
<a href="android.html#android_ndk_repository">android_ndk_repository</a>
<br />
<a href="android.html#android_sdk_repository">android_sdk_repository</a>
<br />
</td>
</tr>
<tr>
<td class="lang">C / C++</td>
<td>
<a href="c-cpp.html#cc_binary">cc_binary</a>
<br />
</td>
<td>
<a href="c-cpp.html#cc_import">cc_import</a>
<br />
<a href="c-cpp.html#cc_library">cc_library</a>
<br />
<a href="c-cpp.html#cc_proto_library">cc_proto_library</a>
<br />
<a href="c-cpp.html#cc_shared_library">cc_shared_library</a>
<br />
<a href="c-cpp.html#cc_static_library">cc_static_library</a>
<br />
<a href="c-cpp.html#fdo_prefetch_hints">fdo_prefetch_hints</a>
<br />
<a href="c-cpp.html#fdo_profile">fdo_profile</a>
<br />
<a href="c-cpp.html#memprof_profile">memprof_profile</a>
<br />
<a href="c-cpp.html#propeller_optimize">propeller_optimize</a>
<br />
</td>
<td>
<a href="c-cpp.html#cc_test">cc_test</a>
<br />
</td>
<td>
<a href="c-cpp.html#cc_toolchain">cc_toolchain</a>
<br />
<a href="c-cpp.html#cc_toolchain_suite">cc_toolchain_suite</a>
<br />
</td>
</tr>
<tr>
<td class="lang">Java</td>
<td>
<a href="java.html#java_binary">java_binary</a>
<br />
</td>
<td>
<a href="java.html#java_import">java_import</a>
<br />
<a href="java.html#java_library">java_library</a>
<br />
<a href="java.html#java_lite_proto_library">java_lite_proto_library</a>
<br />
<a href="java.html#java_proto_library">java_proto_library</a>
<br />
</td>
<td>
<a href="java.html#java_test">java_test</a>
<br />
</td>
<td>
<a href="java.html#java_package_configuration">java_package_configuration</a>
<br />
<a href="java.html#java_plugin">java_plugin</a>
<br />
<a href="java.html#java_runtime">java_runtime</a>
<br />
<a href="java.html#java_toolchain">java_toolchain</a>
<br />
</td>
</tr>
<tr>
<td class="lang">Objective-C</td>
<td>
</td>
<td>
<a href="objective-c.html#j2objc_library">j2objc_library</a>
<br />
<a href="objective-c.html#objc_import">objc_import</a>
<br />
<a href="objective-c.html#objc_library">objc_library</a>
<br />
</td>
<td>
</td>
<td>
<a href="objective-c.html#available_xcodes">available_xcodes</a>
<br />
<a href="objective-c.html#xcode_config">xcode_config</a>
<br />
<a href="objective-c.html#xcode_version">xcode_version</a>
<br />
</td>
</tr>
<tr>
<td class="lang">Protocol Buffer</td>
<td>
</td>
<td>
<a href="protocol-buffer.html#proto_lang_toolchain">proto_lang_toolchain</a>
<br />
<a href="protocol-buffer.html#proto_library">proto_library</a>
<br />
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td class="lang">Python</td>
<td>
<a href="python.html#py_binary">py_binary</a>
<br />
</td>
<td>
<a href="python.html#py_library">py_library</a>
<br />
</td>
<td>
<a href="python.html#py_test">py_test</a>
<br />
</td>
<td>
<a href="python.html#py_runtime">py_runtime</a>
<br />
</td>
</tr>
<tr>
<td class="lang">Shell</td>
<td>
<a href="shell.html#sh_binary">sh_binary</a>
<br />
</td>
<td>
<a href="shell.html#sh_library">sh_library</a>
<br />
</td>
<td>
<a href="shell.html#sh_test">sh_test</a>
<br />
</td>
<td>
</td>
</tr>
</tbody>
</table>
<h3>Language-agnostic native rules</h3>
<table class="table table-condensed table-striped" summary="Table of rules not specific to a programming language">
<thead>
<tr>
<th>Family</th>
<th>Rules</th>
</tr>
</thead>
<tbody>
<tr>
<td class="lang">Extra Actions</td>
<td>
<ul class="hlist">
<li> <a href="extra-actions.html#action_listener">action_listener</a>
<li> <a href="extra-actions.html#extra_action">extra_action</a>
</ul>
</td>
</tr>
<tr>
<td class="lang">General</td>
<td>
<ul class="hlist">
<li> <a href="general.html#alias">alias</a>
<li> <a href="general.html#config_setting">config_setting</a>
<li> <a href="general.html#filegroup">filegroup</a>
<li> <a href="general.html#genquery">genquery</a>
<li> <a href="general.html#genrule">genrule</a>
<li> <a href="general.html#starlark_doc_extract">starlark_doc_extract</a>
<li> <a href="general.html#test_suite">test_suite</a>
</ul>
</td>
</tr>
<tr>
<td class="lang">Platforms and Toolchains</td>
<td>
<ul class="hlist">
<li> <a href="platforms-and-toolchains.html#constraint_setting">constraint_setting</a>
<li> <a href="platforms-and-toolchains.html#constraint_value">constraint_value</a>
<li> <a href="platforms-and-toolchains.html#platform">platform</a>
<li> <a href="platforms-and-toolchains.html#toolchain">toolchain</a>
<li> <a href="platforms-and-toolchains.html#toolchain_type">toolchain_type</a>
</ul>
</td>
</tr>
<tr>
<td class="lang">Workspace</td>
<td>
<ul class="hlist">
<li> <a href="workspace.html#bind">bind</a>
<li> <a href="workspace.html#local_repository">local_repository</a>
<li> <a href="workspace.html#new_local_repository">new_local_repository</a>
</ul>
</td>
</tr>
</tbody>
</table>
</body>
</html>