---
nav: docs
---

<!DOCTYPE html>
<html lang="en" itemscope itemtype="https://schema.org/WebPage">
  {% include head.html %}
  <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-lg-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">
            <ul class="sidebar-nav">
              <li><a href="/versions/{{ site.version }}/bazel-overview.html">Bazel Overview</a></li>

              <li>
                <a class="sidebar-nav-heading" data-toggle="collapse"
                    href="#installing-menu" aria-expanded="false"
                    aria-controls="installing-menu">
                  Installing <span class="caret"></span>
                </a>
                <ul class="collapse sidebar-nav sidebar-submenu" id="installing-menu">
                  <li><a href="/versions/{{ site.version }}/install.html">Installing Bazel</a></li>
                  <li><a href="/versions/{{ site.version }}/install-ubuntu.html">Installing Bazel on Ubuntu</a></li>
                  <li><a href="/versions/{{ site.version }}/install-redhat.html">Installing Bazel on Fedora and CentOS</a></li>
                  <li><a href="/versions/{{ site.version }}/install-os-x.html">Installing Bazel on macOS (OS X)</a></li>
                  <li><a href="/versions/{{ site.version }}/install-windows.html">Installing Bazel on Windows</a></li>
                  <li><a href="/versions/{{ site.version }}/install-compile-source.html">Compile Bazel from Source</a></li>
                </ul>
              </li>

              <li><a href="/versions/{{ site.version }}/getting-started.html">Getting Started</a></li>

              <li>
                <a class="sidebar-nav-heading" data-toggle="collapse"
                    href="#tutorial-menu" aria-expanded="false"
                    aria-controls="tutorial-menu">
                  Tutorial <span class="caret"></span>
                </a>
                <ul class="collapse sidebar-nav sidebar-submenu" id="tutorial-menu">
                  <li><a href="/versions/{{ site.version }}/tutorial/java.html">Build a Java Project</a></li>
                  <li><a href="/versions/{{ site.version }}/tutorial/cpp.html">Build a C++ Project</a></li>
                  <li><a href="/versions/{{ site.version }}/tutorial/android-app.html">Build an Android App</a></li>
                  <li><a href="/versions/{{ site.version }}/tutorial/ios-app.html">Build an iOS App</a></li>
                </ul>
              </li>
              <li><a href="/versions/{{ site.version }}/ide.html">IDE Integration</a></li>
            </ul>
            <h3>Using Bazel</h3>
            <ul class="sidebar-nav">
              <li><a href="/versions/{{ site.version }}/build-ref.html">Concepts and Terminology</a></li>
              <li><a href="/versions/{{ site.version }}/user-manual.html">User Manual</a></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/{{ site.version }}/bazel-and-cpp.html">C++ and Bazel</a></li>
                  <li><a href="/versions/{{ site.version }}/cpp-use-cases.html">Common C++ Use Cases</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/{{ site.version }}/bazel-and-java.html">Java and Bazel</a></li>
                  <li><a href="/versions/{{ site.version }}/migrate-maven.html">Migrating from Maven to Bazel</a></li>
                  <li><a href="/versions/{{ site.version }}/generate-workspace.html">Generate External Dependencies from Maven</a></li>
                </ul>
              </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/{{ site.version }}/bazel-and-android.html">Android and Bazel</a></li>
                  <li><a href="/versions/{{ site.version }}/mobile-install.html">mobile-install</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/{{ site.version }}/bazel-and-apple.html">Apple apps and Bazel</a></li>
                  <li><a href="/versions/{{ site.version }}/migrate-xcode.html">Migrating from Xcode to Bazel</a></li>
                </ul>
              </li>

              <li><a href="/versions/{{ site.version }}/test-encyclopedia.html">Writing Tests</a></li>
              <li><a href="/versions/{{ site.version }}/query.html">Query Language</a></li>
              <li><a href="/versions/{{ site.version }}/query-how-to.html">Query How-To</a></li>
              <li><a href="/versions/{{ site.version }}/external.html">External Dependencies</a></li>
              <li><a href="/versions/{{ site.version }}/command-line-reference.html">Command-line Reference</a></li>
              <li><a href="/versions/{{ site.version }}/output_directories.html">Output Directories</a></li>
              <li><a href="/versions/{{ site.version }}/windows.html">Bazel on Windows</a></li>
              <li><a href="/versions/{{ site.version }}/best-practices.html">Best Practices</a></li>
              <li><a href="/versions/{{ site.version }}/build-event-protocol.html">Build Event Protocol</a></li>
              <li><a href="/versions/{{ site.version }}/platforms.html">Platforms</a></li>
              <li><a href="/versions/{{ site.version }}/toolchains.html">Toolchains</a></li>
            </ul>
            {% include be-nav.html %}
            <h3>Extensions</h3>
            <ul class="sidebar-nav">
              <li><a href="/versions/{{ site.version }}/skylark/concepts.html">Overview</a></li>

              <li>
                <a class="sidebar-nav-heading" data-toggle="collapse"
                    href="#extensions-tutorials" aria-expanded="false"
                    aria-controls="extensions-tutorials">
                  Tutorials <span class="caret"></span>
                </a>
                <ul class="collapse sidebar-nav sidebar-submenu" id="extensions-tutorials">
                  <li><a href="/versions/{{ site.version }}/skylark/tutorial-sharing-variables.html">Sharing variables</a></li>
                  <li><a href="/versions/{{ site.version }}/skylark/tutorial-creating-a-macro.html">Creating a macro</a></li>
                  <li><a href="/versions/{{ site.version }}/skylark/cookbook.html">Examples</a></li>
                </ul>
              </li>

              <li>
                <a class="sidebar-nav-heading" data-toggle="collapse"
                    href="#extensions-concepts" aria-expanded="false"
                    aria-controls="extensions-concepts">
                  Concepts <span class="caret"></span>
                </a>
                <ul class="collapse sidebar-nav sidebar-submenu" id="extensions-concepts">
                  <li><a href="/versions/{{ site.version }}/skylark/macros.html">Macros</a></li>
                  <li><a href="/versions/{{ site.version }}/skylark/rules.html">Rules</a></li>
                  <li><a href="/versions/{{ site.version }}/skylark/depsets.html">Depsets</a></li>
                  <li><a href="/versions/{{ site.version }}/skylark/aspects.html">Aspects</a></li>
                  <li><a href="/versions/{{ site.version }}/skylark/repository_rules.html">Repository rules</a></li>
                  <li><a href="/versions/{{ site.version }}/rule-challenges.html">Challenges of writing rules</a></li>
                  <li><a href="/versions/{{ site.version }}/skylark/backward-compatibility.html">Backward compatibility</a></li>
                </ul>
              </li>

              <li><a href="/versions/{{ site.version }}/skylark/deploying.html">Packaging rules</a></li>
              <li><a href="https://skydoc.bazel.build" target="_blank">Documenting rules</a></li>
              <li><a href="/versions/{{ site.version }}/skylark/performance.html">Performance</a></li>
              <li><a href="/versions/{{ site.version }}/skylark/build-style.html">Style guide for BUILD files</a></li>
              <li><a href="/versions/{{ site.version }}/skylark/bzl-style.html">Style guide for bzl files</a></li>

              <li><a href="/versions/{{ site.version }}/skylark/lib/skylark-overview.html">Reference</a></li>
              <li><a href="/versions/{{ site.version }}/skylark/language.html">Language</a></li>
            </ul>
            <h3>Experimental</h3>
            <ul class="sidebar-nav">
              <li><a href="/versions/{{ site.version }}/experimental.html">About experimental features</a></li>
              <li><a href="/versions/{{ site.version }}/migrate-cocoapods.html">Converting CocoaPods dependencies</a></li>
            </ul>
          </nav>
        </div>
        <div class="col-lg-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 !== 'bazel-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>
