@@ -57,6 +57,17 @@ elseif(ZXC_ENABLE_COVERAGE)
5757 set (ZXC_PGO_MODE "OFF" )
5858endif ()
5959
60+ # =============================================================================
61+ # Rapidhash: system-installed (e.g. vcpkg) or vendored fallback
62+ # =============================================================================
63+ find_path (RAPIDHASH_INCLUDE_DIR rapidhash.h )
64+ if (NOT RAPIDHASH_INCLUDE_DIR)
65+ set (RAPIDHASH_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR} /src/lib/vendors" )
66+ message (STATUS "Using vendored rapidhash from ${RAPIDHASH_INCLUDE_DIR} " )
67+ else ()
68+ message (STATUS "Found system rapidhash in ${RAPIDHASH_INCLUDE_DIR} " )
69+ endif ()
70+
6071# =============================================================================
6172# Core Library & Runtime Dispatch
6273# =============================================================================
@@ -80,7 +91,7 @@ macro(zxc_add_variant suffix flags)
8091 endif ()
8192 endif ()
8293 # Inherit include directories
83- target_include_directories (zxc_compress${suffix} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} /src/lib ${CMAKE_CURRENT_SOURCE_DIR} /src/lib/vendors PUBLIC $<BUILD_INTERFACE :${CMAKE_CURRENT_SOURCE_DIR} /include >)
94+ target_include_directories (zxc_compress${suffix} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} /src/lib ${RAPIDHASH_INCLUDE_DIR} PUBLIC $<BUILD_INTERFACE :${CMAKE_CURRENT_SOURCE_DIR} /include >)
8495
8596 add_library (zxc_decompress${suffix} OBJECT src/lib/zxc_decompress.c )
8697 target_compile_options (zxc_decompress${suffix} PRIVATE ${flags} )
@@ -97,7 +108,7 @@ macro(zxc_add_variant suffix flags)
97108 target_compile_options (zxc_decompress${suffix} PRIVATE -fvisibility=hidden )
98109 endif ()
99110 endif ()
100- target_include_directories (zxc_decompress${suffix} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} /src/lib ${CMAKE_CURRENT_SOURCE_DIR} /src/lib/vendors PUBLIC $<BUILD_INTERFACE :${CMAKE_CURRENT_SOURCE_DIR} /include >)
111+ target_include_directories (zxc_decompress${suffix} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} /src/lib ${RAPIDHASH_INCLUDE_DIR} PUBLIC $<BUILD_INTERFACE :${CMAKE_CURRENT_SOURCE_DIR} /include >)
101112
102113 list (APPEND ZXC_VARIANT_OBJECTS $<TARGET_OBJECTS :zxc_compress ${suffix} > $<TARGET_OBJECTS :zxc_decompress ${suffix} >)
103114endmacro ()
@@ -158,7 +169,7 @@ target_include_directories(zxc_lib
158169 $<INSTALL_INTERFACE :include >
159170 PRIVATE
160171 ${CMAKE_CURRENT_SOURCE_DIR} /src/lib
161- ${CMAKE_CURRENT_SOURCE_DIR} /src/lib/vendors
172+ ${RAPIDHASH_INCLUDE_DIR}
162173)
163174
164175# Symbol visibility for shared libraries
@@ -248,7 +259,7 @@ target_link_libraries(zxc_lib PRIVATE Threads::Threads)
248259if (ZXC_BUILD_CLI)
249260 add_executable (zxc src/cli/main.c )
250261 target_link_libraries (zxc PRIVATE zxc_lib )
251- target_include_directories (zxc PRIVATE src/lib/vendors )
262+ target_include_directories (zxc PRIVATE ${RAPIDHASH_INCLUDE_DIR} )
252263
253264 # Math library on Unix
254265 if (UNIX )
@@ -341,7 +352,7 @@ if(ZXC_BUILD_TESTS)
341352 $<INSTALL_INTERFACE :include >
342353 PRIVATE
343354 ${CMAKE_CURRENT_SOURCE_DIR} /src/lib
344- ${CMAKE_CURRENT_SOURCE_DIR} /src/lib/vendors
355+ ${RAPIDHASH_INCLUDE_DIR}
345356 )
346357
347358 # Apply same compiler settings as main library
@@ -382,7 +393,7 @@ if(ZXC_BUILD_TESTS)
382393 endif ()
383394 endif ()
384395
385- target_include_directories (zxc_test PRIVATE src/lib src/lib/vendors )
396+ target_include_directories (zxc_test PRIVATE src/lib ${RAPIDHASH_INCLUDE_DIR} )
386397 add_test (NAME UnitTests COMMAND zxc_test )
387398endif ()
388399
0 commit comments