• Home
  • Raw
  • Download

Lines Matching +full:cross +full:- +full:ios +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
19 to `PATH`, which can confuse some build tools when identifying the compiler
24 * Building with [Ninja](https://ninja-build.org/) instead of Make is
35 Recent versions of GCC (4.8+) and Clang should work on non-Windows
50 mkdir build
51 cd build
52 cmake -GNinja ..
57 mkdir build
58 cd build
63 files because the build scripts will detect changes to them and rebuild
66 Note that the default build flags in the top-level `CMakeLists.txt` are for
67 debugging—optimisation isn't enabled. Pass `-DCMAKE_BUILD_TYPE=Release` to
68 `cmake` to configure a release build.
70 If you want to cross-compile then there is an example toolchain file for 32-bit
71 Intel in `util/`. Wipe out the build directory, recreate it and run `cmake` like
74 cmake -DCMAKE_TOOLCHAIN_FILE=../util/32-bit-toolchain.cmake -GNinja ..
76 If you want to build as a shared library, pass `-DBUILD_SHARED_LIBS=1`. On
81 In order to serve environments where code-size is important as well as those
85 See [CMake's documentation](https://cmake.org/cmake/help/v3.4/manual/cmake-variables.7.html)
86 for other variables which may be used to configure the build.
90 It's possible to build BoringSSL with the Android NDK using CMake. Recent
95 directory. Then make a build directory as above and run CMake like this:
97 cmake -DANDROID_ABI=armeabi-v7a \
98 -DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK}/build/cmake/android.toolchain.cmake \
99 -DANDROID_NATIVE_API_LEVEL=16 \
100 -GNinja ..
102 Once you've run that, Ninja should produce Android-compatible binaries. You
103 can replace `armeabi-v7a` in the above with `arm64-v8a` and use API level 21 or
104 higher to build aarch64 binaries.
112 adb push ${ANDROID_NDK}/prebuilt/android-ARCH/gdbserver/gdbserver \
118 architecture of the host machine, e.g. `linux-x86_64`.
123 ### Building for iOS
125 To build for iOS, pass `-DCMAKE_OSX_SYSROOT=iphoneos` and
126 `-DCMAKE_OSX_ARCHITECTURES=ARCH` to CMake, where `ARCH` is the desired
127 architecture, matching values used in the `-arch` flag in Apple's toolchain.
129 Passing multiple architectures for a multiple-architecture build is not
134 BoringSSL's build system has experimental support for adding a custom prefix to
138 In order to build with prefixed symbols, the `BORINGSSL_PREFIX` CMake variable
143 -DBORINGSSL_PREFIX=MY_CUSTOM_PREFIX
144 -DBORINGSSL_PREFIX_SYMBOLS=/path/to/symbols.txt` will configure the build to add
150 exported symbols from a `.a` file, and can be used in a build script to generate
162 currently cannot be used to build BoringSSL.
170 By default, on Linux-based systems, BoringSSL will try to use `getauxval` and
175 On iOS or builds which define `OPENSSL_STATIC_ARMCAP`, features will be
178 `-march` flag. You can also define any of the following to enable the
188 run-time, BoringSSL will likely crash.
192 The implementations of some algorithms require a trade-off between binary size
193 and performance. For instance, BoringSSL's fastest P-256 implementation uses a
194 148 KiB pre-computed table. To optimize instead for binary size, pass
195 `-DOPENSSL_SMALL=1` to CMake or define the `OPENSSL_SMALL` preprocessor symbol.
200 are built by Ninja and can be run from the top-level directory with `go run
204 Both sets of tests may also be run with `ninja -C build run_tests`, but CMake