Files
scylla/locator/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

38 lines
863 B
CMake

include(add_whole_archive)
add_library(scylla_locator STATIC)
target_sources(scylla_locator
PRIVATE
abstract_replication_strategy.cc
azure_snitch.cc
simple_strategy.cc
local_strategy.cc
network_topology_strategy.cc
everywhere_replication_strategy.cc
token_metadata.cc
snitch_base.cc
simple_snitch.cc
rack_inferring_snitch.cc
gossiping_property_file_snitch.cc
production_snitch_base.cc
ec2_snitch.cc
ec2_multi_region_snitch.cc
gce_snitch.cc
tablets.cc
topology.cc
util.cc)
target_include_directories(scylla_locator
PUBLIC
${CMAKE_SOURCE_DIR})
target_link_libraries(scylla_locator
PUBLIC
Seastar::seastar
xxHash::xxhash
PRIVATE
db)
add_whole_archive(locator scylla_locator)
check_headers(check-headers scylla_locator
GLOB_RECURSE ${CMAKE_CURRENT_SOURCE_DIR}/*.hh)