mirror of https://github.com/microsoft/vcpkg.git
[duckdb] Sanitize (#48180)
This commit is contained in:
parent
02d67a2af9
commit
37b6d58a23
|
|
@ -1,16 +0,0 @@
|
|||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 1300ab8..038c03b 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -1277,7 +1277,10 @@ endif()
|
||||
# Load extensions passed through cmake config var
|
||||
foreach(EXT IN LISTS BUILD_EXTENSIONS)
|
||||
if(NOT "${EXT}" STREQUAL "")
|
||||
- if (EXISTS "${EXTENSION_CONFIG_BASE_DIR}/${EXT}.cmake")
|
||||
+ if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/extension/${EXT}/extension_config.cmake")
|
||||
+ # out-of-tree extension
|
||||
+ include("${CMAKE_CURRENT_SOURCE_DIR}/extension/${EXT}/extension_config.cmake")
|
||||
+ elseif (EXISTS "${EXTENSION_CONFIG_BASE_DIR}/${EXT}.cmake")
|
||||
# out-of-tree extension: load cmake file
|
||||
include("${EXTENSION_CONFIG_BASE_DIR}/${EXT}.cmake")
|
||||
else()
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 981de80..65aa1da 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -35,6 +35,10 @@ target_link_libraries(${EXTENSION_NAME} EXPAT::EXPAT MINIZIP::minizip-ng
|
||||
target_link_libraries(${LOADABLE_EXTENSION_NAME} EXPAT::EXPAT
|
||||
MINIZIP::minizip-ng ZLIB::ZLIB)
|
||||
|
||||
+set_target_properties(${LOADABLE_EXTENSION_NAME} PROPERTIES EXCLUDE_FROM_ALL 1)
|
||||
+if(BUILD_SHARED_LIBS)
|
||||
+ return()
|
||||
+endif()
|
||||
install(
|
||||
TARGETS ${EXTENSION_NAME}
|
||||
EXPORT "${DUCKDB_EXPORT_SET}"
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 40a19e8..8b75d40 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -49,6 +49,10 @@ else()
|
||||
endif()
|
||||
|
||||
|
||||
+set_target_properties(httpfs_loadable_extension PROPERTIES EXCLUDE_FROM_ALL 1)
|
||||
+if(BUILD_SHARED_LIBS)
|
||||
+ return()
|
||||
+endif()
|
||||
install(
|
||||
TARGETS httpfs_extension
|
||||
EXPORT "${DUCKDB_EXPORT_SET}"
|
||||
|
|
@ -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}"
|
||||
|
|
@ -5,26 +5,36 @@ vcpkg_from_github(
|
|||
SHA512 4965071888bfd791ddc81ed9eb53cedcd0248b159e6db3492bf5d17557b0f7516aed0840408ff46a06e9a0989a42d7b2a7452fdaf619c8ca44de43e5d1c338b8
|
||||
HEAD_REF main
|
||||
PATCHES
|
||||
extensions.patch
|
||||
library-linkage.diff
|
||||
)
|
||||
|
||||
# Remove vendored dependencies which are not properly namespaced
|
||||
# Remove vendored dependencies which are optional or not properly namespaced
|
||||
file(REMOVE_RECURSE
|
||||
"${SOURCE_PATH}/extension/third_party/icu"
|
||||
"${SOURCE_PATH}/third_party/catch"
|
||||
"${SOURCE_PATH}/third_party/imdb"
|
||||
"${SOURCE_PATH}/third_party/snowball"
|
||||
"${SOURCE_PATH}/third_party/tpce-tool"
|
||||
)
|
||||
|
||||
set(extension_dirs "")
|
||||
|
||||
if("excel" IN_LIST FEATURES)
|
||||
vcpkg_from_github(
|
||||
OUT_SOURCE_PATH DUCKDB_EXCCEL_SOURCE_PATH
|
||||
OUT_SOURCE_PATH DUCKDB_EXCEL_SOURCE_PATH
|
||||
REPO duckdb/duckdb-excel
|
||||
REF 8504be9ec8183e4082141f9359b53a64d3a440b7
|
||||
SHA512 295bfe67c2902c09b584bee623dee7db69aad272a00e6bd4038ec65e2d8a977d1ace7261af8f67863c2fae709acc414e290e40f0bad43bae679c0a8639a0d6b5
|
||||
HEAD_REF main
|
||||
PATCHES
|
||||
library-linkage-excel.diff
|
||||
)
|
||||
file(RENAME "${DUCKDB_EXCCEL_SOURCE_PATH}" "${SOURCE_PATH}/extension/excel")
|
||||
list(APPEND extension_dirs "${DUCKDB_EXCEL_SOURCE_PATH}")
|
||||
file(WRITE "${SOURCE_PATH}/.github/config/extensions/excel.cmake" "
|
||||
duckdb_extension_load(excel
|
||||
SOURCE_DIR \"${DUCKDB_EXCEL_SOURCE_PATH}\"
|
||||
INCLUDE_DIR \"${DUCKDB_EXCEL_SOURCE_PATH}/src/excel/include\"
|
||||
)
|
||||
")
|
||||
endif()
|
||||
|
||||
if("httpfs" IN_LIST FEATURES)
|
||||
|
|
@ -34,71 +44,123 @@ if("httpfs" IN_LIST FEATURES)
|
|||
REF 0989823e43554e8a00b31959a853e29ab9bd07f9
|
||||
SHA512 71461d522aa5338df81931f937ed538b453b274d22e91ad7e0f1a92e4437a29cc869a0f5be3bd5a9abf0045dfd4681a787923ee32374be471483909c0a60a21f
|
||||
HEAD_REF main
|
||||
PATCHES
|
||||
library-linkage-httpfs.diff
|
||||
)
|
||||
file(RENAME "${DUCKDB_HTTPFS_SOURCE_PATH}" "${SOURCE_PATH}/extension/httpfs")
|
||||
list(APPEND extension_dirs "${DUCKDB_HTTPFS_SOURCE_PATH}")
|
||||
file(WRITE "${SOURCE_PATH}/.github/config/extensions/httpfs.cmake" "
|
||||
duckdb_extension_load(httpfs
|
||||
SOURCE_DIR \"${DUCKDB_HTTPFS_SOURCE_PATH}\"
|
||||
INCLUDE_DIR \"${DUCKDB_HTTPFS_SOURCE_PATH}/extension/httpfs/include\"
|
||||
)
|
||||
")
|
||||
endif()
|
||||
|
||||
if("iceberg" IN_LIST FEATURES)
|
||||
vcpkg_from_github(
|
||||
OUT_SOURCE_PATH DUCKDB_HTTPFS_SOURCE_PATH
|
||||
OUT_SOURCE_PATH DUCKDB_ICEBERG_SOURCE_PATH
|
||||
REPO duckdb/duckdb-iceberg
|
||||
REF 6b636bff44aeeccf6f6d5b54de6edf280274beea
|
||||
SHA512 f8ce593117dd5423fd5445b6fa6c1f3b11ee7c8a2fdb988c3c0208a59d5ed980b941116866f7cb1d0597662e98c03687da071cbc5617c71086eb112621e31748
|
||||
HEAD_REF main
|
||||
)
|
||||
file(RENAME "${DUCKDB_HTTPFS_SOURCE_PATH}" "${SOURCE_PATH}/extension/iceberg")
|
||||
list(APPEND extension_dirs "${DUCKDB_ICEBERG_SOURCE_PATH}")
|
||||
file(WRITE "${SOURCE_PATH}/.github/config/extensions/iceberg.cmake" "
|
||||
duckdb_extension_load(iceberg
|
||||
SOURCE_DIR \"${DUCKDB_ICEBERG_SOURCE_PATH}\"
|
||||
INCLUDE_DIR \"${DUCKDB_ICEBERG_SOURCE_PATH}/src/include\"
|
||||
)
|
||||
")
|
||||
endif()
|
||||
|
||||
string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" DUCKDB_BUILD_STATIC)
|
||||
string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" DUCKDB_BUILD_DYNAMIC)
|
||||
set(BUILD_EXTENSIONS "${FEATURES}")
|
||||
list(FILTER BUILD_EXTENSIONS INCLUDE REGEX "^(autocomplete|excel|httpfs|icu|json|tpcds|tpch)\$")
|
||||
|
||||
set(EXTENSION_LIST "autocomplete;excel;httpfs;icu;json;tpcds;tpch")
|
||||
set(BUILD_EXTENSIONS "")
|
||||
foreach(EXT ${EXTENSION_LIST})
|
||||
if(${EXT} IN_LIST FEATURES)
|
||||
list(APPEND BUILD_EXTENSIONS ${EXT})
|
||||
string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" EXTENSION_STATIC_BUILD)
|
||||
|
||||
if(VCPKG_CROSSCOMPILING AND NOT DEFINED DUCKDB_EXPLICIT_PLATFORM)
|
||||
set(DUCKDB_EXPLICIT_PLATFORM "")
|
||||
if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")
|
||||
set(DUCKDB_EXPLICIT_PLATFORM "arm64")
|
||||
elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
|
||||
set(DUCKDB_EXPLICIT_PLATFORM "amd64")
|
||||
elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
|
||||
set(DUCKDB_EXPLICIT_PLATFORM "i686")
|
||||
endif()
|
||||
if(DUCKDB_EXPLICIT_PLATFORM)
|
||||
if(VCPKG_TARGET_IS_ANDROID)
|
||||
string(APPEND DUCKDB_EXPLICIT_PLATFORM "-linux_android")
|
||||
elseif(VCPKG_TARGET_IS_FREEBSD)
|
||||
string(APPEND DUCKDB_EXPLICIT_PLATFORM "-freebsd")
|
||||
elseif(VCPKG_TARGET_IS_LINUX)
|
||||
string(APPEND DUCKDB_EXPLICIT_PLATFORM "-linux")
|
||||
elseif(VCPKG_TARGET_IS_OSX)
|
||||
string(APPEND DUCKDB_EXPLICIT_PLATFORM "-osx")
|
||||
elseif(VCPKG_TARGET_IS_WINDOWS)
|
||||
string(APPEND DUCKDB_EXPLICIT_PLATFORM "-windows")
|
||||
if(VCPKG_TARGET_IS_MINGW)
|
||||
string(APPEND DUCKDB_EXPLICIT_PLATFORM "_mingw")
|
||||
endif()
|
||||
elseif()
|
||||
set(DUCKDB_EXPLICIT_PLATFORM "") # unknown. override in triplet file.
|
||||
endif()
|
||||
endif()
|
||||
endforeach()
|
||||
if(NOT "${BUILD_EXTENSIONS}" STREQUAL "")
|
||||
set(BUILD_EXTENSIONS_FLAG "-DBUILD_EXTENSIONS='${BUILD_EXTENSIONS}'")
|
||||
endif()
|
||||
|
||||
vcpkg_cmake_configure(
|
||||
SOURCE_PATH ${SOURCE_PATH}
|
||||
OPTIONS
|
||||
-DOVERRIDE_GIT_DESCRIBE=v${VERSION}-0-g0123456789
|
||||
-DDUCKDB_EXPLICIT_PLATFORM=${DUCKDB_EXPLICIT_PLATFORM}
|
||||
-DDUCKDB_EXPLICIT_VERSION=v${VERSION}
|
||||
-DBUILD_UNITTESTS=OFF
|
||||
"-DBUILD_EXTENSIONS=${BUILD_EXTENSIONS}"
|
||||
-DBUILD_SHELL=FALSE
|
||||
"${BUILD_EXTENSIONS_FLAG}"
|
||||
-DENABLE_EXTENSION_AUTOLOADING=1
|
||||
-DBUILD_UNITTESTS=OFF
|
||||
-DCMAKE_JOB_POOL_LINK=console # Serialize linking to avoid OOM
|
||||
-DENABLE_EXTENSION_AUTOINSTALL=1
|
||||
-DWITH_INTERNAL_ICU=OFF
|
||||
-DENABLE_EXTENSION_AUTOLOADING=1
|
||||
-DENABLE_SANITIZER=OFF
|
||||
-DENABLE_THREAD_SANITIZER=OFF
|
||||
-DENABLE_UBSAN=OFF
|
||||
"-DEXTENSION_CONFIG_BASE_DIR=${SOURCE_PATH}/OUT_OF_TREE"
|
||||
"-DEXTENSION_STATIC_BUILD=${EXTENSION_STATIC_BUILD}"
|
||||
"-DINSTALL_CMAKE_DIR:STRING=share/${PORT}"
|
||||
-DWITH_INTERNAL_ICU=OFF
|
||||
)
|
||||
|
||||
vcpkg_cmake_install()
|
||||
vcpkg_cmake_config_fixup()
|
||||
|
||||
if(EXISTS "${CURRENT_PACKAGES_DIR}/CMake")
|
||||
vcpkg_cmake_config_fixup(CONFIG_PATH CMake)
|
||||
elseif(EXISTS "${CURRENT_PACKAGES_DIR}/lib/cmake/DuckDB")
|
||||
vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/DuckDB")
|
||||
elseif(EXISTS "${CURRENT_PACKAGES_DIR}/lib/cmake/${PORT}")
|
||||
vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}")
|
||||
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
|
||||
foreach(path IN ITEMS duckdb.h duckdb/common/winapi.hpp)
|
||||
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/${path}" "#ifdef DUCKDB_STATIC_BUILD" "#if 1")
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
|
||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin")
|
||||
endif()
|
||||
|
||||
file(REMOVE_RECURSE
|
||||
"${CURRENT_PACKAGES_DIR}/include/duckdb/main/capi/header_generation"
|
||||
)
|
||||
|
||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
|
||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
|
||||
# empty dirs
|
||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/duckdb/main/capi/header_generation")
|
||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/duckdb/storage/serialization")
|
||||
|
||||
file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
|
||||
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")
|
||||
|
||||
set(third_party_licenses "")
|
||||
file(COPY_FILE "${SOURCE_PATH}/third_party/thrift/thrift/LICENSE" "${SOURCE_PATH}/third_party/thrift/LICENSE")
|
||||
file(GLOB third_party_files "${SOURCE_PATH}/third_party/*")
|
||||
foreach(maybe_directory IN LISTS extension_dirs third_party_files)
|
||||
if(IS_DIRECTORY "${maybe_directory}")
|
||||
cmake_path(GET maybe_directory FILENAME package)
|
||||
set(license_file "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/## ${package} license")
|
||||
file(COPY_FILE "${maybe_directory}/LICENSE" "${license_file}")
|
||||
list(APPEND third_party_licenses "${license_file}")
|
||||
endif()
|
||||
endforeach()
|
||||
vcpkg_install_copyright(
|
||||
COMMENT [[
|
||||
Duckdb contains copyies of many third-party packages which are subject to
|
||||
separate license terms.
|
||||
]]
|
||||
FILE_LIST
|
||||
"${SOURCE_PATH}/LICENSE"
|
||||
${third_party_licenses}
|
||||
)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
The package DuckDB provides CMake targets:
|
||||
duckdb provides CMake targets:
|
||||
|
||||
find_package(DuckDB CONFIG REQUIRED)
|
||||
target_link_libraries(main PRIVATE $<IF:$<TARGET_EXISTS:duckdb>,duckdb,duckdb_static>)
|
||||
find_package(DuckDB CONFIG REQUIRED)
|
||||
target_link_libraries(main PRIVATE $<IF:$<TARGET_EXISTS:duckdb>,duckdb,duckdb_static>)
|
||||
|
|
|
|||
|
|
@ -1,10 +1,11 @@
|
|||
{
|
||||
"name": "duckdb",
|
||||
"version": "1.4.1",
|
||||
"port-version": 1,
|
||||
"description": "High-performance in-process analytical database system",
|
||||
"homepage": "https://duckdb.org",
|
||||
"license": "MIT",
|
||||
"supports": "!(uwp | android | (windows & arm64))",
|
||||
"license": null,
|
||||
"supports": "!uwp",
|
||||
"dependencies": [
|
||||
{
|
||||
"name": "vcpkg-cmake",
|
||||
|
|
@ -23,14 +24,24 @@
|
|||
"description": "Statically link the excel extension into DuckDB",
|
||||
"dependencies": [
|
||||
"expat",
|
||||
"minizip-ng"
|
||||
{
|
||||
"name": "minizip-ng",
|
||||
"default-features": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"httpfs": {
|
||||
"description": "Statically link the httpfs extension into DuckDB",
|
||||
"dependencies": [
|
||||
"curl",
|
||||
"openssl"
|
||||
{
|
||||
"name": "curl",
|
||||
"default-features": false
|
||||
},
|
||||
"openssl",
|
||||
{
|
||||
"name": "zlib",
|
||||
"platform": "mingw"
|
||||
}
|
||||
]
|
||||
},
|
||||
"iceberg": {
|
||||
|
|
|
|||
|
|
@ -945,6 +945,19 @@ vcpkg-ci-curl:x64-windows-static-md=pass
|
|||
vcpkg-ci-curl:x64-windows-static=pass
|
||||
vcpkg-ci-curl:x64-windows=pass
|
||||
vcpkg-ci-curl:x86-windows=pass
|
||||
vcpkg-ci-duckdb:arm-neon-android=pass
|
||||
vcpkg-ci-duckdb:arm64-android=pass
|
||||
vcpkg-ci-duckdb:arm64-osx=pass
|
||||
vcpkg-ci-duckdb:arm64-windows-static-md=pass
|
||||
vcpkg-ci-duckdb:arm64-windows=pass
|
||||
vcpkg-ci-duckdb:x64-android=pass
|
||||
vcpkg-ci-duckdb:x64-linux=pass
|
||||
vcpkg-ci-duckdb:x64-osx=pass
|
||||
vcpkg-ci-duckdb:x64-windows-release=pass
|
||||
vcpkg-ci-duckdb:x64-windows-static-md=pass
|
||||
vcpkg-ci-duckdb:x64-windows-static=pass
|
||||
vcpkg-ci-duckdb:x64-windows=pass
|
||||
vcpkg-ci-duckdb:x86-windows=pass
|
||||
vcpkg-ci-ffmpeg:arm-neon-android=pass
|
||||
vcpkg-ci-ffmpeg:arm64-android=pass
|
||||
vcpkg-ci-ffmpeg:arm64-osx=pass
|
||||
|
|
|
|||
|
|
@ -1 +1,21 @@
|
|||
set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
|
||||
|
||||
vcpkg_cmake_configure(
|
||||
SOURCE_PATH "${CURRENT_PORT_DIR}/project"
|
||||
)
|
||||
vcpkg_cmake_install()
|
||||
|
||||
if(NOT VCPKG_CROSSCOMPILING)
|
||||
if(CMAKE_HOST_WIN32)
|
||||
vcpkg_host_path_list(PREPEND ENV{PATH} "${CURRENT_INSTALLED_DIR}/bin")
|
||||
elseif(CMAKE_HOST_APPLE)
|
||||
vcpkg_host_path_list(PREPEND ENV{DYLD_LIBRARY_PATH} "${CURRENT_INSTALLED_DIR}/lib")
|
||||
else()
|
||||
vcpkg_host_path_list(PREPEND ENV{LD_LIBRARY_PATH} "${CURRENT_INSTALLED_DIR}/lib")
|
||||
endif()
|
||||
vcpkg_execute_required_process(
|
||||
COMMAND "${CURRENT_PACKAGES_DIR}/bin/${PORT}/main"
|
||||
WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}"
|
||||
LOGNAME release-test
|
||||
)
|
||||
endif()
|
||||
|
|
|
|||
|
|
@ -0,0 +1,13 @@
|
|||
cmake_minimum_required(VERSION 3.16)
|
||||
project(duckdb-test C CXX)
|
||||
|
||||
add_executable(main main.c)
|
||||
|
||||
find_package(DuckDB CONFIG REQUIRED)
|
||||
if(BUILD_SHARED_LIBS)
|
||||
add_library(imported::duckdb ALIAS duckdb)
|
||||
else()
|
||||
add_library(imported::duckdb ALIAS duckdb_static)
|
||||
endif()
|
||||
target_link_libraries(main PRIVATE imported::duckdb)
|
||||
install(TARGETS main RUNTIME DESTINATION bin/vcpkg-ci-duckdb)
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
#include <stdio.h>
|
||||
#include <duckdb.h>
|
||||
|
||||
int main()
|
||||
{
|
||||
duckdb_database db;
|
||||
if (duckdb_open(NULL, &db) == DuckDBError) {
|
||||
printf("open failed\n");
|
||||
return 1;
|
||||
}
|
||||
duckdb_connection con;
|
||||
if (duckdb_connect(db, &con) == DuckDBError) {
|
||||
printf("connect failed\n");
|
||||
return 2;
|
||||
}
|
||||
const char* query_icu =
|
||||
"LOAD icu;"
|
||||
"SELECT current_localtime();"
|
||||
"PRAGMA collations;"
|
||||
"SELECT list(collname) FROM pragma_collations();"
|
||||
;
|
||||
duckdb_result result;
|
||||
if (duckdb_query(con, query_icu, &result) == DuckDBError) {
|
||||
printf("icu query failed: %s\n", duckdb_result_error(&result));
|
||||
return 3;
|
||||
}
|
||||
else {
|
||||
printf("success\n");
|
||||
}
|
||||
duckdb_disconnect(&con);
|
||||
duckdb_close(&db);
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "vcpkg-ci-duckdb",
|
||||
"version": "0.0.1",
|
||||
"version-string": "ci",
|
||||
"description": "Test the icu feature",
|
||||
"license": "BSD-3-Clause",
|
||||
"dependencies": [
|
||||
|
|
@ -9,6 +9,10 @@
|
|||
"features": [
|
||||
"icu"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "vcpkg-cmake",
|
||||
"host": true
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2558,7 +2558,7 @@
|
|||
},
|
||||
"duckdb": {
|
||||
"baseline": "1.4.1",
|
||||
"port-version": 0
|
||||
"port-version": 1
|
||||
},
|
||||
"duckx": {
|
||||
"baseline": "1.2.2",
|
||||
|
|
|
|||
|
|
@ -1,5 +1,10 @@
|
|||
{
|
||||
"versions": [
|
||||
{
|
||||
"git-tree": "15682ca51a866ca6a25748b525a2880f02d69d8d",
|
||||
"version": "1.4.1",
|
||||
"port-version": 1
|
||||
},
|
||||
{
|
||||
"git-tree": "e6c697b0852430ffdff41e631a0ccd9144dc6845",
|
||||
"version": "1.4.1",
|
||||
|
|
|
|||
Loading…
Reference in New Issue