Files
scylladb/tools/CMakeLists.txt
Radosław Cybulski d589e68642 Add precompiled headers to CMakeLists.txt
Add precompiled header support to CMakeLists.txt and configure.py -
it improves compilation time by approximately 10%.

New header `stdafx.hh` is added, don't include it manually -
the compiler will include it for you. The header contains includes from
external libraries used by Scylla - seastar, standard library,
linux headers and zlib.

The feature is enabled by default, use CMake option `Scylla_USE_PRECOMPILED_HEADER`
or configure.py --disable-precompiled-header to disable.

The feature should be disabled, when trying to check headers - otherwise
you might get false negatives on missing includes from seastar / abseil and so on.

Note: following configuration needs to be added to ccache.conf:

    sloppiness = pch_defines,time_macros,include_file_mtime,include_file_ctime

Closes scylladb/scylladb#26617
2025-11-21 12:27:41 +02:00

59 lines
1.5 KiB
CMake

add_library(tools STATIC)
target_sources(tools
PRIVATE
scylla-local-file-key-generator.cc
load_system_tablets.cc
read_mutation.cc
scylla-types.cc
scylla-sstable.cc
scylla-nodetool.cc
schema_loader.cc
utils.cc
lua_sstable_consumer.cc
json_mutation_stream_parser.cc)
target_include_directories(tools
PUBLIC
${CMAKE_SOURCE_DIR}
${RAPIDJSON_INCLUDE_DIRS}
PRIVATE
${LUA_INCLUDE_DIR})
target_link_libraries(tools
PUBLIC
Seastar::seastar
xxHash::xxhash
PRIVATE
db)
if (Scylla_USE_PRECOMPILED_HEADER_USE)
target_precompile_headers(tools REUSE_FROM scylla-precompiled-header)
endif()
include(build_submodule)
build_submodule(cqlsh cqlsh)
execute_process(
COMMAND "${CMAKE_SOURCE_DIR}/install-dependencies.sh" --print-python3-runtime-packages
OUTPUT_VARIABLE python3_dependencies
OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(
COMMAND "${CMAKE_SOURCE_DIR}/install-dependencies.sh" --print-pip-runtime-packages
OUTPUT_VARIABLE pip_dependencies
OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(
COMMAND "${CMAKE_SOURCE_DIR}/install-dependencies.sh" --print-pip-symlinks
OUTPUT_VARIABLE pip_symlinks
OUTPUT_STRIP_TRAILING_WHITESPACE)
build_submodule(python3 python3
--packages
"${python3_dependencies}"
--pip-packages
"${pip_dependencies}"
--pip-symlinks
"${pip_symlinks}")
check_headers(check-headers tools
GLOB_RECURSE ${CMAKE_CURRENT_SOURCE_DIR}/*.hh)
if(Scylla_DIST)
add_subdirectory(testing/dist-check)
endif()