vcpkg/ports/duckdb/library-linkage.diff

211 lines
7.3 KiB
Diff

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3246265..295da5f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -420,7 +420,6 @@ option(EXTENSION_STATIC_BUILD
FALSE)
if(WIN32 OR ZOS)
- set(EXTENSION_STATIC_BUILD TRUE)
add_definitions(-D_SILENCE_ALL_MS_EXT_DEPRECATION_WARNINGS=1)
endif()
@@ -863,6 +862,7 @@ if (NOT ${EXTENSION_CONFIG_BUILD} AND NOT ${EXTENSION_TESTS_ONLY} AND NOT CLANG_
message(STATUS "Extensions will be deployed to: ${LOCAL_EXTENSION_REPO_DIR}")
endif()
endif()
+set_target_properties(duckdb_local_extension_repo PROPERTIES EXCLUDE_FROM_ALL 1)
function(build_loadable_extension_directory NAME ABI_TYPE OUTPUT_DIRECTORY EXTENSION_VERSION CAPI_VERSION PARAMETERS)
set(TARGET_NAME ${NAME}_loadable_extension)
@@ -881,6 +881,8 @@ function(build_loadable_extension_directory NAME ABI_TYPE OUTPUT_DIRECTORY EXTEN
if(EMSCRIPTEN)
add_library(${TARGET_NAME} STATIC ${FILES})
+ elseif(WIN32)
+ add_library(${TARGET_NAME} MODULE ${FILES})
else()
add_library(${TARGET_NAME} SHARED ${FILES})
endif()
diff --git a/DuckDBConfig.cmake.in b/DuckDBConfig.cmake.in
index 7c5ce31..bc4f40d 100644
--- a/DuckDBConfig.cmake.in
+++ b/DuckDBConfig.cmake.in
@@ -6,8 +6,24 @@
include(CMakeFindDependencyMacro)
find_dependency(Threads)
-if(NOT @WITH_INTERNAL_ICU@)
- find_dependency(ICU COMPONENTS i18n uc data)
+if(NOT "@BUILD_SHARED_LIBS@")
+ set(z_vcpkg_duckdb_extensions_names "@DUCKDB_EXTENSION_NAMES@")
+ if("icu" IN_LIST z_vcpkg_duckdb_extensions_names AND NOT "@WITH_INTERNAL_ICU@")
+ find_dependency(ICU COMPONENTS i18n uc data)
+ endif()
+ if("excel" IN_LIST z_vcpkg_duckdb_extensions_names)
+ find_dependency(EXPAT)
+ find_dependency(ZLIB)
+ find_dependency(minizip-ng CONFIG)
+ endif()
+ if("httpfs" IN_LIST z_vcpkg_duckdb_extensions_names)
+ find_dependency(CURL)
+ find_dependency(OpenSSL)
+ if(MINGW)
+ find_dependency(ZLIB)
+ endif()
+ endif()
+ unset(z_vcpkg_duckdb_extensions_names)
endif()
# Compute paths
@@ -18,7 +34,7 @@ if(NOT TARGET duckdb AND NOT DuckDB_BINARY_DIR)
include("${DuckDB_CMAKE_DIR}/DuckDBExports.cmake")
endif()
-if(DuckDB_USE_STATIC_LIBS)
+if(NOT "@BUILD_SHARED_LIBS@")
set(DuckDB_LIBRARIES duckdb_static)
else()
set(DuckDB_LIBRARIES duckdb)
diff --git a/extension/autocomplete/CMakeLists.txt b/extension/autocomplete/CMakeLists.txt
index 544e65a..a8e1e43 100644
--- a/extension/autocomplete/CMakeLists.txt
+++ b/extension/autocomplete/CMakeLists.txt
@@ -13,6 +13,10 @@ set(PARAMETERS "-warnings")
build_loadable_extension(autocomplete ${PARAMETERS}
${AUTOCOMPLETE_EXTENSION_FILES})
+set_target_properties(autocomplete_loadable_extension PROPERTIES EXCLUDE_FROM_ALL 1)
+if(BUILD_SHARED_LIBS)
+ return()
+endif()
install(
TARGETS autocomplete_extension
EXPORT "${DUCKDB_EXPORT_SET}"
diff --git a/extension/core_functions/CMakeLists.txt b/extension/core_functions/CMakeLists.txt
index c97cd77..0827683 100644
--- a/extension/core_functions/CMakeLists.txt
+++ b/extension/core_functions/CMakeLists.txt
@@ -14,6 +14,10 @@ set(PARAMETERS "-warnings")
build_loadable_extension(core_functions ${PARAMETERS} ${CORE_FUNCTION_FILES})
target_link_libraries(core_functions_loadable_extension duckdb_skiplistlib)
+set_target_properties(core_functions_loadable_extension PROPERTIES EXCLUDE_FROM_ALL 1)
+if(BUILD_SHARED_LIBS)
+ return()
+endif()
install(
TARGETS core_functions_extension
EXPORT "${DUCKDB_EXPORT_SET}"
diff --git a/extension/icu/CMakeLists.txt b/extension/icu/CMakeLists.txt
index a5bb58a..8edff2b 100644
--- a/extension/icu/CMakeLists.txt
+++ b/extension/icu/CMakeLists.txt
@@ -42,6 +42,11 @@ build_loadable_extension(icu ${PARAMETERS} ${ICU_EXTENSION_FILES})
if(NOT WITH_INTERNAL_ICU)
target_link_libraries(icu_loadable_extension ICU::i18n ICU::uc ICU::data)
endif()
+
+set_target_properties(icu_loadable_extension PROPERTIES EXCLUDE_FROM_ALL 1)
+if(BUILD_SHARED_LIBS)
+ return()
+endif()
install(
TARGETS icu_extension
EXPORT "${DUCKDB_EXPORT_SET}"
diff --git a/extension/jemalloc/CMakeLists.txt b/extension/jemalloc/CMakeLists.txt
index 38be497..75cb8fb 100644
--- a/extension/jemalloc/CMakeLists.txt
+++ b/extension/jemalloc/CMakeLists.txt
@@ -12,6 +12,9 @@ set(JEMALLOC_EXTENSION_FILES jemalloc_extension.cpp ${JEMALLOC_OBJECT_FILES})
build_static_extension(jemalloc ${JEMALLOC_EXTENSION_FILES})
# we do not do build_loadable_extension here because jemalloc is static-only
+if(BUILD_SHARED_LIBS)
+ return()
+endif()
install(
TARGETS jemalloc_extension
EXPORT "${DUCKDB_EXPORT_SET}"
diff --git a/extension/json/CMakeLists.txt b/extension/json/CMakeLists.txt
index 80b4af4..81055de 100644
--- a/extension/json/CMakeLists.txt
+++ b/extension/json/CMakeLists.txt
@@ -41,6 +41,10 @@ set(PARAMETERS "-warnings")
build_loadable_extension(json ${PARAMETERS} ${JSON_EXTENSION_FILES})
target_link_libraries(json_loadable_extension duckdb_yyjson)
+set_target_properties(json_loadable_extension PROPERTIES EXCLUDE_FROM_ALL 1)
+if(BUILD_SHARED_LIBS)
+ return()
+endif()
install(
TARGETS json_extension
EXPORT "${DUCKDB_EXPORT_SET}"
diff --git a/extension/parquet/CMakeLists.txt b/extension/parquet/CMakeLists.txt
index a8335d8..ef2ea3f 100644
--- a/extension/parquet/CMakeLists.txt
+++ b/extension/parquet/CMakeLists.txt
@@ -82,6 +82,10 @@ set(PARAMETERS "-warnings")
build_loadable_extension(parquet ${PARAMETERS} ${PARQUET_EXTENSION_FILES})
target_link_libraries(parquet_loadable_extension duckdb_mbedtls duckdb_zstd)
+set_target_properties(parquet_loadable_extension PROPERTIES EXCLUDE_FROM_ALL 1)
+if(BUILD_SHARED_LIBS)
+ return()
+endif()
install(
TARGETS parquet_extension
EXPORT "${DUCKDB_EXPORT_SET}"
diff --git a/extension/tpcds/CMakeLists.txt b/extension/tpcds/CMakeLists.txt
index 6ec4cb8..db51141 100644
--- a/extension/tpcds/CMakeLists.txt
+++ b/extension/tpcds/CMakeLists.txt
@@ -11,6 +11,10 @@ set(PARAMETERS "-warnings")
build_loadable_extension(tpcds ${PARAMETERS} tpcds_extension.cpp
${DSDGEN_OBJECT_FILES})
+set_target_properties(tpcds_loadable_extension PROPERTIES EXCLUDE_FROM_ALL 1)
+if(BUILD_SHARED_LIBS)
+ return()
+endif()
install(
TARGETS tpcds_extension
EXPORT "${DUCKDB_EXPORT_SET}"
diff --git a/extension/tpch/CMakeLists.txt b/extension/tpch/CMakeLists.txt
index 46dcb12..46b9950 100644
--- a/extension/tpch/CMakeLists.txt
+++ b/extension/tpch/CMakeLists.txt
@@ -11,6 +11,10 @@ set(PARAMETERS "-warnings")
build_loadable_extension(tpch ${PARAMETERS} tpch_extension.cpp
${DBGEN_OBJECT_FILES})
+set_target_properties(tpch_loadable_extension PROPERTIES EXCLUDE_FROM_ALL 1)
+if(BUILD_SHARED_LIBS)
+ return()
+endif()
install(
TARGETS tpch_extension
EXPORT "${DUCKDB_EXPORT_SET}"
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 1915e92..83da5f4 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -172,8 +172,15 @@ else()
endif()
+if(BUILD_SHARED_LIBS)
+ set(INSTALL_TARGET duckdb)
+ set_target_properties(duckdb_static PROPERTIES EXCLUDE_FROM_ALL 1)
+else()
+ set(INSTALL_TARGET duckdb_static)
+ set_target_properties(duckdb PROPERTIES EXCLUDE_FROM_ALL 1)
+endif()
install(
- TARGETS duckdb duckdb_static
+ TARGETS ${INSTALL_TARGET}
EXPORT "${DUCKDB_EXPORT_SET}"
LIBRARY DESTINATION "${INSTALL_LIB_DIR}"
ARCHIVE DESTINATION "${INSTALL_LIB_DIR}"