diff options
author | Laszlo Csomor <laszlocsomor@google.com> | 2018-05-04 01:21:54 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-05-04 01:23:50 -0700 |
commit | 6532eccf5ac00f21bd1e334503b03799d3211e2b (patch) | |
tree | f321e8014145a4803d6276caa8c828a6d0740784 /site/docs/install-compile-source.md | |
parent | 7f3bdddab94b3c2cfa0f91fbd003cfe9566cf790 (diff) |
docs: rewrite Windows install and bootstrap guide
Simplify the installation and bootstrapping
instruction for Windows.
Fixes https://github.com/bazelbuild/bazel/issues/4784
Change-Id: I564cd6136ac5b2f0661665765b9bb488e23fe6b0
Closes #5152.
Change-Id: I564cd6136ac5b2f0661665765b9bb488e23fe6b0
PiperOrigin-RevId: 195382164
Diffstat (limited to 'site/docs/install-compile-source.md')
-rw-r--r-- | site/docs/install-compile-source.md | 120 |
1 files changed, 89 insertions, 31 deletions
diff --git a/site/docs/install-compile-source.md b/site/docs/install-compile-source.md index 31d63eddf2..8bdb85a4be 100644 --- a/site/docs/install-compile-source.md +++ b/site/docs/install-compile-source.md @@ -5,19 +5,44 @@ title: Compiling Bazel from Source # <a name="compiling-from-source"></a>Compiling Bazel from Source (bootstrapping) -You can build Bazel from source without using an existing Bazel binary by -doing the following: +You can build Bazel from source without using an existing Bazel binary. -### 1. Ensure that JDK 8, Python, Bash, zip, and the usual C++ build toolchain are installed on your system. +### 1. Install the prerequisites -* On systems based on Debian packages (Debian, Ubuntu): you can install -OpenJDK 8 and Python by running the following command in a terminal: +#### Debian-based Unix systems + +To compile Bazel on Debian-based systems such as Ubuntu or Debian, ensure that +JDK 8, Python, bash, zip, and the usual C++ build toolchain components are +installed on your system. + +For example, you can install them using the following command: ```sh - sudo apt-get install build-essential openjdk-8-jdk python zip +sudo apt-get install build-essential openjdk-8-jdk python zip ``` -* On Windows: you need additional software and the right OS version. -See the [Windows page](windows.html). + +#### Windows + +To compile Bazel on Windows, install the following supporting software: + +* [MSYS2 shell](https://msys2.github.io/) + +* **The required MSYS2 packages.** Run the following command in the MSYS2 + shell: + ```sh + pacman -Syu zip unzip + ``` + +* **The Visual C++ compiler.** Install the Visual C++ compiler either as part + of Visual Studio 2015 or newer, or by installing the latest [Build Tools + for Visual Studio 2017](https://aka.ms/BuildTools). + +* **JDK 8.** You must install version 8 of the JDK. Versions other than 8 are + *not* supported. + +* **Python**. Versions 2 and 3 are supported. You *must* install the + Windows-native version (downloadable from https://www.python.org). Versions + installed via pacman in MSYS2 will not work. ### 2. Download and unpack Bazel's distribution archive. @@ -29,33 +54,66 @@ We recommend to also verify the signature made by our [release key](https://baze The distribution archive contains generated files in addition to the versioned sources, so this step _cannot_ be short cut by checking out the source tree. -### 3. Build Bazel using `./compile.sh`. -* On Unix-like systems (e.g. Ubuntu, macOS), do the following steps in a shell session: - 1. `cd` into the directory where you unpacked the distribution archive - 2. run `bash ./compile.sh` -* On Windows, do following steps in the MSYS2 shell: - 1. `cd` into the directory where you unpacked the distribution archive - 2. run `./compile.sh` +### 3. Bootstrap Bazel -Once you have a Bazel binary, you no longer need to use the MSYS2 shell. -You can run Bazel from the Command Prompt (`cmd.exe`) or PowerShell. +#### Unix-like systems -The output will be `output/bazel` on Unix-like systems (e.g. Ubuntu, macOS) -and `output/bazel.exe` on Windows. This is a self-contained Bazel binary. -You can copy it to a directory on the `PATH` (such as `/usr/local/bin` on -Linux) or use it in-place. +On Unix-like systems such as Ubuntu or macOS, do the following: -### (on Windows): set the `JAVA_HOME` environment variable to the JDK's directory. +1. Open a shell or Terminal window. -For example in the Windows Command Prompt (`cmd.exe`): +2. Change into the directory where you unpacked the distribution archive. -``` -set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_112 -``` +3. Run the compilation script: `bash ./compile.sh`. + +The compiled output is placed into `output/bazel`. This is a self-contained +Bazel binary, without an embedded JDK. You can copy it to a directory in the +`PATH` variable (such as `/usr/local/bin` on Linux) or use it in-place. + +#### Windows + +1. Open the MSYS2 shell. + +2. Set the following environment variables: + + * `BAZEL_VS` or `BAZEL_VC`: Set to the path to the Visual Studio directory + or to the Visual C++ directory, respectively. Setting one of them is + enough. + + * `BAZEL_SH`: Set to the path of the MSYS2 `bash.exe`. + + Do not set this to `C:\Windows\System32\bash.exe`. (You have that file + if you installed Windows Subsystem for Linux.) Bazel does not support + this version of `bash.exe`. + + * `PATH`: Add the Python directory. + + * `JAVA_HOME`: Set to the JDK directory. + + For example: + ```sh + export BAZEL_VS="C:/Program Files (x86)/Microsoft Visual Studio/2017/BuildTools" + export BAZEL_SH="C:/msys64/usr/bin/bash.exe" + export PATH="/c/python27:$PATH" + export JAVA_HOME="C:/Program Files/Java/jdk1.8.0_112" + ``` + + or + + ```sh + export BAZEL_VC="C:/Program Files (x86)/Microsoft Visual Studio/2017/BuildTools/VC" + export BAZEL_SH="c:/msys64/usr/bin/bash.exe" + export PATH="/c/python27:$PATH" + export JAVA_HOME="C:/Program Files/Java/jdk1.8.0_112" + ``` + +3. Change into the directory where you unpacked the distribution archive. + +4. Run the compilation script: `./compile.sh` -**Note**: do not use quotes (") around the path like you would on Unix. -Windows doesn't need them and they may confuse Bazel. +The compiled output is placed into `output/bazel.exe`. This is a self-contained +Bazel binary, without an embedded JDK. You can copy it to a directory within the +`%PATH%` variable or use it in-place. -This step is not required if you downloaded a binary distribution of Bazel -or installed Bazel using Chocolatey. See [installing Bazel on -Windows](install-windows.html). +You don't need to run Bazel from the MSYS2 shell. You can run Bazel from the +Command Prompt (`cmd.exe`) or PowerShell. |