• Home
  • Raw
  • Download

Lines Matching +full:windows +full:- +full:cmake +full:- +full:tests

5 The standalone CMake build is primarily intended for developers. If embedding
6 BoringSSL into another project with a pre-existing build system, see
13 * [CMake](https://cmake.org/download/) 3.10 or later is required.
15 * A recent version of Perl is required. On Windows,
21 If Perl is not found by CMake, it may be configured explicitly by setting
24 * Building with [Ninja](https://ninja-build.org/) instead of Make is
25 recommended, because it makes builds faster. On Windows, CMake's Visual
27 recent versions of CMake for assembly support.
29 * On Windows only, [NASM](https://www.nasm.us/) is required. If not found
30 by CMake, it may be configured explicitly by setting
34 other than MSVC, C11 support is also requried. On Windows, MSVC from
37 should work on non-Windows platforms, and maybe on Windows too.
40 Note Go is exempt from the five year support window. If not found by CMake,
43 * On x86_64 Linux, the tests have an optional
49 Using Ninja (note the 'N' is capitalized in the cmake invocation):
51 cmake -GNinja -B build
52 ninja -C build
54 Using Make (does not work on Windows):
56 cmake -B build
57 make -C build
59 You usually don't need to run `cmake` again after changing `CMakeLists.txt`
63 Note that the default build flags in the top-level `CMakeLists.txt` are for
64 debugging—optimisation isn't enabled. Pass `-DCMAKE_BUILD_TYPE=Release` to
65 `cmake` to configure a release build.
67 If you want to cross-compile then there is an example toolchain file for 32-bit
68 Intel in `util/`. Wipe out the build directory, run `cmake` like this:
70 cmake -B build -DCMAKE_TOOLCHAIN_FILE=../util/32-bit-toolchain.cmake -GNinja
72 If you want to build as a shared library, pass `-DBUILD_SHARED_LIBS=1`. On
73 Windows, where functions need to be tagged with `dllimport` when coming from a
77 In order to serve environments where code-size is important as well as those
81 See [CMake's documentation](https://cmake.org/cmake/help/v3.4/manual/cmake-variables.7.html)
86 It's possible to build BoringSSL with the Android NDK using CMake. Recent
87 versions of the NDK include a CMake toolchain file which works with CMake 3.6.0
91 directory. Then run CMake like this:
93 cmake -DANDROID_ABI=armeabi-v7a \
94 -DANDROID_PLATFORM=android-19 \
95 -DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK}/build/cmake/android.toolchain.cmake \
96 -GNinja -B build
98 Once you've run that, Ninja should produce Android-compatible binaries. You
99 can replace `armeabi-v7a` in the above with `arm64-v8a` and use API level 21 or
108 adb push ${ANDROID_NDK}/prebuilt/android-ARCH/gdbserver/gdbserver \
114 architecture of the host machine, e.g. `linux-x86_64`.
121 To build for iOS, pass `-DCMAKE_OSX_SYSROOT=iphoneos` and
122 `-DCMAKE_OSX_ARCHITECTURES=ARCH` to CMake, where `ARCH` is the desired
123 architecture, matching values used in the `-arch` flag in Apple's toolchain.
125 Passing multiple architectures for a multiple-architecture build is not
134 In order to build with prefixed symbols, the `BORINGSSL_PREFIX` CMake variable
136 `BORINGSSL_PREFIX_SYMBOLS` CMake variable should specify the path to a file
138 comments are supported with `#`). In other words, `cmake -B build
139 -DBORINGSSL_PREFIX=MY_CUSTOM_PREFIX
140 -DBORINGSSL_PREFIX_SYMBOLS=/path/to/symbols.txt` will configure the build to add
154 ## Known Limitations on Windows
156 * CMake can generate Visual Studio projects, but the generated project files
164 capability information has to be provided by a combination of compile-time
167 BoringSSL determines capabilities at compile-time based on `__ARM_NEON`,
169 …xtensions (ACLE)](https://developer.arm.com/architectures/system-architectures/software-standards/…
170 These values are usually controlled by the `-march` flag. You can also define
172 symbols via `-march` is recommended.
188 `OPENSSL_STATIC_ARMCAP` to limit BoringSSL to compile-time capabilities. If not
193 The implementations of some algorithms require a trade-off between binary size
194 and performance. For instance, BoringSSL's fastest P-256 implementation uses a
195 148 KiB pre-computed table. To optimize instead for binary size, pass
196 `-DOPENSSL_SMALL=1` to CMake or define the `OPENSSL_SMALL` preprocessor symbol.
198 # Running Tests
200 There are two sets of tests: the C/C++ tests and the blackbox tests. For former
201 are built by Ninja and can be run from the top-level directory with `go run
205 Both sets of tests may also be run with `ninja -C build run_tests`, but CMake