aboutsummaryrefslogtreecommitdiffhomepage
path: root/site/docs/windows.md
diff options
context:
space:
mode:
authorGravatar Kristina Chodorow <kchodorow@google.com>2015-03-31 14:49:30 +0000
committerGravatar Laurent Le Brun <laurentlb@google.com>2015-03-31 20:09:33 +0000
commit974b20891380c26bf147c037b19ceaf6f93f1e0b (patch)
treeebde4cb7d8f87bfd56641ea88107a393dd350868 /site/docs/windows.md
parent317bf22ee2d7ceaf306e022b0fb56061c89d702e (diff)
Improve site structure
It's a bit weird having everything under docs/, so this puts the blog and "about" pages under / and all of the documentation under docs. -- MOS_MIGRATED_REVID=89965504
Diffstat (limited to 'site/docs/windows.md')
-rw-r--r--site/docs/windows.md66
1 files changed, 66 insertions, 0 deletions
diff --git a/site/docs/windows.md b/site/docs/windows.md
new file mode 100644
index 0000000000..8e2d74072d
--- /dev/null
+++ b/site/docs/windows.md
@@ -0,0 +1,66 @@
+---
+layout: default
+---
+
+Building Bazel on Windows
+=========================
+
+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