Files
scylladb/tools/CMakeLists.txt
Kefu Chai efd65aebb2 build: cmake: add check-header target
to have feature parity with `configure.py`. we won't need this
once we migrate to C++20 modules. but before that day comes, we
need to stick with C++ headers.

we generate a rule for each .hh files to create a corresponding
.cc and then compile it, in order to verify the self-containness of
that header. so the number of rule is quite large, to avoid the
unnecessary overhead. the check-header target is enabled only if
`Scylla_CHECK_HEADERS` option is enabled.

Signed-off-by: Kefu Chai <kefu.chai@scylladb.com>

Closes scylladb/scylladb#15913
2023-11-13 10:27:06 +02:00

53 lines
1.3 KiB
CMake

add_library(tools STATIC)
target_sources(tools
PRIVATE
scylla-types.cc
scylla-sstable.cc
scylla-nodetool.cc
schema_loader.cc
utils.cc
lua_sstable_consumer.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)
include(build_submodule)
build_submodule(cqlsh cqlsh
NOARCH)
build_submodule(tools java
NOARCH)
build_submodule(jmx jmx
NOARCH)
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)