early-access version 2853

This commit is contained in:
pineappleEA
2022-07-23 03:01:36 +02:00
parent 1f2b5081b5
commit 1f111bb69c
8955 changed files with 418777 additions and 999 deletions

13
externals/vcpkg/ports/arrow/all.patch vendored Executable file
View File

@@ -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})

View File

@@ -0,0 +1,143 @@
diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake
index f070323..290b5a7 100644
--- a/cpp/cmake_modules/ThirdpartyToolchain.cmake
+++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake
@@ -53,7 +53,7 @@ set(ARROW_THIRDPARTY_DEPENDENCIES
AWSSDK
benchmark
Boost
- Brotli
+ unofficial-brotli
BZip2
c-ares
gflags
@@ -62,7 +62,7 @@ set(ARROW_THIRDPARTY_DEPENDENCIES
gRPC
GTest
LLVM
- Lz4
+ lz4
nlohmann_json
opentelemetry-cpp
ORC
@@ -72,7 +72,7 @@ set(ARROW_THIRDPARTY_DEPENDENCIES
Snappy
Substrait
Thrift
- utf8proc
+ unofficial-utf8proc
xsimd
ZLIB
zstd)
@@ -139,6 +139,9 @@ foreach(DEPENDENCY ${ARROW_THIRDPARTY_DEPENDENCIES})
endforeach()
macro(build_dependency DEPENDENCY_NAME)
+ if(NOT "${DEPENDENCY_NAME}" STREQUAL "xsimd")
+ message(FATAL_ERROR "dependencies should never be built in vcpkg")
+ endif()
if("${DEPENDENCY_NAME}" STREQUAL "AWSSDK")
build_awssdk()
elseif("${DEPENDENCY_NAME}" STREQUAL "benchmark")
@@ -222,7 +225,7 @@ macro(resolve_dependency DEPENDENCY_NAME)
endif()
if(ARG_HAVE_ALT)
- set(PACKAGE_NAME "${DEPENDENCY_NAME}Alt")
+ set(PACKAGE_NAME "${DEPENDENCY_NAME}")
else()
set(PACKAGE_NAME ${DEPENDENCY_NAME})
endif()
@@ -1129,10 +1132,16 @@ macro(build_brotli)
endmacro()
if(ARROW_WITH_BROTLI)
- resolve_dependency(Brotli PC_PACKAGE_NAMES libbrotlidec libbrotlienc)
+ resolve_dependency(unofficial-brotli USE_CONFIG TRUE PC_PACKAGE_NAMES libbrotlidec libbrotlienc)
+ add_library(Brotli::brotlicommon ALIAS unofficial::brotli::brotlicommon)
+ add_library(Brotli::brotlienc ALIAS unofficial::brotli::brotlienc)
+ add_library(Brotli::brotlidec ALIAS unofficial::brotli::brotlidec)
+ get_target_property(BROTLI_INCLUDE_DIR unofficial::brotli::brotlicommon-static INTERFACE_INCLUDE_DIRECTORIES)
# TODO: Don't use global includes but rather target_include_directories
+ if(NOT BROTLI_INCLUDE_DIR)
get_target_property(BROTLI_INCLUDE_DIR Brotli::brotlicommon
INTERFACE_INCLUDE_DIRECTORIES)
+ endif()
include_directories(SYSTEM ${BROTLI_INCLUDE_DIR})
endif()
@@ -1249,7 +1261,7 @@ macro(build_glog)
endmacro()
if(ARROW_USE_GLOG)
- resolve_dependency(GLOG PC_PACKAGE_NAMES libglog)
+ resolve_dependency(glog USE_CONFIG TRUE PC_PACKAGE_NAMES libglog)
# TODO: Don't use global includes but rather target_include_directories
get_target_property(GLOG_INCLUDE_DIR glog::glog INTERFACE_INCLUDE_DIRECTORIES)
include_directories(SYSTEM ${GLOG_INCLUDE_DIR})
@@ -1434,6 +1446,13 @@ if(ARROW_WITH_THRIFT)
# TODO: Don't use global includes but rather target_include_directories
include_directories(SYSTEM ${THRIFT_INCLUDE_DIR})
+ if(THRIFT_INCLUDE_DIR)
+ file(READ "${THRIFT_INCLUDE_DIR}/config.h" THRIFT_CONFIG_H_CONTENT)
+ string(REGEX MATCH "#define PACKAGE_VERSION \"[0-9.]+\"" THRIFT_VERSION_DEFINITION "${THRIFT_CONFIG_H_CONTENT}")
+ string(REGEX MATCH "[0-9.]+" THRIFT_VERSION "${THRIFT_VERSION_DEFINITION}")
+ set(THRIFT_VERSION "${THRIFT_VERSION}")
+ endif()
+
string(REPLACE "." ";" VERSION_LIST ${THRIFT_VERSION})
list(GET VERSION_LIST 0 THRIFT_VERSION_MAJOR)
list(GET VERSION_LIST 1 THRIFT_VERSION_MINOR)
@@ -1561,6 +1580,8 @@ if(ARROW_WITH_PROTOBUF)
${ARROW_PROTOBUF_REQUIRED_VERSION}
PC_PACKAGE_NAMES
protobuf)
+ get_target_property(PROTOBUF_INCLUDE_DIR protobuf::libprotobuf
+ INTERFACE_INCLUDE_DIRECTORIES)
if(NOT Protobuf_USE_STATIC_LIBS AND MSVC_TOOLCHAIN)
add_definitions(-DPROTOBUF_USE_DLLS)
@@ -2121,8 +2142,6 @@ endmacro()
if(ARROW_WITH_RAPIDJSON)
set(ARROW_RAPIDJSON_REQUIRED_VERSION "1.1.0")
resolve_dependency(RapidJSON
- HAVE_ALT
- TRUE
REQUIRED_VERSION
${ARROW_RAPIDJSON_REQUIRED_VERSION}
IS_RUNTIME_DEPENDENCY
@@ -2260,7 +2279,8 @@ macro(build_lz4)
endmacro()
if(ARROW_WITH_LZ4)
- resolve_dependency(Lz4 PC_PACKAGE_NAMES liblz4)
+ resolve_dependency(lz4 USE_CONFIG TRUE PC_PACKAGE_NAMES liblz4)
+ add_library(LZ4::lz4 ALIAS lz4::lz4)
# TODO: Don't use global includes but rather target_include_directories
get_target_property(LZ4_INCLUDE_DIR LZ4::lz4 INTERFACE_INCLUDE_DIRECTORIES)
@@ -2517,11 +2537,10 @@ macro(build_utf8proc)
endmacro()
if(ARROW_WITH_UTF8PROC)
- resolve_dependency(utf8proc
- REQUIRED_VERSION
- "2.2.0"
+ resolve_dependency(unofficial-utf8proc
PC_PACKAGE_NAMES
libutf8proc)
+ add_library(utf8proc::utf8proc ALIAS utf8proc)
add_definitions(-DARROW_WITH_UTF8PROC)
@@ -3719,6 +3738,9 @@ if(ARROW_WITH_GRPC)
# TODO: Don't use global includes but rather target_include_directories
get_target_property(GRPC_INCLUDE_DIR gRPC::grpc++ INTERFACE_INCLUDE_DIRECTORIES)
include_directories(SYSTEM ${GRPC_INCLUDE_DIR})
+ if (ABSL_USE_CXX17)
+ set(CMAKE_CXX_STANDARD 17)
+ endif()
if(GRPC_VENDORED)
set(GRPCPP_PP_INCLUDE TRUE)

118
externals/vcpkg/ports/arrow/portfile.cmake vendored Executable file
View File

@@ -0,0 +1,118 @@
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO apache/arrow
REF apache-arrow-8.0.0
SHA512 08b6ab4a3c5e0dd9c46402da8e7b9ef9f918eea177413cb31695192dfdb5a472ebbfef255b8343fe775d81e8b5eb268c3428a699fac48b36bf808f5b81e83a64
HEAD_REF master
PATCHES
vs-2022-fixes.patch
all.patch
fix-ThirdPartyToolchain.patch
)
file(REMOVE "${SOURCE_PATH}/cpp/cmake_modules/Findzstd.cmake"
"${SOURCE_PATH}/cpp/cmake_modules/FindBrotli.cmake"
"${SOURCE_PATH}/cpp/cmake_modules/Find-c-aresAlt.cmake"
"${SOURCE_PATH}/cpp/cmake_modules/FindLz4.cmake"
"${SOURCE_PATH}/cpp/cmake_modules/FindSnappy.cmake"
"${SOURCE_PATH}/cpp/cmake_modules/FindThrift.cmake"
"${SOURCE_PATH}/cpp/cmake_modules/FindGLOG.cmake"
"${SOURCE_PATH}/cpp/cmake_modules/Findutf8proc.cmake"
"${SOURCE_PATH}/cpp/cmake_modules/FindRapidJSONAlt.cmake"
"${SOURCE_PATH}/cpp/cmake_modules/FindgRPCAlt.cmake"
"${SOURCE_PATH}/cpp/cmake_modules/FindgflagsAlt.cmake"
)
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
FEATURES
csv ARROW_CSV
dataset ARROW_DATASET
filesystem ARROW_FILESYSTEM
flight ARROW_FLIGHT
json ARROW_JSON
orc ARROW_ORC
parquet ARROW_PARQUET
parquet PARQUET_REQUIRE_ENCRYPTION
plasma ARROW_PLASMA
s3 ARROW_S3
cuda ARROW_CUDA
)
if(VCPKG_TARGET_IS_WINDOWS OR VCPKG_TARGET_IS_UWP)
set(MALLOC_OPTIONS -DARROW_JEMALLOC=OFF)
elseif("jemalloc" IN_LIST FEATURES)
set(MALLOC_OPTIONS -DARROW_JEMALLOC=ON)
else()
set(MALLOC_OPTIONS -DARROW_JEMALLOC=OFF)
endif()
if(VCPKG_TARGET_IS_WINDOWS AND ("mimalloc" IN_LIST FEATURES))
set(MALLOC_OPTIONS ${MALLOC_OPTIONS} -DARROW_MIMALLOC=ON)
else()
set(MALLOC_OPTIONS ${MALLOC_OPTIONS} -DARROW_MIMALLOC=OFF)
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)
if(VCPKG_TARGET_IS_WINDOWS)
set(THRIFT_USE_SHARED OFF)
else()
set(THRIFT_USE_SHARED ${ARROW_DEPENDENCY_USE_SHARED})
endif()
vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}/cpp"
OPTIONS
${FEATURE_OPTIONS}
${MALLOC_OPTIONS}
${S3_OPTIONS}
-DCMAKE_SYSTEM_PROCESSOR=${VCPKG_TARGET_ARCHITECTURE}
-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_THRIFT_USE_SHARED=${THRIFT_USE_SHARED}
-DBUILD_WARNING_LEVEL=PRODUCTION
-DARROW_WITH_BROTLI=ON
-DARROW_WITH_BZ2=ON
-DARROW_WITH_LZ4=ON
-DARROW_WITH_SNAPPY=ON
-DARROW_WITH_ZLIB=ON
-DARROW_WITH_ZSTD=ON
-DZSTD_MSVC_LIB_PREFIX=
MAYBE_UNUSED_VARIABLES
ZSTD_MSVC_LIB_PREFIX
)
vcpkg_cmake_install()
vcpkg_copy_pdbs()
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()
vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/arrow)
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/cmake")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/cmake")
configure_file(${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake ${CURRENT_PACKAGES_DIR}/share/${PORT} @ONLY)
file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
file(GLOB PARQUET_FILES ${CURRENT_PACKAGES_DIR}/share/${PORT}/Parquet*)
file(COPY ${PARQUET_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/share/parquet")
file(REMOVE_RECURSE ${PARQUET_FILES})
file(RENAME ${CURRENT_PACKAGES_DIR}/share/${PORT}/FindParquet.cmake ${CURRENT_PACKAGES_DIR}/share/parquet/FindParquet.cmake)
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
if ("plasma" IN_LIST FEATURES)
vcpkg_copy_tools(TOOL_NAMES plasma-store-server AUTO_CLEAN)
endif ()
vcpkg_fixup_pkgconfig()

7
externals/vcpkg/ports/arrow/usage vendored Executable file
View File

@@ -0,0 +1,7 @@
The package arrow provides CMake targets:
find_package(Arrow CONFIG REQUIRED)
target_link_libraries(main PRIVATE ${ARROW_LIBRARIES})
find_package(Parquet CONFIG REQUIRED)
target_link_libraries(main PRIVATE ${PARQUET_LIBRARIES})

View File

@@ -0,0 +1,9 @@
_find_package(${ARGS})
if(TARGET arrow_static)
list(APPEND ARROW_LIBRARIES arrow_static)
list(APPEND PARQUET_LIBRARIES parquet_static)
elseif (TARGET arrow_shared)
list(APPEND ARROW_LIBRARIES arrow_shared)
list(APPEND PARQUET_LIBRARIES parquet_shared)
endif()

110
externals/vcpkg/ports/arrow/vcpkg.json vendored Executable file
View File

@@ -0,0 +1,110 @@
{
"name": "arrow",
"version": "8.0.0",
"description": "Cross-language development platform for in-memory analytics",
"homepage": "https://arrow.apache.org",
"license": "Apache-2.0",
"supports": "x64 | (arm64 & !windows)",
"dependencies": [
"boost-filesystem",
"boost-multiprecision",
"boost-system",
"brotli",
"bzip2",
"gflags",
"glog",
"lz4",
"openssl",
"re2",
"snappy",
"thrift",
"utf8proc",
{
"name": "vcpkg-cmake",
"host": true
},
{
"name": "vcpkg-cmake-config",
"host": true
},
"zlib",
"zstd"
],
"default-features": [
"csv",
"filesystem",
"json",
"parquet"
],
"features": {
"csv": {
"description": "CSV support"
},
"cuda": {
"description": "cuda support",
"dependencies": [
"cuda"
]
},
"dataset": {
"description": "Dataset support"
},
"filesystem": {
"description": "Filesystem support"
},
"flight": {
"description": "Arrow Flight RPC support",
"dependencies": [
"abseil",
"c-ares",
"grpc",
"protobuf"
]
},
"jemalloc": {
"description": "jemalloc allocator"
},
"json": {
"description": "JSON support",
"dependencies": [
"rapidjson"
]
},
"mimalloc": {
"description": "mimalloc allocator"
},
"orc": {
"description": "ORC support",
"dependencies": [
"orc"
]
},
"parquet": {
"description": "Parquet support",
"dependencies": [
"rapidjson"
]
},
"plasma": {
"description": "Plasma support",
"supports": "!windows"
},
"s3": {
"description": "S3 support",
"dependencies": [
{
"name": "aws-sdk-cpp",
"default-features": false,
"features": [
"cognito-identity",
"config",
"identity-management",
"s3",
"sts",
"transfer"
]
}
]
}
}
}

View File

@@ -0,0 +1,42 @@
diff --git a/cpp/src/arrow/compute/light_array_test.cc b/cpp/src/arrow/compute/light_array_test.cc
index 3f6d47803..dcc7841a0 100644
--- a/cpp/src/arrow/compute/light_array_test.cc
+++ b/cpp/src/arrow/compute/light_array_test.cc
@@ -18,6 +18,7 @@
#include "arrow/compute/light_array.h"
#include <gtest/gtest.h>
+#include <numeric>
#include "arrow/compute/exec/test_util.h"
#include "arrow/testing/generator.h"
diff --git a/cpp/src/arrow/util/tracing.cc b/cpp/src/arrow/util/tracing.cc
index b8bddcd50..126c69781 100644
--- a/cpp/src/arrow/util/tracing.cc
+++ b/cpp/src/arrow/util/tracing.cc
@@ -38,6 +38,7 @@ Span::Impl& Span::Set(Impl&& impl) {
#endif
// Default destructor when impl type is complete.
+Span::Span() = default;
Span::~Span() = default;
} // namespace tracing
diff --git a/cpp/src/arrow/util/tracing.h b/cpp/src/arrow/util/tracing.h
index 15f7fca1e..1d9d08b33 100644
--- a/cpp/src/arrow/util/tracing.h
+++ b/cpp/src/arrow/util/tracing.h
@@ -35,11 +35,11 @@ class SpanImpl;
namespace util {
namespace tracing {
-class ARROW_EXPORT Span {
+class Span {
public:
using Impl = arrow::internal::tracing::SpanImpl;
- Span() = default; // Default constructor. The inner_impl is a nullptr.
+ Span(); // Default constructor. The inner_impl is a nullptr.
~Span(); // Destructor. Default destructor defined in tracing.cc where impl is a
// complete type.