diff options
Diffstat (limited to 'vcpkg/ports/arrow')
| -rw-r--r-- | vcpkg/ports/arrow/0001-msvc-static-name.patch | 13 | ||||
| -rw-r--r-- | vcpkg/ports/arrow/0003-android-musl.patch | 14 | ||||
| -rw-r--r-- | vcpkg/ports/arrow/0004-android-datetime.patch | 29 | ||||
| -rw-r--r-- | vcpkg/ports/arrow/0005-cmake-msvcruntime.patch | 24 | ||||
| -rw-r--r-- | vcpkg/ports/arrow/0006-pcg-msvc-arm64.patch | 43 | ||||
| -rw-r--r-- | vcpkg/ports/arrow/portfile.cmake | 158 | ||||
| -rw-r--r-- | vcpkg/ports/arrow/usage | 4 | ||||
| -rw-r--r-- | vcpkg/ports/arrow/usage-acero | 3 | ||||
| -rw-r--r-- | vcpkg/ports/arrow/usage-compute | 3 | ||||
| -rw-r--r-- | vcpkg/ports/arrow/usage-dataset | 3 | ||||
| -rw-r--r-- | vcpkg/ports/arrow/usage-flight | 3 | ||||
| -rw-r--r-- | vcpkg/ports/arrow/usage-flightsql | 3 | ||||
| -rw-r--r-- | vcpkg/ports/arrow/usage-parquet | 3 | ||||
| -rw-r--r-- | vcpkg/ports/arrow/vcpkg.json | 182 |
14 files changed, 485 insertions, 0 deletions
diff --git a/vcpkg/ports/arrow/0001-msvc-static-name.patch b/vcpkg/ports/arrow/0001-msvc-static-name.patch new file mode 100644 index 0000000..45624f1 --- /dev/null +++ b/vcpkg/ports/arrow/0001-msvc-static-name.patch @@ -0,0 +1,13 @@ +diff --git a/cpp/cmake_modules/BuildUtils.cmake b/cpp/cmake_modules/BuildUtils.cmake +index 391c43e0a..50f6d3d3c 100644 +--- a/cpp/cmake_modules/BuildUtils.cmake ++++ b/cpp/cmake_modules/BuildUtils.cmake +@@ -427,7 +427,7 @@ function(ADD_ARROW_LIB LIB_NAME) + target_include_directories(${LIB_NAME}_static PRIVATE ${ARG_PRIVATE_INCLUDES}) + endif() + +- if(MSVC_TOOLCHAIN) ++ if(MSVC_TOOLCHAIN AND 0) + set(LIB_NAME_STATIC ${LIB_NAME}_static) + else() + set(LIB_NAME_STATIC ${LIB_NAME}) diff --git a/vcpkg/ports/arrow/0003-android-musl.patch b/vcpkg/ports/arrow/0003-android-musl.patch new file mode 100644 index 0000000..9136150 --- /dev/null +++ b/vcpkg/ports/arrow/0003-android-musl.patch @@ -0,0 +1,14 @@ +diff --git a/cpp/src/arrow/vendored/musl/strptime.c b/cpp/src/arrow/vendored/musl/strptime.c +index 41912fd..0ea36e9 100644 +--- a/cpp/src/arrow/vendored/musl/strptime.c ++++ b/cpp/src/arrow/vendored/musl/strptime.c +@@ -18,7 +18,9 @@ + #undef HAVE_LANGINFO + + #ifndef _WIN32 ++# if !(defined(__ANDROID__) && __ANDROID_API__ < 26) + #define HAVE_LANGINFO 1 ++# endif + #endif + + #ifdef HAVE_LANGINFO diff --git a/vcpkg/ports/arrow/0004-android-datetime.patch b/vcpkg/ports/arrow/0004-android-datetime.patch new file mode 100644 index 0000000..ae8b756 --- /dev/null +++ b/vcpkg/ports/arrow/0004-android-datetime.patch @@ -0,0 +1,29 @@ +diff --git a/cpp/src/arrow/vendored/datetime/tz.h b/cpp/src/arrow/vendored/datetime/tz.h +index 61ab3df106..d456d6765f 100644 +--- a/cpp/src/arrow/vendored/datetime/tz.h ++++ b/cpp/src/arrow/vendored/datetime/tz.h +@@ -858,7 +858,9 @@ private: + load_data(std::istream& inf, std::int32_t tzh_leapcnt, std::int32_t tzh_timecnt, + std::int32_t tzh_typecnt, std::int32_t tzh_charcnt); + # if defined(ANDROID) || defined(__ANDROID__) ++public: + void parse_from_android_tzdata(std::ifstream& inf, const std::size_t off); ++private: + # endif // defined(ANDROID) || defined(__ANDROID__) + #else // !USE_OS_TZDB + DATE_API sys_info get_info_impl(sys_seconds tp, int tz_int) const; +diff --git a/cpp/src/arrow/vendored/datetime/visibility.h b/cpp/src/arrow/vendored/datetime/visibility.h +index 780c00d70b..a9514edba7 100644 +--- a/cpp/src/arrow/vendored/datetime/visibility.h ++++ b/cpp/src/arrow/vendored/datetime/visibility.h +@@ -21,6 +21,10 @@ + # define USE_OS_TZDB 1 + #endif + ++#if defined(ANDROID) || defined(__ANDROID__) ++# define BUILD_TZ_LIB ++#endif ++ + #if defined(ARROW_STATIC) + // intentially empty + #elif defined(ARROW_EXPORTING) diff --git a/vcpkg/ports/arrow/0005-cmake-msvcruntime.patch b/vcpkg/ports/arrow/0005-cmake-msvcruntime.patch new file mode 100644 index 0000000..7fab07b --- /dev/null +++ b/vcpkg/ports/arrow/0005-cmake-msvcruntime.patch @@ -0,0 +1,24 @@ +diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake
+index abfe6d274f..8bacfe89af 100644
+--- a/cpp/cmake_modules/ThirdpartyToolchain.cmake
++++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake
+@@ -886,9 +886,17 @@ foreach(CONFIG DEBUG MINSIZEREL RELEASE RELWITHDEBINFO)
+ set(EP_CXX_FLAGS_${CONFIG} "${CMAKE_CXX_FLAGS_${CONFIG}}")
+ set(EP_C_FLAGS_${CONFIG} "${CMAKE_C_FLAGS_${CONFIG}}")
+ if(CONFIG STREQUAL DEBUG)
+- set(EP_MSVC_RUNTIME_LIBRARY MultiThreadedDebugDLL)
++ if(BUILD_SHARED_LIBS)
++ set(EP_MSVC_RUNTIME_LIBRARY MultiThreadedDebugDLL)
++ else()
++ set(EP_MSVC_RUNTIME_LIBRARY MultiThreadedDebug)
++ endif()
+ else()
+- set(EP_MSVC_RUNTIME_LIBRARY MultiThreadedDLL)
++ if(BUILD_SHARED_LIBS)
++ set(EP_MSVC_RUNTIME_LIBRARY MultiThreadedDLL)
++ else()
++ set(EP_MSVC_RUNTIME_LIBRARY MultiThreaded)
++ endif()
+ endif()
+ string(APPEND EP_CXX_FLAGS_${CONFIG}
+ " ${CMAKE_CXX_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_${EP_MSVC_RUNTIME_LIBRARY}}")
diff --git a/vcpkg/ports/arrow/0006-pcg-msvc-arm64.patch b/vcpkg/ports/arrow/0006-pcg-msvc-arm64.patch new file mode 100644 index 0000000..93ee0cb --- /dev/null +++ b/vcpkg/ports/arrow/0006-pcg-msvc-arm64.patch @@ -0,0 +1,43 @@ +diff --git a/cpp/src/arrow/vendored/pcg/pcg_uint128.hpp b/cpp/src/arrow/vendored/pcg/pcg_uint128.hpp +index 0181e69e4e..012f3d6682 100644 +--- a/cpp/src/arrow/vendored/pcg/pcg_uint128.hpp ++++ b/cpp/src/arrow/vendored/pcg/pcg_uint128.hpp +@@ -67,7 +67,7 @@ + #define PCG_LITTLE_ENDIAN 1 + #elif __BIG_ENDIAN__ || _BIG_ENDIAN + #define PCG_LITTLE_ENDIAN 0 +- #elif __x86_64 || __x86_64__ || _M_X64 || __i386 || __i386__ || _M_IX86 ++ #elif __x86_64 || __x86_64__ || _M_X64 || __i386 || __i386__ || _M_IX86 || _M_ARM64 + #define PCG_LITTLE_ENDIAN 1 + #elif __powerpc__ || __POWERPC__ || __ppc__ || __PPC__ \ + || __m68k__ || __mc68000__ +@@ -734,7 +734,13 @@ uint_x4<UInt,UIntX2> operator*(const uint_x4<UInt,UIntX2>& a, + + #if PCG_64BIT_SPECIALIZATIONS + #if defined(_MSC_VER) ++#if defined(_M_X64) || defined(_M_IX86) + #pragma intrinsic(_umul128) ++#elif defined(_M_ARM64) ++#pragma intrinsic(__umulh) ++#else ++#error Unsupported architecture ++#endif + #endif + + #if defined(_MSC_VER) || __SIZEOF_INT128__ +@@ -743,8 +749,15 @@ uint_x4<UInt32,uint64_t> operator*(const uint_x4<UInt32,uint64_t>& a, + const uint_x4<UInt32,uint64_t>& b) + { + #if defined(_MSC_VER) ++#if defined(_M_X64) || defined(_M_IX86) + uint64_t hi; + uint64_t lo = _umul128(a.d.v01, b.d.v01, &hi); ++#elif defined(_M_ARM64) ++ uint64_t lo = a.d.v01 * b.d.v01; ++ uint64_t hi = __umulh(a.d.v01, b.d.v01); ++#else ++#error Unsupported architecture ++#endif + #else + __uint128_t r = __uint128_t(a.d.v01) * __uint128_t(b.d.v01); + uint64_t lo = uint64_t(r); diff --git a/vcpkg/ports/arrow/portfile.cmake b/vcpkg/ports/arrow/portfile.cmake new file mode 100644 index 0000000..2b1e120 --- /dev/null +++ b/vcpkg/ports/arrow/portfile.cmake @@ -0,0 +1,158 @@ +vcpkg_download_distfile( + ARCHIVE_PATH + URLS "https://archive.apache.org/dist/arrow/arrow-${VERSION}/apache-arrow-${VERSION}.tar.gz" + FILENAME apache-arrow-${VERSION}.tar.gz + SHA512 89da6de7eb2513c797d6671e1addf40b8b156215b481cf2511fa69faa16547c52d8220727626eeda499e4384d276e03880cd920aaab41c3d15106743d51a90a6 +) +vcpkg_extract_source_archive( + SOURCE_PATH + ARCHIVE ${ARCHIVE_PATH} + PATCHES + 0001-msvc-static-name.patch + 0003-android-musl.patch + 0004-android-datetime.patch + 0005-cmake-msvcruntime.patch + 0006-pcg-msvc-arm64.patch +) + +# Check cpp/cmake_modules/DefineOptions.cmake for option dependencies - +# they must be modeled as feature dependencies in vcpkg.json. +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + FEATURES + acero ARROW_ACERO + compute ARROW_COMPUTE + csv ARROW_CSV + cuda ARROW_CUDA + dataset ARROW_DATASET + filesystem ARROW_FILESYSTEM + flight ARROW_FLIGHT + flightsql ARROW_FLIGHT_SQL + gcs ARROW_GCS + jemalloc ARROW_JEMALLOC + json ARROW_JSON + mimalloc ARROW_MIMALLOC + orc ARROW_ORC + parquet ARROW_PARQUET + parquet PARQUET_REQUIRE_ENCRYPTION + s3 ARROW_S3 +) + +if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) + list(APPEND FEATURE_OPTIONS "-DARROW_USE_NATIVE_INT128=OFF") +endif() + +if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") + list(APPEND FEATURE_OPTIONS "-DARROW_SIMD_LEVEL=NONE") +endif() + +string(COMPARE EQUAL ${VCPKG_LIBRARY_LINKAGE} "dynamic" ARROW_BUILD_SHARED) +string(COMPARE EQUAL ${VCPKG_LIBRARY_LINKAGE} "static" ARROW_BUILD_STATIC) +string(COMPARE EQUAL ${VCPKG_LIBRARY_LINKAGE} "dynamic" ARROW_DEPENDENCY_USE_SHARED) + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}/cpp" + OPTIONS + ${FEATURE_OPTIONS} + -DARROW_BUILD_SHARED=${ARROW_BUILD_SHARED} + -DARROW_BUILD_STATIC=${ARROW_BUILD_STATIC} + -DARROW_BUILD_TESTS=OFF + -DARROW_DEPENDENCY_SOURCE=SYSTEM + -DARROW_DEPENDENCY_USE_SHARED=${ARROW_DEPENDENCY_USE_SHARED} + -DARROW_PACKAGE_KIND=vcpkg + -DARROW_WITH_BROTLI=ON + -DARROW_WITH_BZ2=ON + -DARROW_WITH_LZ4=ON + -DARROW_WITH_SNAPPY=ON + -DARROW_WITH_ZLIB=ON + -DARROW_WITH_ZSTD=ON + -DBUILD_WARNING_LEVEL=PRODUCTION + -DZSTD_MSVC_LIB_PREFIX= + MAYBE_UNUSED_VARIABLES + ZSTD_MSVC_LIB_PREFIX +) + +vcpkg_cmake_install() +vcpkg_copy_pdbs() + +vcpkg_fixup_pkgconfig() + +if(EXISTS "${CURRENT_PACKAGES_DIR}/lib/arrow_static.lib") + message(FATAL_ERROR "Installed lib file should be named 'arrow.lib' via patching the upstream build.") +endif() + +if("dataset" IN_LIST FEATURES) + vcpkg_cmake_config_fixup( + PACKAGE_NAME arrowdataset + CONFIG_PATH lib/cmake/ArrowDataset + DO_NOT_DELETE_PARENT_CONFIG_PATH + ) +endif() + +if("acero" IN_LIST FEATURES) + vcpkg_cmake_config_fixup( + PACKAGE_NAME arrowacero + CONFIG_PATH lib/cmake/ArrowAcero + DO_NOT_DELETE_PARENT_CONFIG_PATH + ) +endif() + +if("compute" IN_LIST FEATURES) + vcpkg_cmake_config_fixup( + PACKAGE_NAME arrowcompute + CONFIG_PATH lib/cmake/ArrowCompute + DO_NOT_DELETE_PARENT_CONFIG_PATH + ) +endif() + +if("flight" IN_LIST FEATURES) + vcpkg_cmake_config_fixup( + PACKAGE_NAME arrowflight + CONFIG_PATH lib/cmake/ArrowFlight + DO_NOT_DELETE_PARENT_CONFIG_PATH + ) +endif() + +if("flightsql" IN_LIST FEATURES) + vcpkg_cmake_config_fixup( + PACKAGE_NAME arrowflightsql + CONFIG_PATH lib/cmake/ArrowFlightSql + DO_NOT_DELETE_PARENT_CONFIG_PATH + ) +endif() + +if("parquet" IN_LIST FEATURES) + vcpkg_cmake_config_fixup( + PACKAGE_NAME parquet + CONFIG_PATH lib/cmake/Parquet + DO_NOT_DELETE_PARENT_CONFIG_PATH + ) +endif() + +file(GLOB main_configs "${CURRENT_PACKAGES_DIR}/lib/cmake/Arrow/*onfig.cmake") +file(GLOB extra_configs "${CURRENT_PACKAGES_DIR}/lib/cmake/*/*onfig.cmake") +list(REMOVE_ITEM extra_configs ${main_configs}) +if(NOT "${extra_configs}" STREQUAL "") + message("${Z_VCPKG_BACKCOMPAT_MESSAGE_LEVEL}" + "Unhandled CMake config: ${extra_configs}\n" + "This might be caused by insufficient feature dependencies in ports/arrow/vcpkg.json." + ) +endif() +vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/Arrow) + +file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") +foreach(feature IN ITEMS parquet dataset acero compute flight flightsql) + if(feature IN_LIST FEATURES) + file(READ "${CMAKE_CURRENT_LIST_DIR}/usage-${feature}" feature_usage) + file(APPEND "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" "${feature_usage}") + endif() +endforeach() + +if("example" IN_LIST FEATURES) + file(INSTALL "${SOURCE_PATH}/cpp/examples/minimal_build/" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}/example") +endif() + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/doc") + +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") diff --git a/vcpkg/ports/arrow/usage b/vcpkg/ports/arrow/usage new file mode 100644 index 0000000..a004363 --- /dev/null +++ b/vcpkg/ports/arrow/usage @@ -0,0 +1,4 @@ +The package arrow provides CMake targets:
+
+ find_package(Arrow CONFIG REQUIRED)
+ target_link_libraries(main PRIVATE "$<IF:$<BOOL:${ARROW_BUILD_STATIC}>,Arrow::arrow_static,Arrow::arrow_shared>")
diff --git a/vcpkg/ports/arrow/usage-acero b/vcpkg/ports/arrow/usage-acero new file mode 100644 index 0000000..bde5ef8 --- /dev/null +++ b/vcpkg/ports/arrow/usage-acero @@ -0,0 +1,3 @@ +
+ find_package(ArrowAcero CONFIG REQUIRED)
+ target_link_libraries(main PRIVATE "$<IF:$<BOOL:${ARROW_BUILD_STATIC}>,ArrowAcero::arrow_acero_static,ArrowAcero::arrow_acero_shared>")
diff --git a/vcpkg/ports/arrow/usage-compute b/vcpkg/ports/arrow/usage-compute new file mode 100644 index 0000000..709428b --- /dev/null +++ b/vcpkg/ports/arrow/usage-compute @@ -0,0 +1,3 @@ + + find_package(ArrowCompute CONFIG REQUIRED) + target_link_libraries(main PRIVATE "$<IF:$<BOOL:${ARROW_BUILD_STATIC}>,ArrowCompute::arrow_compute_static,ArrowCompute::arrow_compute_shared>") diff --git a/vcpkg/ports/arrow/usage-dataset b/vcpkg/ports/arrow/usage-dataset new file mode 100644 index 0000000..dcb9bda --- /dev/null +++ b/vcpkg/ports/arrow/usage-dataset @@ -0,0 +1,3 @@ +
+ find_package(ArrowDataset CONFIG REQUIRED)
+ target_link_libraries(main PRIVATE "$<IF:$<BOOL:${ARROW_BUILD_STATIC}>,ArrowDataset::arrow_dataset_static,ArrowDataset::arrow_dataset_shared>")
diff --git a/vcpkg/ports/arrow/usage-flight b/vcpkg/ports/arrow/usage-flight new file mode 100644 index 0000000..69abcf6 --- /dev/null +++ b/vcpkg/ports/arrow/usage-flight @@ -0,0 +1,3 @@ +
+ find_package(ArrowFlight CONFIG REQUIRED)
+ target_link_libraries(main PRIVATE "$<IF:$<BOOL:${ARROW_BUILD_STATIC}>,ArrowFlight::arrow_flight_static,ArrowFlight::arrow_flight_shared>")
diff --git a/vcpkg/ports/arrow/usage-flightsql b/vcpkg/ports/arrow/usage-flightsql new file mode 100644 index 0000000..2f7e9cf --- /dev/null +++ b/vcpkg/ports/arrow/usage-flightsql @@ -0,0 +1,3 @@ +
+ find_package(ArrowFlightSql CONFIG REQUIRED)
+ target_link_libraries(main PRIVATE "$<IF:$<BOOL:${ARROW_BUILD_STATIC}>,ArrowFlightSql::arrow_flight_sql_static,ArrowFlightSql::arrow_flight_sql_shared>")
diff --git a/vcpkg/ports/arrow/usage-parquet b/vcpkg/ports/arrow/usage-parquet new file mode 100644 index 0000000..ddec5c5 --- /dev/null +++ b/vcpkg/ports/arrow/usage-parquet @@ -0,0 +1,3 @@ +
+ find_package(Parquet CONFIG REQUIRED)
+ target_link_libraries(main PRIVATE "$<IF:$<BOOL:${ARROW_BUILD_STATIC}>,Parquet::parquet_static,Parquet::parquet_shared>")
diff --git a/vcpkg/ports/arrow/vcpkg.json b/vcpkg/ports/arrow/vcpkg.json new file mode 100644 index 0000000..96a8704 --- /dev/null +++ b/vcpkg/ports/arrow/vcpkg.json @@ -0,0 +1,182 @@ +{ + "name": "arrow", + "version": "21.0.0", + "port-version": 2, + "description": "Cross-language development platform for in-memory analytics", + "homepage": "https://arrow.apache.org", + "license": "Apache-2.0", + "supports": "x64 | arm64", + "dependencies": [ + "boost-filesystem", + "boost-multiprecision", + "boost-system", + "brotli", + "bzip2", + "gflags", + "lz4", + "openssl", + "re2", + "snappy", + "thrift", + "utf8proc", + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + }, + "xsimd", + "zlib", + "zstd" + ], + "default-features": [ + "csv", + "filesystem", + "json", + "parquet" + ], + "features": { + "acero": { + "description": "Acero support", + "dependencies": [ + { + "name": "arrow", + "default-features": false, + "features": [ + "compute" + ] + } + ] + }, + "compute": { + "description": "Build all computational kernel functions" + }, + "csv": { + "description": "CSV support" + }, + "cuda": { + "description": "cuda support", + "dependencies": [ + "cuda" + ] + }, + "dataset": { + "description": "Dataset support", + "dependencies": [ + { + "name": "arrow", + "default-features": false, + "features": [ + "acero", + "filesystem" + ] + } + ] + }, + "example": { + "description": "Install the minimal example (source code)" + }, + "filesystem": { + "description": "Filesystem support" + }, + "flight": { + "description": "Arrow Flight RPC support", + "dependencies": [ + "abseil", + "c-ares", + "grpc", + "protobuf" + ] + }, + "flightsql": { + "description": "FlightSQL support", + "dependencies": [ + { + "name": "arrow", + "default-features": false, + "features": [ + "flight" + ] + } + ] + }, + "gcs": { + "description": "GCS support", + "dependencies": [ + { + "name": "arrow", + "default-features": false, + "features": [ + "filesystem" + ] + }, + { + "name": "google-cloud-cpp", + "default-features": false, + "features": [ + "storage" + ] + } + ] + }, + "jemalloc": { + "description": "jemalloc allocator", + "supports": "!windows" + }, + "json": { + "description": "JSON support", + "dependencies": [ + "rapidjson" + ] + }, + "mimalloc": { + "description": "mimalloc allocator", + "supports": "!staticcrt" + }, + "orc": { + "description": "ORC support", + "dependencies": [ + "orc" + ] + }, + "parquet": { + "description": "Parquet support", + "dependencies": [ + { + "name": "arrow", + "default-features": false, + "features": [ + "json" + ] + }, + "rapidjson" + ] + }, + "s3": { + "description": "S3 support", + "dependencies": [ + { + "name": "arrow", + "default-features": false, + "features": [ + "filesystem" + ] + }, + { + "name": "aws-sdk-cpp", + "default-features": false, + "features": [ + "cognito-identity", + "config", + "identity-management", + "s3", + "sts", + "transfer" + ] + } + ] + } + } +} |