diff --git a/CMakeLists.txt b/CMakeLists.txt index 327b2ec..98a3f37 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -302,7 +302,7 @@ if (MSVC) endif () # Enable Clang C modules for incremental compilation -if (CMAKE_C_COMPILER_ID MATCHES "Clang") +if (FALSE) target_compile_options( numkong INTERFACE $<$:-fmodules> $<$:-fimplicit-module-maps> $<$:-fmodules-cache-path=${CMAKE_BINARY_DIR}/module-cache> @@ -647,7 +647,7 @@ if (NK_BUILD_SHARED) ) add_executable(nk_shared ${NK_SOURCES} "${CMAKE_BINARY_DIR}/emscripten_stub.c") - target_include_directories(nk_shared PUBLIC "${PROJECT_SOURCE_DIR}/include") + target_include_directories(nk_shared PUBLIC $ $) if (NK_WASM64_) set_target_properties( @@ -699,7 +699,7 @@ if (NK_BUILD_SHARED) set_target_properties(nk_shared PROPERTIES ENABLE_EXPORTS ON) else () add_library(nk_shared SHARED ${NK_SOURCES}) - target_include_directories(nk_shared PUBLIC "${PROJECT_SOURCE_DIR}/include") + target_include_directories(nk_shared PUBLIC $ $) set_target_properties(nk_shared PROPERTIES OUTPUT_NAME numkong) # Hide all symbols by default; only NK_DYNAMIC-annotated API functions are exported. @@ -753,17 +753,25 @@ if (NK_BUILD_SHARED) # fail on unsupported OS/runtime combinations. endif () + target_compile_definitions(nk_shared PUBLIC NK_DYNAMIC_DISPATCH=1 PRIVATE NK_BUILDING_LIBRARY=1) + install( TARGETS nk_shared - ARCHIVE + EXPORT unofficial-numkong-config + ARCHIVE DESTINATION lib BUNDLE FRAMEWORK - LIBRARY + LIBRARY DESTINATION lib OBJECTS PRIVATE_HEADER PUBLIC_HEADER RESOURCE - RUNTIME + RUNTIME DESTINATION bin + ) + install(EXPORT unofficial-numkong-config + FILE unofficial-numkong-config.cmake + NAMESPACE unofficial::numkong:: + DESTINATION share/unofficial-numkong ) endif () @@ -852,5 +860,4 @@ if (NK_BUILD_CUDA_TEST) add_test(NAME nk_cuda_test COMMAND nk_cuda_test) endif () -install(DIRECTORY include/ DESTINATION include) -install(DIRECTORY c/ DESTINATION share/doc/${PROJECT_NAME}/src) +install(DIRECTORY include/ DESTINATION include FILES_MATCHING PATTERN *.h) diff --git a/include/numkong/types.h b/include/numkong/types.h index 6d94b2f..5d0b165 100644 --- a/include/numkong/types.h +++ b/include/numkong/types.h @@ -115,7 +115,11 @@ #if NK_DYNAMIC_DISPATCH #if defined(_WIN32) || defined(__CYGWIN__) +#if defined(NK_BUILDING_LIBRARY) #define NK_DYNAMIC __declspec(dllexport) +#else +#define NK_DYNAMIC __declspec(dllimport) +#endif #elif defined(__GNUC__) || defined(__clang__) #define NK_DYNAMIC __attribute__((visibility("default"))) #else