Lines Matching +full:ninja +full:- +full:build

3 ## Build Prerequisites
5 The standalone CMake build is primarily intended for developers. If embedding
6 BoringSSL into another project with a pre-existing build system, see
9 Unless otherwise noted, build tools must at most five years old, matching
20 to `PATH`, which can confuse some build tools when identifying the compiler
25 * Building with [Ninja](https://ninja-build.org/) instead of Make is
36 Recent versions of GCC (4.8+) and Clang should work on non-Windows
49 Using Ninja (note the 'N' is capitalized in the cmake invocation):
51 mkdir build
52 cd build
53 cmake -GNinja ..
54 ninja
58 mkdir build
59 cd build
64 files because the build scripts will detect changes to them and rebuild
67 Note that the default build flags in the top-level `CMakeLists.txt` are for
68 debugging—optimisation isn't enabled. Pass `-DCMAKE_BUILD_TYPE=Release` to
69 `cmake` to configure a release build.
71 If you want to cross-compile then there is an example toolchain file for 32-bit
72 Intel in `util/`. Wipe out the build directory, recreate it and run `cmake` like
75 cmake -DCMAKE_TOOLCHAIN_FILE=../util/32-bit-toolchain.cmake -GNinja ..
77 If you want to build as a shared library, pass `-DBUILD_SHARED_LIBS=1`. On
82 In order to serve environments where code-size is important as well as those
86 See [CMake's documentation](https://cmake.org/cmake/help/v3.4/manual/cmake-variables.7.html)
87 for other variables which may be used to configure the build.
91 It's possible to build BoringSSL with the Android NDK using CMake. Recent
96 directory. Then make a build directory as above and run CMake like this:
98 cmake -DANDROID_ABI=armeabi-v7a \
99 -DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK}/build/cmake/android.toolchain.cmake \
100 -DANDROID_NATIVE_API_LEVEL=16 \
101 -GNinja ..
103 Once you've run that, Ninja should produce Android-compatible binaries. You
104 can replace `armeabi-v7a` in the above with `arm64-v8a` and use API level 21 or
105 higher to build aarch64 binaries.
113 adb push ${ANDROID_NDK}/prebuilt/android-ARCH/gdbserver/gdbserver \
119 architecture of the host machine, e.g. `linux-x86_64`.
126 To build for iOS, pass `-DCMAKE_OSX_SYSROOT=iphoneos` and
127 `-DCMAKE_OSX_ARCHITECTURES=ARCH` to CMake, where `ARCH` is the desired
128 architecture, matching values used in the `-arch` flag in Apple's toolchain.
130 Passing multiple architectures for a multiple-architecture build is not
135 BoringSSL's build system has experimental support for adding a custom prefix to
139 In order to build with prefixed symbols, the `BORINGSSL_PREFIX` CMake variable
144 -DBORINGSSL_PREFIX=MY_CUSTOM_PREFIX
145 -DBORINGSSL_PREFIX_SYMBOLS=/path/to/symbols.txt` will configure the build to add
151 exported symbols from a `.a` file, and can be used in a build script to generate
161 * Versions of CMake since 3.0.2 have a bug in its Ninja generator that causes
171 currently cannot be used to build BoringSSL.
179 By default, on Linux-based systems, BoringSSL will try to use `getauxval` and
187 `-march` flag. You can also define any of the following to enable the
197 run-time, BoringSSL will likely crash.
201 The implementations of some algorithms require a trade-off between binary size
202 and performance. For instance, BoringSSL's fastest P-256 implementation uses a
203 148 KiB pre-computed table. To optimize instead for binary size, pass
204 `-DOPENSSL_SMALL=1` to CMake or define the `OPENSSL_SMALL` preprocessor symbol.
209 are built by Ninja and can be run from the top-level directory with `go run
213 Both sets of tests may also be run with `ninja -C build run_tests`, but CMake
214 3.2 or later is required to avoid Ninja's output buffering.