Files
scylladb/ent/encryption/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

52 lines
1.1 KiB
CMake

include(add_whole_archive)
find_package(cpp-jwt REQUIRED)
find_package(kmip)
add_library(scylla_encryption STATIC)
target_sources(scylla_encryption
PRIVATE
encrypted_file_impl.cc
encryption.cc
encryption_config.cc
azure_host.cc
azure_key_provider.cc
gcp_host.cc
gcp_key_provider.cc
kmip_host.cc
kmip_key_provider.cc
kms_host.cc
kms_key_provider.cc
local_file_provider.cc
replicated_key_provider.cc
symmetric_key.cc
system_key.cc
utils.cc)
target_include_directories(scylla_encryption
PUBLIC
${CMAKE_SOURCE_DIR})
target_link_libraries(scylla_encryption
PUBLIC
Seastar::seastar
PRIVATE
cql3
utils
cpp-jwt::cpp-jwt)
if (Scylla_USE_PRECOMPILED_HEADER_USE)
target_precompile_headers(scylla_encryption REUSE_FROM scylla-precompiled-header)
endif()
if(kmip_FOUND)
target_link_libraries(scylla_encryption
PRIVATE
KMIP::kmipc)
target_compile_definitions(scylla_encryption
PUBLIC
HAVE_KMIP)
endif()
check_headers(check-headers scylla_encryption
GLOB_RECURSE ${CMAKE_CURRENT_SOURCE_DIR}/*.hh)
add_whole_archive(encryption scylla_encryption)