Building Bazel on Windows
=========================

TODO(bazel-team): Publish this file when Windows support is mature enough.

Warning: Windows support on Bazel is still at a very early stage, many things
will not work.

Since Bazel is written in Java, you will need a recent
[JDK](http://www.oracle.com/technetwork/java/javase/downloads/index.html).

The Windows build process uses MSYS2, a POSIX-like environment on Windows. Grab
the [installer](http://sourceforge.net/projects/msys2/files/Base/x86_64/)
or an archived version and install.

Next, open an MSYS2 shell (not the mingw32 or the mingw64 shell) either through
a shortcut or by running the `msys2_shell.bat`. Install the dependencies:

    pacman -S libarchive-devel gcc mingw-w64-x86_64-gcc zip unzip git

The msys2 gcc will be used for building Bazel itself, the mingw-w64 gcc will
be used by Bazel for building C++.

Grab the Bazel source code:

    git clone https://github.com/google/bazel.git

Then, to build:

    cd bazel && ./compile.sh

If all goes well, you should find the binary in `output/bazel`.


Running Bazel on Windows
========================

Running Bazel on Windows requires a few additional steps due to the differences
between the native POSIX environment and the Windows environment.

First, since Blaze uses symlinks, the current Windows user needs to have the
permission to create symlinks. This permission is off by default for
non-administrator users. The easiest workaround is to run the msys2 shell
as administrator (right click shortcut -> Run As Administrator).

Second, you need to set some environment variables:

    export MSYS=winsymlinks:nativestrict  # Enable symlink support in msys2.
    export BAZEL_SH="C:/msys64/usr/bin/bash"
    export JAVA_HOME="$(ls -d C:/Program\ Files/Java/jdk* | sort | tail -n 1)"

Third, you need to set some Bazel options. It's easiest to put them into your
`.bazelrc`:

    cat > ~/.bazelrc << EOF
    startup --batch  # Server mode is not yet supported on Windows
    build --compiler=windows_msys64_mingw64
    build --nobuild_runfile_links  # Not ported to Windows yet.
    EOF

This should be enough to run Bazel:

    cd base_workspace &&
    ../output/bazel build //cpp:hello-world
