diff options
Diffstat (limited to 'vcpkg/ports/arrow-adbc')
| -rw-r--r-- | vcpkg/ports/arrow-adbc/fix_static_build.patch | 13 | ||||
| -rw-r--r-- | vcpkg/ports/arrow-adbc/fix_windows_build.patch | 13 | ||||
| -rw-r--r-- | vcpkg/ports/arrow-adbc/portfile.cmake | 65 | ||||
| -rw-r--r-- | vcpkg/ports/arrow-adbc/unvendor.patch | 94 | ||||
| -rw-r--r-- | vcpkg/ports/arrow-adbc/vcpkg.json | 53 |
5 files changed, 238 insertions, 0 deletions
diff --git a/vcpkg/ports/arrow-adbc/fix_static_build.patch b/vcpkg/ports/arrow-adbc/fix_static_build.patch new file mode 100644 index 0000000..6e427c1 --- /dev/null +++ b/vcpkg/ports/arrow-adbc/fix_static_build.patch @@ -0,0 +1,13 @@ +diff --git a/c/cmake_modules/BuildUtils.cmake b/c/cmake_modules/BuildUtils.cmake +index 88209ac..aefff1d 100644 +--- a/c/cmake_modules/BuildUtils.cmake ++++ b/c/cmake_modules/BuildUtils.cmake +@@ -310,7 +310,7 @@ function(ADD_ARROW_LIB LIB_NAME) + if(BUILD_STATIC) + add_library(${LIB_NAME}_static STATIC ${LIB_DEPS}) + target_compile_features(${LIB_NAME}_static PRIVATE cxx_std_11) +- set_property(TARGET ${LIB_NAME}_shared PROPERTY CXX_STANDARD_REQUIRED ON) ++ set_property(TARGET ${LIB_NAME}_static PROPERTY CXX_STANDARD_REQUIRED ON) + adbc_configure_target(${LIB_NAME}_static) + if(EXTRA_DEPS) + add_dependencies(${LIB_NAME}_static ${EXTRA_DEPS}) diff --git a/vcpkg/ports/arrow-adbc/fix_windows_build.patch b/vcpkg/ports/arrow-adbc/fix_windows_build.patch new file mode 100644 index 0000000..aded73e --- /dev/null +++ b/vcpkg/ports/arrow-adbc/fix_windows_build.patch @@ -0,0 +1,13 @@ +diff --git a/c/driver_manager/adbc_driver_manager.cc b/c/driver_manager/adbc_driver_manager.cc +index 0ce173a..2a7fef8 100644 +--- a/c/driver_manager/adbc_driver_manager.cc ++++ b/c/driver_manager/adbc_driver_manager.cc +@@ -675,7 +675,7 @@ std::string AdbcDriverManagerDefaultEntrypoint(const std::string& driver) { + // if pos == npos this is the entire filename + std::string token = filename.substr(prev, pos - prev); + // capitalize first letter +- token[0] = std::toupper(static_cast<unsigned char>(token[0])); ++ token[0] = static_cast<char>(std::toupper(static_cast<unsigned char>(token[0]))); + + entrypoint += token; + diff --git a/vcpkg/ports/arrow-adbc/portfile.cmake b/vcpkg/ports/arrow-adbc/portfile.cmake new file mode 100644 index 0000000..13a22bc --- /dev/null +++ b/vcpkg/ports/arrow-adbc/portfile.cmake @@ -0,0 +1,65 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO apache/arrow-adbc + REF apache-arrow-adbc-${VERSION} + SHA512 59cccbeeefa295d69cacfa8851b621376106aca57ebd94291523fcca314c0bd10c1d296801d1eacce9edddd46a8c87deaf3d8367e32ba5fd5b322b34c6af8625 + HEAD_REF main + PATCHES + fix_static_build.patch + fix_windows_build.patch + unvendor.patch +) +file(REMOVE_RECURSE "${SOURCE_PATH}/c/vendor") + +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + FEATURES + "sqlite" "ADBC_DRIVER_SQLITE" + "postgresql" "ADBC_DRIVER_POSTGRESQL" + "flightsql" "ADBC_DRIVER_FLIGHTSQL" + "snowflake" "ADBC_DRIVER_SNOWFLAKE" + "bigquery" "ADBC_DRIVER_BIGQUERY" +) + +string(COMPARE EQUAL ${VCPKG_LIBRARY_LINKAGE} "dynamic" ADBC_BUILD_SHARED) +string(COMPARE EQUAL ${VCPKG_LIBRARY_LINKAGE} "static" ADBC_BUILD_STATIC) + +vcpkg_cmake_configure( + SOURCE_PATH ${SOURCE_PATH}/c + OPTIONS + ${FEATURE_OPTIONS} + -DADBC_DRIVER_MANAGER=ON + -DADBC_BUILD_SHARED=${ADBC_BUILD_SHARED} + -DADBC_BUILD_STATIC=${ADBC_BUILD_STATIC} + -DADBC_WITH_VENDORED_NANOARROW=OFF + -DADBC_WITH_VENDORED_FMT=OFF + -DADBC_BUILD_WARNING_LEVEL=PRODUCTION +) + +vcpkg_cmake_install() +vcpkg_cmake_config_fixup( + PACKAGE_NAME AdbcDriverManager + CONFIG_PATH lib/cmake/AdbcDriverManager + DO_NOT_DELETE_PARENT_CONFIG_PATH +) +if("postgresql" IN_LIST FEATURES) + vcpkg_cmake_config_fixup( + PACKAGE_NAME AdbcDriverPostgreSQL + CONFIG_PATH lib/cmake/AdbcDriverPostgreSQL + DO_NOT_DELETE_PARENT_CONFIG_PATH + ) +endif() +if("sqlite" IN_LIST FEATURES) + vcpkg_cmake_config_fixup( + PACKAGE_NAME AdbcDriverSQLite + CONFIG_PATH lib/cmake/AdbcDriverSQLite + DO_NOT_DELETE_PARENT_CONFIG_PATH + ) +endif() +vcpkg_fixup_pkgconfig() + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/cmake") +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/cmake") + +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") diff --git a/vcpkg/ports/arrow-adbc/unvendor.patch b/vcpkg/ports/arrow-adbc/unvendor.patch new file mode 100644 index 0000000..bb5192a --- /dev/null +++ b/vcpkg/ports/arrow-adbc/unvendor.patch @@ -0,0 +1,94 @@ +diff --git a/c/CMakeLists.txt b/c/CMakeLists.txt +index be69103..e92a7fc 100644 +--- a/c/CMakeLists.txt ++++ b/c/CMakeLists.txt +@@ -29,9 +29,18 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON) + + include(CTest) + +-add_subdirectory(vendor/fmt EXCLUDE_FROM_ALL) +-set_target_properties(fmt PROPERTIES POSITION_INDEPENDENT_CODE ON) +-add_subdirectory(vendor/nanoarrow) ++ ++if(ADBC_WITH_VENDORED_FMT) ++ add_subdirectory(vendor/fmt EXCLUDE_FROM_ALL) ++ set_target_properties(fmt PROPERTIES POSITION_INDEPENDENT_CODE ON) ++else() ++ find_package(fmt REQUIRED) ++endif() ++if(ADBC_WITH_VENDORED_NANOARROW) ++ add_subdirectory(vendor/nanoarrow) ++else() ++ find_package(nanoarrow REQUIRED) ++endif() + add_subdirectory(driver/common) + add_subdirectory(driver/framework) + +diff --git a/c/cmake_modules/DefineOptions.cmake b/c/cmake_modules/DefineOptions.cmake +index 13e6757..6e990a7 100644 +--- a/c/cmake_modules/DefineOptions.cmake ++++ b/c/cmake_modules/DefineOptions.cmake +@@ -133,6 +133,9 @@ if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}") + + define_option(ADBC_GGDB_DEBUG "Pass -ggdb flag to debug builds" ON) + ++ define_option(ADBC_WITH_VENDORED_FMT "Use vendored copy of fmt" ON) ++ define_option(ADBC_WITH_VENDORED_NANOARROW "Use vendored copy of nanoarrow" ON) ++ + #---------------------------------------------------------------------- + set_option_category("Test and benchmark") + +diff --git a/c/driver/common/CMakeLists.txt b/c/driver/common/CMakeLists.txt +index 751eda3..5739e4e 100644 +--- a/c/driver/common/CMakeLists.txt ++++ b/c/driver/common/CMakeLists.txt +@@ -18,8 +18,12 @@ + add_library(adbc_driver_common STATIC utils.c) + adbc_configure_target(adbc_driver_common) + set_target_properties(adbc_driver_common PROPERTIES POSITION_INDEPENDENT_CODE ON) +-target_include_directories(adbc_driver_common PRIVATE "${REPOSITORY_ROOT}/c/include" +- "${REPOSITORY_ROOT}/c/vendor") ++target_include_directories(adbc_driver_common PRIVATE "${REPOSITORY_ROOT}/c/include") ++if(ADBC_WITH_VENDORED_NANOARROW) ++ target_include_directories(adbc_driver_common PRIVATE "${REPOSITORY_ROOT}/c/vendor") ++else() ++ target_link_libraries(adbc_driver_common PRIVATE nanoarrow::nanoarrow) ++endif() + + if(ADBC_BUILD_TESTS) + add_test_case(driver_common_test +diff --git a/c/driver/postgresql/CMakeLists.txt b/c/driver/postgresql/CMakeLists.txt +index a720696..32af4ac 100644 +--- a/c/driver/postgresql/CMakeLists.txt ++++ b/c/driver/postgresql/CMakeLists.txt +@@ -46,13 +46,11 @@ add_arrow_lib(adbc_driver_postgresql + SHARED_LINK_LIBS + adbc_driver_common + adbc_driver_framework +- nanoarrow + ${LIBPQ_LINK_LIBRARIES} + STATIC_LINK_LIBS + ${LIBPQ_LINK_LIBRARIES} + adbc_driver_common + adbc_driver_framework +- nanoarrow + ${LIBPQ_STATIC_LIBRARIES}) + + foreach(LIB_TARGET ${ADBC_LIBRARIES}) +diff --git a/c/driver/sqlite/CMakeLists.txt b/c/driver/sqlite/CMakeLists.txt +index d0c45b7..bb0772b 100644 +--- a/c/driver/sqlite/CMakeLists.txt ++++ b/c/driver/sqlite/CMakeLists.txt +@@ -52,12 +52,10 @@ add_arrow_lib(adbc_driver_sqlite + ${SQLite3_LINK_LIBRARIES} + adbc_driver_common + adbc_driver_framework +- nanoarrow + STATIC_LINK_LIBS + ${SQLite3_LINK_LIBRARIES} + adbc_driver_common + adbc_driver_framework +- nanoarrow + ${LIBPQ_STATIC_LIBRARIES}) + + foreach(LIB_TARGET ${ADBC_LIBRARIES}) diff --git a/vcpkg/ports/arrow-adbc/vcpkg.json b/vcpkg/ports/arrow-adbc/vcpkg.json new file mode 100644 index 0000000..947dd8c --- /dev/null +++ b/vcpkg/ports/arrow-adbc/vcpkg.json @@ -0,0 +1,53 @@ +{ + "name": "arrow-adbc", + "version": "16", + "description": "Apache Arrow ADBC: Database Connectivity API for Arrow-based data systems", + "homepage": "https://arrow.apache.org/adbc/", + "license": "Apache-2.0", + "dependencies": [ + { + "name": "arrow", + "default-features": false, + "features": [ + "dataset", + "parquet" + ] + }, + "fmt", + "nanoarrow", + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ], + "features": { + "bigquery": { + "description": "Enable bigquery support", + "supports": "!windows" + }, + "flightsql": { + "description": "Enable flightsql support", + "supports": "!windows" + }, + "postgresql": { + "description": "Enable PostgreSQL support", + "dependencies": [ + "libpq" + ] + }, + "snowflake": { + "description": "Enable snowflake support", + "supports": "!windows" + }, + "sqlite": { + "description": "Enable SQLite support", + "dependencies": [ + "sqlite3" + ] + } + } +} |