diff options
| author | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
|---|---|---|
| committer | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
| commit | 54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch) | |
| tree | d915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/duckdb/library-linkage.diff | |
Diffstat (limited to 'vcpkg/ports/duckdb/library-linkage.diff')
| -rw-r--r-- | vcpkg/ports/duckdb/library-linkage.diff | 206 |
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}" |