aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/duckdb/library-linkage.diff
diff options
context:
space:
mode:
authorEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
committerEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
commit54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch)
treed915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/duckdb/library-linkage.diff
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/duckdb/library-linkage.diff')
-rw-r--r--vcpkg/ports/duckdb/library-linkage.diff206
1 files changed, 206 insertions, 0 deletions
diff --git a/vcpkg/ports/duckdb/library-linkage.diff b/vcpkg/ports/duckdb/library-linkage.diff
new file mode 100644
index 0000000..5d94429
--- /dev/null
+++ b/vcpkg/ports/duckdb/library-linkage.diff
@@ -0,0 +1,206 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 4e9d498..70414b4 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -410,7 +410,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()
+
+@@ -857,6 +856,7 @@ if (NOT EXTENSION_CONFIG_BUILD AND NOT ${EXTENSION_TESTS_ONLY} AND NOT CLANG_TID
+ 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)
+@@ -875,6 +875,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..dcf5ada 100644
+--- a/DuckDBConfig.cmake.in
++++ b/DuckDBConfig.cmake.in
+@@ -9,6 +9,22 @@ find_dependency(Threads)
+ if(NOT @WITH_INTERNAL_ICU@)
+ find_dependency(ICU COMPONENTS i18n uc data)
+ endif()
++if(NOT "@BUILD_SHARED_LIBS@")
++ set(z_vcpkg_duckdb_extensions_names "@DUCKDB_EXTENSION_NAMES@")
++ 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
+ get_filename_component(DuckDB_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
+@@ -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}"