diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt index bd9e29fc17..c5096c263e 100644 --- a/cpp/CMakeLists.txt +++ b/cpp/CMakeLists.txt @@ -215,7 +215,7 @@ endif() # * cuvs --------------------------------------------------------------------- if(NOT BUILD_CPU_ONLY) add_library( - cuvs-cagra-search STATIC + cuvs-cagra-search OBJECT src/neighbors/cagra_search_float.cu src/neighbors/cagra_search_half.cu src/neighbors/cagra_search_int8.cu @@ -305,7 +305,6 @@ if(NOT BUILD_CPU_ONLY) CUDA_STANDARD 17 CUDA_STANDARD_REQUIRED ON CUDA_SEPARABLE_COMPILATION ON - INTERFACE_POSITION_INDEPENDENT_CODE ON POSITION_INDEPENDENT_CODE ON ) target_link_libraries(cuvs-cagra-search PRIVATE raft::raft) @@ -596,7 +595,7 @@ if(NOT BUILD_CPU_ONLY) ) if(NOT cuvs_compile_mode STREQUAL "static_only") - add_library(cuvs SHARED $) + add_library(cuvs SHARED $ $) add_library(cuvs::cuvs ALIAS cuvs) set_target_properties( cuvs @@ -606,6 +605,7 @@ if(NOT BUILD_CPU_ONLY) CXX_STANDARD_REQUIRED ON CUDA_STANDARD 17 CUDA_STANDARD_REQUIRED ON + CUDA_RESOLVE_DEVICE_SYMBOLS ON INTERFACE_POSITION_INDEPENDENT_CODE ON POSITION_INDEPENDENT_CODE ON ) @@ -638,7 +638,6 @@ if(NOT BUILD_CPU_ONLY) $> $<$:CUDA::nvtx3> PRIVATE nvidia::cutlass::cutlass $ - cuvs-cagra-search ) # ensure CUDA symbols aren't relocated to the middle of the debug build binaries @@ -657,7 +656,7 @@ SECTIONS endif() if(NOT cuvs_compile_mode STREQUAL "shared_only") - add_library(cuvs_static STATIC $) + add_library(cuvs_static STATIC $ $) add_library(cuvs::cuvs_static ALIAS cuvs_static) set_target_properties( @@ -666,6 +665,9 @@ SECTIONS INSTALL_RPATH "\$ORIGIN" CXX_STANDARD 17 CXX_STANDARD_REQUIRED ON + CUDA_STANDARD 17 + CUDA_STANDARD_REQUIRED ON + CUDA_RESOLVE_DEVICE_SYMBOLS ON POSITION_INDEPENDENT_CODE ON INTERFACE_POSITION_INDEPENDENT_CODE ON EXPORT_NAME cuvs_static