---
nav: docs
version_prefix: /versions/master
---

<!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="{{ page.version_prefix }}/docs/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="{{ page.version_prefix }}/docs/install.html">Installing Bazel</a></li>
                  <li><a href="{{ page.version_prefix }}/docs/install-ubuntu.html">Installing Bazel on Ubuntu</a></li>
                  <li><a href="{{ page.version_prefix }}/docs/install-os-x.html">Installing Bazel on macOS (OS X)</a></li>
                  <li><a href="{{ page.version_prefix }}/docs/install-windows.html">Installing Bazel on Windows</a></li>
                  <li><a href="{{ page.version_prefix }}/docs/install-compile-source.html">Compile Bazel from Source</a></li>
                </ul>
              </li>

              <li><a href="{{ page.version_prefix }}/docs/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="{{ page.version_prefix }}/docs/tutorial/java.html">Introduction to Bazel: Build Java</a></li>
                  <li><a href="{{ page.version_prefix }}/docs/tutorial/cpp.html">Build C++</a></li>
                  <li>
                    <a class="sidebar-nav-heading" href="#app-menu"
                       data-toggle="collapse" aria-expanded="false" aria-controls="app-menu">
                      Build Mobile Application
                    </a>
                    <ul class="collapse sidebar-nav sidebar-submenu" id="app-menu">
                      <li><a href="{{ page.version_prefix }}/docs/tutorial/app.html">Introduction</a></li>
                      <li><a href="{{ page.version_prefix }}/docs/tutorial/environment.html">Set Up Your Environment</a></li>
                      <li><a href="{{ page.version_prefix }}/docs/tutorial/workspace.html">Set Up a Workspace</a></li>
                      <li><a href="{{ page.version_prefix }}/docs/tutorial/android-app.html">Build an Android App</a></li>
                      <li><a href="{{ page.version_prefix }}/docs/tutorial/ios-app.html">Build an iOS App</a></li>
                      <li><a href="{{ page.version_prefix }}/docs/tutorial/backend-server.html">Build the Backend Server</a></li>
                      <li><a href="{{ page.version_prefix }}/docs/tutorial/review.html">Review</a></li>
                    </ul>
                  </li>
                </ul>
              </li>
              <li><a href="{{ page.version_prefix }}/docs/support.html">Get Support</a></li>
            </ul>
            <h3>Using Bazel</h3>
            <ul class="sidebar-nav">
              <li><a href="{{ page.version_prefix }}/docs/build-ref.html">BUILD files</a></li>
              <li><a href="{{ page.version_prefix }}/docs/bazel-user-manual.html">User Manual</a></li>
              <li><a href="{{ page.version_prefix }}/docs/test-encyclopedia.html">Writing Tests</a></li>
              <li><a href="{{ page.version_prefix }}/docs/query.html">Query Language</a></li>
              <li><a href="{{ page.version_prefix }}/docs/query-how-to.html">Query How-To</a></li>
              <li><a href="{{ page.version_prefix }}/docs/mobile-install.html">mobile-install (Android)</a></li>
              <li><a href="{{ page.version_prefix }}/docs/external.html">External Dependencies</a></li>
              <li><a href="{{ page.version_prefix }}/docs/command-line-reference.html">Command-line Reference</a></li>
              <li><a href="{{ page.version_prefix }}/docs/output_directories.html">Output Directories</a></li>
              <li><a href="{{ page.version_prefix }}/docs/windows.html">Bazel on Windows</a></li>
              <li><a href="{{ page.version_prefix }}/docs/best-practices.html">Best Practices</a></li>
            </ul>
            {% include be-nav.html %}
            <h3>Extensions</h3>
            <ul class="sidebar-nav">
              <li><a href="{{ page.version_prefix }}/docs/skylark/concepts.html">Overview</a></li>
              <li><a href="{{ page.version_prefix }}/docs/skylark/language.html">Language</a></li>
              <li><a href="{{ page.version_prefix }}/docs/skylark/macros.html">Macros</a></li>
              <li><a href="{{ page.version_prefix }}/docs/skylark/rules.html">Rules</a></li>
              <li><a href="{{ page.version_prefix }}/docs/skylark/depsets.html">Depsets</a></li>
              <li><a href="{{ page.version_prefix }}/docs/skylark/aspects.html">Aspects</a></li>
              <li><a href="{{ page.version_prefix }}/docs/skylark/repository_rules.html">Repository rules</a></li>
              <li><a href="{{ page.version_prefix }}/docs/rule-challenges.html">Challenges of writing rules</a></li>
              <li><a href="{{ page.version_prefix }}/docs/skylark/lib/skylark-overview.html">Reference</a></li>
              <li><a href="{{ page.version_prefix }}/docs/skylark/cookbook.html">Examples</a></li>
              <li><a href="{{ page.version_prefix }}/docs/skylark/deploying.html">Packaging rules</a></li>
              <li><a href="https://skydoc.bazel.build" target="_blank">Documenting rules</a></li>
              <li><a href="{{ page.version_prefix }}/docs/skylark/build-style.html">Style guide for BUILD files</a></li>
              <li><a href="{{ page.version_prefix }}/docs/skylark/bzl-style.html">Style guide for bzl files</a></li>
            </ul>
          </nav>
        </div>
        <div class="col-lg-9">
          {{ content }}
        </div>
      </div>
    </div>

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