vcpkg/ports/numkong/export-target.patch

84 lines
3.0 KiB
Diff

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 $<$<COMPILE_LANGUAGE:C>:-fmodules> $<$<COMPILE_LANGUAGE:C>:-fimplicit-module-maps>
$<$<COMPILE_LANGUAGE:C>:-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 $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include> $<INSTALL_INTERFACE:include>)
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 $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include> $<INSTALL_INTERFACE:include>)
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