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
This commit is contained in:
Kefu Chai
2023-11-01 10:50:04 +08:00
committed by Botond Dénes
parent 7b08886e8d
commit efd65aebb2
36 changed files with 216 additions and 1 deletions

View File

@@ -11,3 +11,6 @@ target_link_libraries(node_ops
Seastar::seastar
PRIVATE
service)
check_headers(check-headers api
GLOB_RECURSE ${CMAKE_CURRENT_SOURCE_DIR}/*.hh)