blob: 516bdd48d6a5a6d4d1bdaef3b1f21ec3ccfecf09 [file] [log] [blame]
---
nav: docs
---
<!-- /versions/master/foo/bar -> ["master", "foo", "bar"] -->
<!-- /versions/0.12.3/baz.md -> ["0.12.3", "baz.md"] -->
{% assign versioned_url_parts = page.url | split: '/' | shift | shift %}
{% assign current_version = versioned_url_parts.first %}
{% assign version_components = current_version | split: '.' %}
{% if version_components.size < 2 %}
{% assign major_version = "master" %}
{% assign minor_version = "master" %}
{% else %}
{% assign major_version = version_components[0] | plus:0 %}
{% assign minor_version = version_components[1] | plus:0 %}
{% endif %}
<!DOCTYPE html>
<html lang="en" itemscope itemtype="https://schema.org/WebPage">
{% include head.html current_version=current_version %}
<body>
{% include header.html %}
<div class="container vpad">
<div class="row">
<div class="col-md-2">
<a class="btn btn-default btn-lg btn-block sidebar-toggle"
data-toggle="collapse" href="#sidebar-nav" aria-expanded="false"
aria-controls="sidebar-nav">
<i class="glyphicon glyphicon-menu-hamburger"></i> Navigation
</a>
<nav class="sidebar collapse" id="sidebar-nav">
<select onchange="location.href=this.value">
<option value="" selected disabled hidden>Version: {{ current_version }}</option>
{% for doc_version in site.doc_versions %}
<!-- reconstruct absolute url for the current page for each doc version -->
<option value="/{{ versioned_url_parts | shift | unshift: doc_version | unshift: 'versions' | join: '/' }}">
{{ doc_version }}
</option>
{% endfor %}
</select>
<h3>Home</h3>
<ul class="sidebar-nav">
<li><a href="/versions/{{ current_version }}/bazel-overview.html">Bazel overview</a></li>
<li><a href="/versions/{{ current_version }}/bazel-vision.html">Bazel vision</a></li>
<li><a href="/versions/{{ current_version }}/getting-started.html">Getting started</a></li>
<li><a href="/versions/{{ current_version }}/backward-compatibility.html">Backward compatibility</a></li>
</ul>
<h3>Installing Bazel</h3>
<ul class="sidebar-nav">
<li class="sidebar-nav">
<a href="/versions/{{ current_version }}/install.html">Installation overview</a>
</li>
<li>
<a class="sidebar-nav-heading" data-toggle="collapse"
href="#installing-menu" aria-expanded="false"
aria-controls="installing-menu">
Installation steps<span class="caret"></span>
</a>
<ul class="collapse sidebar-nav sidebar-submenu" id="installing-menu">
<li><a href="/versions/{{ current_version }}/install-ubuntu.html">Ubuntu</a></li>
<li><a href="/versions/{{ current_version }}/install-redhat.html">Fedora/CentOS</a></li>
<li><a href="/versions/{{ current_version }}/install-os-x.html">macOS</a></li>
<li><a href="/versions/{{ current_version }}/install-windows.html">Windows</a></li>
<li><a href="/versions/{{ current_version }}/install-compile-source.html">Compiling from source</a></li>
<li><a href="/versions/{{ current_version }}/completion.html">Command-line completion</a></li>
<li><a href="/versions/{{ current_version }}/ide.html">Integrating with IDEs</a></li>
</ul>
</li>
{% if major_version == "master" or major_version > 0 or minor_version > 28 %}
<li class="sidebar-nav">
<a href="/versions/{{ current_version }}/updating-bazel.html">Updating Bazel</a>
</li>
{% endif %}
</ul>
<h3>Tutorials</h3>
<ul class="sidebar-nav">
<li><a href="/versions/{{ current_version }}/tutorial/cpp.html">C++</a></li>
<li><a href="/versions/{{ current_version }}/tutorial/java.html">Java</a></li>
<li><a href="/versions/{{ current_version }}/tutorial/android-app.html">Android</a></li>
<li><a href="/versions/{{ current_version }}/tutorial/ios-app.html">iOS</a></li>
</ul>
<h3>Using Bazel</h3>
<ul class="sidebar-nav">
<li>
<a class="sidebar-nav-heading" data-toggle="collapse"
href="#using-menu" aria-expanded="false"
aria-controls="using-menu">
Concepts<span class="caret"></span>
</a>
<ul class="collapse sidebar-nav sidebar-submenu" id="using-menu">
<li><a href="/versions/{{ current_version }}/build-ref.html">Core concepts</a></li>
<li><a href="/versions/{{ current_version }}/external.html">External dependencies</a></li>
<li><a href="/versions/{{ current_version }}/configurable-attributes.html">Configurable attributes</a></li>
<li><a href="/versions/master/platforms-intro.html">Platforms and toolchains</a></li>
<li><a href="/versions/master/visibility.html">Visibility</a></li>
</ul>
</li>
<li>
<a class="sidebar-nav-heading" data-toggle="collapse"
href="#guides-menu" aria-expanded="false"
aria-controls="build-files-menu">
Guides<span class="caret"></span>
</a>
<ul class="collapse sidebar-nav sidebar-submenu" id="guides-menu">
<li><a href="/versions/{{ current_version }}/guide.html">Running Bazel</a></li>
<li><a href="/versions/{{ current_version }}/skylark/tutorial-creating-a-macro.html">Creating a macro</a></li>
<li><a href="/versions/{{ current_version }}/memory-saving-mode.html">Optimizing memory</a></li>
<li><a href="/versions/{{ current_version }}/windows.html">Building on Windows</a></li>
</ul>
</li>
{% if major_version != 0 %}
<li><a href="/versions/{{ current_version }}/rules.html">Rules</a></li>
{% endif %}
<li>
<a class="sidebar-nav-heading" data-toggle="collapse"
href="#query-menu" aria-expanded="false"
aria-controls="query-menu">
Queries<span class="caret"></span>
</a>
<ul class="collapse sidebar-nav sidebar-submenu" id="query-menu">
<li><a href="/versions/{{ current_version }}/query-how-to.html">The query command</a></li>
<li><a href="/versions/{{ current_version }}/cquery.html">The cquery command</a></li>
<li><a href="/versions/{{ current_version }}/aquery.html">The aquery command</a></li>
<li><a href="/versions/{{ current_version }}/query.html">Query language</a></li>
</ul>
</li>
<li>
<a class="sidebar-nav-heading" data-toggle="collapse"
href="#best-practices-menu" aria-expanded="false"
aria-controls="best-practices-menu">
Best practices<span class="caret"></span>
</a>
<ul class="collapse sidebar-nav sidebar-submenu" id="best-practices-menu">
<li><a href="/versions/{{ current_version }}/best-practices.html">General best practices</a></li>
<li><a href="/versions/{{ current_version }}/skylark/tutorial-sharing-variables.html">Sharing BUILD variables</a></li>
</ul>
</li>
<li>
<a class="sidebar-nav-heading" data-toggle="collapse"
href="#remote-execution-menu" aria-expanded="false"
aria-controls="remote-execution-menu">
Remote execution<span class="caret"></span>
</a>
<ul class="collapse sidebar-nav sidebar-submenu" id="remote-execution-menu">
<li><a href="/versions/{{ current_version }}/remote-execution.html">Overview</a></li>
<li><a href="/versions/{{ current_version }}/remote-execution-rules.html">Guidelines</a></li>
<li>
<a class="sidebar-nav-heading" data-toggle="collapse"
href="#troubleshoot-remote-execution-menu" aria-expanded="false"
aria-controls="troubleshoot-remote-execution-menu">
Troubleshooting<span class="caret"></span>
</a>
<ul class="collapse sidebar-nav sidebar-submenu" id="troubleshoot-remote-execution-menu">
<li><a href="/versions/{{ current_version }}/remote-execution-sandbox.html">Troubleshooting with Bazel sandbox</a></li>
<li><a href="/versions/{{ current_version }}/workspace-log.html">Non-hermetic WORKSPACE rules</a></li>
<li><a href="/versions/{{ current_version }}/remote-execution-caching-debug.html">Debugging remote cache hits</a></li>
</ul>
</li>
<li><a href="/versions/{{ current_version }}/remote-execution-ci.html">Remote execution and CI</a></li>
</ul>
</li>
<li>
<a class="sidebar-nav-heading" data-toggle="collapse"
href="#remote-caching-menu" aria-expanded="false"
aria-controls="remote-caching-menu">
Remote caching<span class="caret"></span>
</a>
<ul class="collapse sidebar-nav sidebar-submenu" id="remote-caching-menu">
<li><a href="/versions/{{ current_version }}/remote-caching.html">Overview</a></li>
<li><a href="/versions/{{ current_version }}/remote-caching-debug.html">Debugging remote cache hits with local execution</a></li>
</ul>
</li>
{% if major_version == "master" or major_version > 1 or major_version == 1 and minor_version >= 1 %}
{% endif %}
</ul>
{% if major_version == 0 %}
<h4>Rules</h4>
<ul class="sidebar-nav">
<li><a href="/versions/{{ current_version }}/be/overview.html">Build encyclopedia</a></li>
<li>
<a class="sidebar-nav-heading" data-toggle="collapse"
href="#android-menu" aria-expanded="false"
aria-controls="android-menu">
Android<span class="caret"></span>
</a>
<ul class="collapse sidebar-nav sidebar-submenu" id="android-menu">
<li><a href="/versions/{{ current_version }}/tutorial/android-app.html">Tutorial</a></li>
<li><a href="/versions/{{ current_version }}/bazel-and-android.html">Android resources</a></li>
<li><a href="/versions/{{ current_version }}/mobile-install.html">Using mobile-install</a></li>
<li><a href="/versions/{{ current_version }}/android-instrumentation-test.html">Android instrumentation tests</a></li>
<li><a href="/versions/{{ current_version }}/android-ndk.html">Android NDK</a></li>
<li><a href="https://plugins.jetbrains.com/plugin/9185-bazel">Android Studio plugin</a></li>
</ul>
</li>
<li>
<a class="sidebar-nav-heading" data-toggle="collapse"
href="#apple-menu" aria-expanded="false"
aria-controls="apple-menu">
Apple<span class="caret"></span>
</a>
<ul class="collapse sidebar-nav sidebar-submenu" id="apple-menu">
<li><a href="/versions/{{ current_version }}/tutorial/ios-app.html">Tutorial</a></li>
<li><a href="/versions/{{ current_version }}/bazel-and-apple.html">Apple resources</a></li>
<li><a href="/versions/{{ current_version }}/migrate-xcode.html">Migrating from Xcode</a></li>
<li><a href="/versions/{{ current_version }}/migrate-cocoapods.html">Converting CocoaPods</a></li>
</ul>
</li>
<li>
<a class="sidebar-nav-heading" data-toggle="collapse"
href="#cpp-menu" aria-expanded="false"
aria-controls="cpp-menu">
C++<span class="caret"></span>
</a>
<ul class="collapse sidebar-nav sidebar-submenu" id="cpp-menu">
<li><a href="/versions/{{ current_version }}/tutorial/cpp.html">Tutorial</a></li>
<li><a href="/versions/{{ current_version }}/bazel-and-cpp.html">C++ resources</a></li>
<li><a href="/versions/{{ current_version }}/cpp-use-cases.html">C++ use cases</a></li>
<li>
<a href="/versions/{{ current_version }}/cc-toolchain-config-reference.html">
C++ Toolchain Configuration
</a>
</li>
<li>
<a href="/versions/{{ current_version }}/tutorial/cc-toolchain-config.html">
Tutorial: Configuring C++ Toolchains
</a>
</li>
<li>
<a href="/versions/{{ current_version }}/integrating-with-rules-cc.html">
Integrating with C++ rules
</a>
</li>
</ul>
</li>
<li>
<a class="sidebar-nav-heading" data-toggle="collapse"
href="#java-menu" aria-expanded="false"
aria-controls="java-menu">
Java<span class="caret"></span>
</a>
<ul class="collapse sidebar-nav sidebar-submenu" id="java-menu">
<li><a href="/versions/{{ current_version }}/tutorial/java.html">Tutorial</a></li>
<li><a href="/versions/{{ current_version }}/bazel-and-java.html">Java resources</a></li>
<li><a href="/versions/{{ current_version }}/migrate-maven.html">Migrating from Maven</a></li>
<li><a href="/versions/{{ current_version }}/generate-workspace.html">Converting Maven dependencies</a></li>
</ul>
</li>
<li>
<a class="sidebar-nav-heading" data-toggle="collapse"
href="#javascript-menu" aria-expanded="false"
aria-controls="javascript-menu">
JavaScript<span class="caret"></span>
</a>
<ul class="collapse sidebar-nav sidebar-submenu" id="javascript-menu">
<li><a href="/versions/{{ current_version }}/bazel-and-javascript.html">JavaScript resources</a></li>
<li><a href="/versions/{{ current_version }}/build-javascript.html">Building JavaScript</a></li>
</ul>
</li>
</ul>
{% endif %}
<h3>Reference</h3>
<ul class="sidebar-nav">
<li><a href="/versions/{{ current_version }}/user-manual.html">Commands and options</a></li>
<li><a href="/versions/{{ current_version }}/glossary.html">Glossary</a></li>
<li><a href="/versions/{{ current_version }}/be/overview.html">Build encyclopedia</a></li>
<li><a href="/versions/{{ current_version }}/test-encyclopedia.html">Test encyclopedia</a></li>
<li><a href="/versions/{{ current_version }}/command-line-reference.html">Command line reference</a></li>
<li>
<a class="sidebar-nav-heading" data-toggle="collapse"
href="#build-files-menu" aria-expanded="false"
aria-controls="build-files-menu">
BUILD files<span class="caret"></span>
</a>
<ul class="collapse sidebar-nav sidebar-submenu" id="build-files-menu">
<li><a href="/versions/{{ current_version }}/be/functions.html">Functions</a></li>
<li><a href="/versions/{{ current_version }}/be/common-definitions.html">Common rule definitions</a></li>
<li><a href="/versions/{{ current_version }}/be/make-variables.html">"Make" variables</a></li>
<li><a href="/versions/{{ current_version }}/skylark/build-style.html">BUILD style guide</a></li>
</ul>
</li>
<li><a href="/versions/{{ current_version }}/build-event-protocol.html">Build Event Protocol</a></li>
<li><a href="/versions/{{ current_version }}/output_directories.html">Output directory layout</a></li>
<li><a href="/versions/{{ current_version }}/platforms.html">Platforms</a></li>
<li><a href="/versions/{{ current_version }}/exec-groups.html">Execution Groups</a></li>
<li><a href="/versions/{{ current_version }}/toolchains.html">Toolchains</a></li>
</ul>
<h3>Extending Bazel</h3>
<ul class="sidebar-nav">
<li><a href="/versions/{{ current_version }}/skylark/concepts.html">Extension overview</a></li>
<li>
<a class="sidebar-nav-heading" data-toggle="collapse"
href="#starlark-concepts" aria-expanded="false"
aria-controls="starlark-concepts">
Concepts<span class="caret"></span>
</a>
<ul class="collapse sidebar-nav sidebar-submenu" id="starlark-concepts">
<li><a href="/versions/{{ current_version }}/skylark/macros.html">Macros</a></li>
<li><a href="/versions/{{ current_version }}/skylark/rules.html">Rules</a></li>
<li><a href="/versions/{{ current_version }}/skylark/depsets.html">Depsets</a></li>
<li><a href="/versions/{{ current_version }}/skylark/aspects.html">Aspects</a></li>
<li><a href="/versions/{{ current_version }}/skylark/repository_rules.html">Repository rules</a></li>
<li><a href="/versions/{{ current_version }}/skylark/config.html">Configurations</a></li>
</ul>
</li>
<li>
<a class="sidebar-nav-heading" data-toggle="collapse"
href="#starlark-practices" aria-expanded="false"
aria-controls="starlark-practices">
Best practices<span class="caret"></span>
</a>
<ul class="collapse sidebar-nav sidebar-submenu" id="starlark-practices">
<li><a href="/versions/{{ current_version }}/skylark/bzl-style.html">.bzl style guide</a></li>
<li><a href="/versions/{{ current_version }}/skylark/testing.html">Testing extensions</a></li>
<li><a href="https://github.com/bazelbuild/stardoc">Documenting rules with Stardoc</a></li>
<li><a href="https://github.com/bazelbuild/buildtools/tree/master/buildifier">Linting</a></li>
<li><a href="/versions/{{ current_version }}/skylark/performance.html">Optimizing performance</a></li>
<li><a href="/versions/{{ current_version }}/skylark/deploying.html">Deploying rules</a></li>
<li><a href="/versions/{{ current_version }}/skylark/windows_tips.html">Writing rules on Windows</a></li>
</ul>
</li>
<li><a href="https://github.com/bazelbuild/examples/tree/master/rules">Examples</a></li>
<li><a href="/versions/{{ current_version }}/skylark/lib/skylark-overview.html">Extensions API</a></li>
<li><a href="/versions/{{ current_version }}/skylark/faq.html">FAQ</a></li>
<li><a href="/versions/{{ current_version }}/skylark/language.html">Starlark language</a></li>
</ul>
</nav>
</div>
<div class="col-md-8">
<div class="content">
{{ content }}
</div>
</div>
<div class="col-md-2 sticky-sidebar">
<div class="right-sidebar">
<ul class="gh-links">
<li><a href="https://github.com/bazelbuild/bazel/issues/new?title=Documentation issue: {{ page.title }}&body=Documentation URL: https://docs.bazel.build{{ page.url }}&labels=type: documentation"><i class="fa fa-github"></i> Create issue</a></li>
<li id="gh-edit-list-item" class="default-hidden" aria-hidden="true"><a id="gh-edit" class="gh-edit default-hidden"><i class="fa fa-pencil" aria-hidden="true"></i> Edit this page</a></li>
</ul>
<script>
var versionDocsURLRegex = /\/versions\/[\w\.]+\/(.*)/;
var ghDocsBazeURL = 'https://github.com/bazelbuild/bazel/tree/master/site/docs/';
var editButton = document.getElementById('gh-edit');
var editButtonListItem = document.getElementById('gh-edit-list-item');
// if there is an edit button and we are not in the Build Encyclopedia
// or other generated files.
if (editButton
&& window.location.pathname.match(versionDocsURLRegex)
&& window.location.pathname.lastIndexOf('/be/') == -1
&& window.location.pathname.lastIndexOf('/repo/') == -1
&& window.location.pathname.lastIndexOf('/skylark/lib/') == -1
&& window.location.pathname.lastIndexOf('/command-line-reference.html') == -1) {
var docFile = window.location.pathname.match(versionDocsURLRegex)[1];
// some pages are not using markdown :(
if (docFile !== 'user-manual.html'
&& docFile !== 'build-ref.html'
&& docFile !== 'query.html'
&& docFile !== 'test-encyclopedia.html') {
docFile = docFile.replace('html', 'md');
}
editButton.href = ghDocsBazeURL + docFile;
editButton.style.visibility = 'visible';
editButtonListItem.style.visibility = 'visible';
}
</script>
{{ content | toc_only }}
</div>
</div>
</div>
</div>
<!-- Satisfaction Survey -->
<script async="" defer="" src="//www.google.com/insights/consumersurveys/async_survey?site=hihwpyy5e5kllsq62elzjrcgn4"></script>
{% include footer.html %}
</body>
</html>