Skip to content

Commit 6f9f4cc

Browse files
davidbenCQ bot account: commit-bot@chromium.org
authored andcommitted
Clarify build requirements.
The minimum versions are largely bogus, since we do not continuously test them. Instead, we've been using Abseil's five year guidelines to decide when to rely on tooling improvements. Document this. Remove the note on how to build Ninja as that'll just get out of date. For instance, they appear to support Python 3 when building now. Explicitly call out that CMake 3.0 will be required next year (released June 2014). 3.0 is the minimum needed to distinguish Clang from AppleClang, without which version checks on Clang don't work. Also document that we require a C++11 compiler for more than just tests these days. Change-Id: I4e5766934edc1d69f7be01f48e855d400adfb5f2 Reviewed-on: https://boringssl-review.googlesource.com/c/33845 Commit-Queue: David Benjamin <[email protected]> Reviewed-by: Adam Langley <[email protected]>
1 parent 79c7ec0 commit 6f9f4cc

File tree

1 file changed

+21
-17
lines changed

1 file changed

+21
-17
lines changed

BUILDING.md

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,18 @@
22

33
## Build Prerequisites
44

5-
* [CMake](https://cmake.org/download/) 2.8.11 or later is required.
5+
The standalone CMake build is primarily intended for developers. If embedding
6+
BoringSSL into another project with a pre-existing build system, see
7+
[INCORPORATING.md](/INCORPORATING.md).
68

7-
* Perl 5.6.1 or later is required. On Windows,
9+
Unless otherwise noted, build tools must at most five years old, matching
10+
[Abseil guidelines](https://abseil.io/about/compatibility). If in doubt, use the
11+
most recent stable version of each tool.
12+
13+
* [CMake](https://cmake.org/download/) 2.8.12 or later is required. Note we
14+
will begin requiring CMake 3.0 in 2019.
15+
16+
* A recent version of Perl is required. On Windows,
817
[Active State Perl](http://www.activestate.com/activeperl/) has been
918
reported to work, as has MSYS Perl.
1019
[Strawberry Perl](http://strawberryperl.com/) also works but it adds GCC
@@ -13,28 +22,23 @@
1322
If Perl is not found by CMake, it may be configured explicitly by setting
1423
`PERL_EXECUTABLE`.
1524

16-
* On Windows you currently must use [Ninja](https://ninja-build.org/)
17-
to build; on other platforms, it is not required, but recommended, because
18-
it makes builds faster.
19-
20-
* If you need to build Ninja from source, then a recent version of
21-
[Python](https://www.python.org/downloads/) is required (Python 2.7.5 works).
25+
* Building with [Ninja](https://ninja-build.org/) instead of Make is
26+
recommended, because it makes builds faster. On Windows, CMake's Visual
27+
Studio generator may also work, but it not tested regularly and requires
28+
recent versions of CMake for assembly support.
2229

2330
* On Windows only, [NASM](https://www.nasm.us/) is required. If not found
2431
by CMake, it may be configured explicitly by setting
2532
`CMAKE_ASM_NASM_COMPILER`.
2633

27-
* A C compiler is required. On Windows, MSVC 14 (Visual Studio 2015) or later
28-
with Platform SDK 8.1 or later are supported. Recent versions of GCC (4.8+)
29-
and Clang should work on non-Windows platforms, and maybe on Windows too.
30-
To build the tests, you also need a C++ compiler with C++11 support.
34+
* C and C++ compilers with C++11 support are required. On Windows, MSVC 14
35+
(Visual Studio 2015) or later with Platform SDK 8.1 or later are supported.
36+
Recent versions of GCC (4.8+) and Clang should work on non-Windows
37+
platforms, and maybe on Windows too.
3138

3239
* The most recent stable version of [Go](https://golang.org/dl/) is required.
33-
If not found by CMake, the go executable may be configured explicitly by
34-
setting `GO_EXECUTABLE`.
35-
36-
* To build the x86 and x86\_64 assembly, your assembler must support AVX2
37-
instructions and MOVBE. If using GNU binutils, you must have 2.22 or later
40+
Note Go is exempt from the five year support window. If not found by CMake,
41+
the go executable may be configured explicitly by setting `GO_EXECUTABLE`.
3842

3943
## Building
4044

0 commit comments

Comments
 (0)