mirror of https://github.com/microsoft/vcpkg.git
211 lines
7.3 KiB
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}"
|