---
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 %}

<!DOCTYPE html>
<html lang="en" itemscope itemtype="https://schema.org/WebPage">
  {% include head.html current_version=current_version %}
  <body>
    {% include header.html %}

    <div class="page-title-bar">
      <div class="container">
        <h1>Documentation</h1>
      </div>
    </div>

    <div class="container vpad">
      <div class="row">
        <div class="col-md-3">
          <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>Using Bazel</h3>
            <ul class="sidebar-nav">

              <li>
                <a class="sidebar-nav-heading" data-toggle="collapse"
                    href="#installing-menu" aria-expanded="false"
                    aria-controls="installing-menu">
                  Installing Bazel<span class="caret"></span>
                </a>
                <ul class="collapse sidebar-nav sidebar-submenu" id="installing-menu">
                   <li><a href="/versions/{{ current_version }}/install.html">Installation Overview</a></li>
                   <li><a href="/versions/{{ current_version }}/install-ubuntu.html">Installing on Ubuntu</a></li>
                   <li><a href="/versions/{{ current_version }}/install-redhat.html">Installing on Fedora/CentOS</a></li>
                   <li><a href="/versions/{{ current_version }}/install-os-x.html">Installing on macOS</a></li>
                   <li><a href="/versions/{{ current_version }}/install-windows.html">Installing on 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>

              <li>
                <a class="sidebar-nav-heading" data-toggle="collapse"
                    href="#tutorials-menu" aria-expanded="false"
                    aria-controls="tutorials-menu">
                  Tutorials<span class="caret"></span>
                </a>
                <ul class="collapse sidebar-nav sidebar-submenu" id="tutorials-menu">
                   <li><a href="/versions/{{ current_version }}/tutorial/java.html">Building a Java Project</a></li>
                   <li><a href="/versions/{{ current_version }}/tutorial/cpp.html">Building a C++ Project</a></li>
                   <li><a href="/versions/{{ current_version }}/tutorial/android-app.html">Building an Android App</a></li>
                   <li><a href="/versions/{{ current_version }}/tutorial/ios-app.html">Building an iOS App</a></li>
                   <li><a href="/versions/{{ current_version }}/skylark/tutorial-sharing-variables.html">Sharing Variables</a></li>
                   <li><a href="/versions/{{ current_version }}/skylark/tutorial-creating-a-macro.html">Creating a Macro</a></li>
                 </ul>
              </li>

              <li><a href="/versions/{{ current_version }}/build-ref.html">Bazel Concepts</a></li>
              <li><a href="/versions/{{ current_version }}/guide.html">User's Guide</a></li>
              <li><a href="/versions/{{ current_version }}/external.html">External Dependencies</a></li>

              <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">Bazel query</a></li>
                  <li><a href="/versions/{{ current_version }}/cquery.html">Bazel cquery</a></li>
                  <li><a href="/versions/{{ current_version }}/aquery.html">Bazel aquery</a></li>
                  <li><a href="/versions/{{ current_version }}/query.html">Query Language</a></li>
                </ul>
              </li>

              <li><a href="/versions/{{ current_version }}/configurable-attributes.html">Configurable Attributes</a></li>
              <li><a href="/versions/{{ current_version }}/best-practices.html">Best Practices</a></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">Remote Execution Overview</a></li>
                   <li><a href="/versions/{{ current_version }}/remote-execution-rules.html">Guidelines for Remote Execution</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 Remote Execution<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 Remote Execution with Bazel Sandbox</a></li>
                         <li><a href="/versions/{{ current_version }}/workspace-log.html">Finding non-hermetic behavior in WORKSPACE rules</a></li>
                         <li><a href="/versions/{{ current_version }}/remote-execution-caching-debug.html">Debugging Remote Cache Hit Rate</a></li>
                      </ul>
                  </li>
                   <li><a href="/versions/{{ current_version }}/remote-execution-ci.html">Configuring Bazel CI for Remote Execution Rule Testing</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">Remote Caching Overview</a></li>
                     <li><a href="/versions/{{ current_version }}/remote-caching-debug.html">Debugging Remote Cache Hit Rate for Local Execution</a></li>
                  </ul>
              </li>
             </ul>

           <h3>Rules</h3>
           <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 }}/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 }}/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 }}/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 }}/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>

           <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 }}/skylark/build-style.html">BUILD Style Guide</a></li>
             <li><a href="/versions/{{ current_version }}/command-line-reference.html">Command Line Reference</a></li>
             <li><a href="/versions/{{ current_version }}/test-encyclopedia.html">Writing Tests</a></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 }}/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/faq.html">FAQ</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</a></li>
                  <li><a href="https://skydoc.bazel.build" target="_blank">Documenting Rules</a></li>
                  <li><a href="/versions/{{ current_version }}/skylark/skylint.html">Linter</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>
                </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">API Reference</a></li>
              <li><a href="/versions/{{ current_version }}/skylark/language.html">Starlark Language</a></li>
            </ul>
          </nav>
        </div>

        <div class="col-md-9">
          <a id="gh-edit" class="gh-edit default-hidden"><i class="fa fa-pencil" aria-hidden="true"></i> Edit</a>
          <script>
            var versionDocsURLRegex = /\/versions\/[\w\.]+\/(.*)/;
            var ghDocsBazeURL = 'https://github.com/bazelbuild/bazel/tree/master/site/docs/';
            var editButton = document.getElementById('gh-edit');
            // if there is an edit button and we are not in the Build Encyclopedia
            if (editButton
                && window.location.pathname.match(versionDocsURLRegex)
                && window.location.pathname.lastIndexOf('/be/') == -1
                && window.location.pathname.lastIndexOf('/skylark/lib/') == -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';
            }
          </script>

          {{ content }}
        </div>
      </div>
    </div>

    <!-- Satisfaction Survey -->
    <script async="" defer="" src="//survey.g.doubleclick.net/async_survey?site=oohdpic4fyfp3jcnym6aqkdf3e"></script>

    {% include footer.html %}
  </body>
</html>

