aboutsummaryrefslogtreecommitdiffhomepage
path: root/site/docs/windows.md
diff options
context:
space:
mode:
authorGravatar Yun Peng <pcloudy@google.com>2016-08-04 08:10:56 +0000
committerGravatar Yun Peng <pcloudy@google.com>2016-08-04 09:22:48 +0000
commit43e22c4e466c39234979e90e7897bdc63607fc06 (patch)
treeeb3a8b1f2a15c67d95df10c4d40ab1e54d21fd1e /site/docs/windows.md
parentb8f751b305f7e373335a087d2cca4f9831dafa25 (diff)
Update windows.md again
-- MOS_MIGRATED_REVID=129305218
Diffstat (limited to 'site/docs/windows.md')
-rw-r--r--site/docs/windows.md52
1 files changed, 49 insertions, 3 deletions
diff --git a/site/docs/windows.md b/site/docs/windows.md
index ca7f0241d9..24dfb42c58 100644
--- a/site/docs/windows.md
+++ b/site/docs/windows.md
@@ -10,13 +10,12 @@ Windows support is highly experimental. Known issues are [marked with
label "Windows"](https://github.com/bazelbuild/bazel/issues?q=is%3Aissue+is%3Aopen+label%3AWindows)
on github issues.
-We currently support only 64 bit Windows 7 or higher and we can only compile
-msys2 binaries.
+We currently support only 64 bit Windows 7 or higher and we compile Bazel as a msys2 binary.
To bootstrap Bazel on Windows, you will need:
* Java JDK 8 or later
-* Visual Studio (Community Edition is okay, only `CL.EXE` is needed)
+* [Visual Studio](https://www.visualstudio.com/) (Community Edition is okay)
* [msys2](https://msys2.github.io/) (need to be installed at
``C:\tools\msys64\``).
* Several msys2 packages. Use the ``pacman`` command to install them:
@@ -35,3 +34,50 @@ export BAZEL_SH=c:/tools/msys64/usr/bin/bash.exe
* Run ``compile.sh`` in Bazel directory.
* If all works fine, bazel will be built at ``output\bazel.exe``.
+
+Using Bazel on Windows
+======================
+
+Bazel currently supports building C++ targets and Java targets on Windows.
+
+### Build C++
+
+To build C++ targets, you will need:
+
+* [Visual Studio](https://www.visualstudio.com/)
+<br/>We are using MSVC as the native C++ toolchain, so please ensure you have Visual
+Studio installed with the Visual C++ components
+(which is NOT the default installation type of Visual Studio).
+
+* [Python 2.7](https://www.python.org/downloads/)
+<br/>Currently, we use python wrapper scripts to call the actual MSVC compiler, so
+please make sure Python is installed and its location is added into PATH.
+It's also a good idea to set BAZEL\_PYTHON environment variable to tell Bazel
+where python is.
+<br/>For example: `export BAZEL_PYTHON=C:/Python27/python.exe`
+
+Bazel will auto-configure the location of Visual Studio and Python at the first
+time you build any target.
+If you need to auto-configure again, just run `bazel clean` then build a target.
+
+If everything is set up, you can build C++ target now! However, since MSVC
+toolchain is not default on Windows yet, you should use flag
+`--cpu=x64_windows_msvc` to enable it like this:
+
+```bash
+$ bazel build --cpu=x64_windows_msvc examples/cpp:hello-world
+$ ./bazel-bin/examples/cpp/hello-world.exe
+$ bazel run --cpu=x64_windows_msvc examples/cpp:hello-world
+```
+
+### Build Java
+
+Building Java targets works well on Windows, no special configuration is needed.
+Just try:
+
+```bash
+$ bazel build examples/java-native/src/main/java/com/example/myproject:hello-world
+$ ./bazel-bin/examples/java-native/src/main/java/com/example/myproject/hello-world
+$ bazel run examples/java-native/src/main/java/com/example/myproject:hello-world
+```
+