@@ -18,6 +18,14 @@ if(CUNSEARCH_USE_DOUBLE_PRECISION)
1818 add_compile_options (-DCUNSEARCH_USE_DOUBLE_PRECISION)
1919endif (CUNSEARCH_USE_DOUBLE_PRECISION)
2020
21+ OPTION (BUILD_AS_SHARED_LIBS "Build all the libraries as shared" OFF )
22+ if (BUILD_AS_SHARED_LIBS)
23+ add_definitions ( -DBUILD_AS_SHARED_LIBS)
24+ if (WIN32 )
25+ set (CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON CACHE BOOL "Export all symbols" )
26+ endif (WIN32 )
27+ endif (BUILD_AS_SHARED_LIBS)
28+
2129set (CMAKE_CXX_STANDARD 11)
2230set (CMAKE_CXX_STANDARD_REQUIRED ON )
2331SET (CMAKE_DEBUG_POSTFIX "_d" )
@@ -54,16 +62,31 @@ set (SOURCE_FILES
5462 Utils/IDFactory.cpp
5563)
5664
57- add_library (cuNSearch STATIC ${INCLUDE_HEADERS} ${HEADER_FILES} ${SOURCE_FILES} )
65+ if (BUILD_AS_SHARED_LIBS)
66+ add_library (cuNSearch SHARED ${INCLUDE_HEADERS} ${HEADER_FILES} ${SOURCE_FILES} )
67+ else ()
68+ add_library (cuNSearch STATIC ${INCLUDE_HEADERS} ${HEADER_FILES} ${SOURCE_FILES} )
69+ endif ()
70+
71+ include (GenerateExportHeader)
72+ generate_export_header(cuNSearch
73+ BASE_NAME cuNSearch
74+ EXPORT_MACRO_NAME cuNSearch_EXPORT
75+ EXPORT_FILE_NAME ${CMAKE_CURRENT_BINARY_DIR} /cuNSearch/cuNSearch_export.h
76+ )
5877
5978target_include_directories (cuNSearch PUBLIC
6079 "include"
6180 "Utils"
6281 ${CUDA_INCLUDE_DIRS}
82+ ${CMAKE_BINARY_DIR} /cuNSearch
6383)
6484target_link_libraries (cuNSearch PUBLIC ${CUDA_LIBRARIES} )
6585target_compile_definitions (cuNSearch PUBLIC $<$<CONFIG:DEBUG>:DEBUG>)
6686
87+ list (APPEND INCLUDE_HEADERS
88+ ${CMAKE_CURRENT_BINARY_DIR} /cuNSearch/cuNSearch_export.h)
89+
6790install (FILES ${INCLUDE_HEADERS}
6891 DESTINATION include /)
6992
0 commit comments