+
+ADD_GDB_INDEX_FOR_GOLD |
+OFF |
+Add .gdb-index to resulting binaries for gold linker. |
+Ignored if lld is used |
+
+
+ARCH_NATIVE |
+0 |
+Add -march=native compiler flag. This makes your binaries non-portable but more performant code may be generated. This option overrides ENABLE_* options for specific instruction set. Highly not recommended to use. |
+ |
+
+
+BUILD_STANDALONE_KEEPER |
+OFF |
+Build keeper as small standalone binary |
+ |
+
+
+CLICKHOUSE_SPLIT_BINARY |
+OFF |
+Make several binaries (clickhouse-server, clickhouse-client etc.) instead of one bundled |
+ |
+
+
+COMPILER_PIPE |
+ON |
+-pipe compiler option |
+Less /tmp usage, more RAM usage. |
+
+
+ENABLE_BUILD_PATH_MAPPING |
+ON |
+Enable remap file source paths in debug info, predefined preprocessor macros and __builtin_FILE(). It's to generate reproducible builds. See https://reproducible-builds.org/docs/build-path |
+Reproducible builds If turned ON , remap file source paths in debug info, predefined preprocessor macros and __builtin_FILE(). |
+
+
+ENABLE_CHECK_HEAVY_BUILDS |
+OFF |
+Don't allow C++ translation units to compile too long or to take too much memory while compiling. |
+Take care to add prlimit in command line before ccache, or else ccache thinks that prlimit is compiler, and clang++ is its input file, and refuses to work with multiple inputs, e.g in ccache log: [2021-03-31T18:06:32.655327 36900] Command line: /usr/bin/ccache prlimit --as=10000000000 --data=5000000000 --cpu=600 /usr/bin/clang++-11 - ...... std=gnu++2a -MD -MT src/CMakeFiles/dbms.dir/Storages/MergeTree/IMergeTreeDataPart.cpp.o -MF src/CMakeFiles/dbms.dir/Storages/MergeTree/IMergeTreeDataPart.cpp.o.d -o src/CMakeFiles/dbms.dir/Storages/MergeTree/IMergeTreeDataPart.cpp.o -c ../src/Storages/MergeTree/IMergeTreeDataPart.cpp [2021-03-31T18:06:32.656704 36900] Multiple input files: /usr/bin/clang++-11 and ../src/Storages/MergeTree/IMergeTreeDataPart.cpp Another way would be to use --ccache-skip option before clang++-11 to make ccache ignore it. |
+
+
+ENABLE_EXAMPLES |
+OFF |
+Build all example programs in 'examples' subdirectories |
+ |
+
+
+ENABLE_FUZZING |
+OFF |
+Fuzzy testing using libfuzzer |
+ |
+
+
+ENABLE_LIBRARIES |
+ON |
+Enable all external libraries by default |
+Turns on all external libs like s3, kafka, ODBC, ... |
+
+
+ENABLE_MULTITARGET_CODE |
+ON |
+Enable platform-dependent code |
+ClickHouse developers may use platform-dependent code under some macro (e.g. ifdef ENABLE_MULTITARGET ). If turned ON, this option defines such macro. See src/Functions/TargetSpecific.h |
+
+
+ENABLE_TESTS |
+ON |
+Provide unit_test_dbms target with Google.Test unit tests |
+If turned ON , assumes the user has either the system GTest library or the bundled one. |
+
+
+ENABLE_THINLTO |
+ON |
+Clang-specific link time optimization |
+https://clang.llvm.org/docs/ThinLTO.html Applies to clang only. Disabled when building with tests or sanitizers. |
+
+
+FAIL_ON_UNSUPPORTED_OPTIONS_COMBINATION |
+ON |
+Stop/Fail CMake configuration if some ENABLE_XXX option is defined (either ON or OFF) but is not possible to satisfy |
+If turned off: e.g. when ENABLE_FOO is ON, but FOO tool was not found, the CMake will continue. |
+
+
+GLIBC_COMPATIBILITY |
+ON |
+Enable compatibility with older glibc libraries. |
+Only for Linux, x86_64 or aarch64. |
+
+
+INSTALL_STRIPPED_BINARIES |
+OFF |
+Build stripped binaries with debug info in separate directory |
+ |
+
+
+LINKER_NAME |
+OFF |
+Linker name or full path |
+Example values: lld-10 , gold . |
+
+
+PARALLEL_COMPILE_JOBS |
+"" |
+Maximum number of concurrent compilation jobs |
+1 if not set |
+
+
+PARALLEL_LINK_JOBS |
+"" |
+Maximum number of concurrent link jobs |
+1 if not set |
+
+
+SANITIZE |
+"" |
+Enable one of the code sanitizers |
+Possible values: - address (ASan) - memory (MSan) - thread (TSan) - undefined (UBSan) - "" (no sanitizing) |
+
+
+SPLIT_SHARED_LIBRARIES |
+OFF |
+Keep all internal libraries as separate .so files |
+DEVELOPER ONLY. Faster linking if turned on. |
+
+
+STRIP_DEBUG_SYMBOLS_FUNCTIONS |
+STRIP_DSF_DEFAULT |
+Do not generate debugger info for ClickHouse functions |
+Provides faster linking and lower binary size. Tradeoff is the inability to debug some source files with e.g. gdb (empty stack frames and no local variables)." |
+
+
+USE_DEBUG_HELPERS |
+USE_DEBUG_HELPERS |
+Enable debug helpers |
+ |
+
+
+USE_STATIC_LIBRARIES |
+ON |
+Disable to use shared libraries |
+ |
+
+
+USE_UNWIND |
+ENABLE_LIBRARIES |
+Enable libunwind (better stacktraces) |
+ |
+
+
+WERROR |
+OFF |
+Enable -Werror compiler option |
+Using system libs can cause a lot of warnings in includes (on macro expansion). |
+
+
+WEVERYTHING |
+ON |
+Enable -Weverything option with some exceptions. |
+Add some warnings that are not available even with -Wall -Wextra -Wpedantic. Intended for exploration of new compiler warnings that may be found useful. Applies to clang only |
+
+
+WITH_COVERAGE |
+OFF |
+Profile the resulting binary/binaries |
+Compiler-specific coverage flags e.g. -fcoverage-mapping for gcc |
+
+
+