---
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">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>
            </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>
