vcpkg/ports/arrow/fix-dependencies.patch

317 lines
11 KiB
Diff
Raw Normal View History

diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt
index 2d7baf118..ace45d35b 100644
--- a/cpp/CMakeLists.txt
+++ b/cpp/CMakeLists.txt
@@ -699,7 +699,7 @@ endif()
if(ARROW_WITH_BROTLI)
# Order is important for static linking
- set(ARROW_BROTLI_LIBS Brotli::brotlienc Brotli::brotlidec Brotli::brotlicommon)
+ set(ARROW_BROTLI_LIBS unofficial::brotli::brotlienc unofficial::brotli::brotlidec unofficial::brotli::brotlicommon)
list(APPEND ARROW_LINK_LIBS ${ARROW_BROTLI_LIBS})
list(APPEND ARROW_STATIC_LINK_LIBS ${ARROW_BROTLI_LIBS})
if(Brotli_SOURCE STREQUAL "SYSTEM")
@@ -715,9 +715,9 @@ if(ARROW_WITH_BZ2)
endif()
if(ARROW_WITH_LZ4)
- list(APPEND ARROW_STATIC_LINK_LIBS LZ4::lz4)
+ list(APPEND ARROW_STATIC_LINK_LIBS lz4::lz4)
if(Lz4_SOURCE STREQUAL "SYSTEM")
- list(APPEND ARROW_STATIC_INSTALL_INTERFACE_LIBS LZ4::lz4)
+ list(APPEND ARROW_STATIC_INSTALL_INTERFACE_LIBS lz4::lz4)
endif()
endif()
@@ -787,10 +787,10 @@ if(ARROW_WITH_OPENTELEMETRY)
endif()
if(ARROW_WITH_UTF8PROC)
- list(APPEND ARROW_LINK_LIBS utf8proc::utf8proc)
- list(APPEND ARROW_STATIC_LINK_LIBS utf8proc::utf8proc)
+ list(APPEND ARROW_LINK_LIBS utf8proc)
+ list(APPEND ARROW_STATIC_LINK_LIBS utf8proc)
if(utf8proc_SOURCE STREQUAL "SYSTEM")
- list(APPEND ARROW_STATIC_INSTALL_INTERFACE_LIBS utf8proc::utf8proc)
+ list(APPEND ARROW_STATIC_INSTALL_INTERFACE_LIBS utf8proc)
endif()
endif()
diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake
index bc389521b..1b358ce70 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
opentelemetry-cpp
ORC
re2
@@ -70,7 +70,7 @@ set(ARROW_THIRDPARTY_DEPENDENCIES
RapidJSON
Snappy
Thrift
- utf8proc
+ unofficial-utf8proc
xsimd
ZLIB
zstd)
@@ -893,17 +893,7 @@ set(Boost_ADDITIONAL_VERSIONS
# so we first need to determine whether we're building it
if(ARROW_WITH_THRIFT AND Thrift_SOURCE STREQUAL "AUTO")
find_package(Thrift 0.11.0 MODULE COMPONENTS ${ARROW_THRIFT_REQUIRED_COMPONENTS})
- if(Thrift_FOUND)
- find_package(PkgConfig QUIET)
- pkg_check_modules(THRIFT_PC
- thrift
- NO_CMAKE_PATH
- NO_CMAKE_ENVIRONMENT_PATH
- QUIET)
- if(THRIFT_PC_FOUND)
- string(APPEND ARROW_PC_REQUIRES_PRIVATE " thrift")
- endif()
- else()
+ if(NOT Thrift_FOUND AND NOT THRIFT_FOUND)
set(Thrift_SOURCE "BUNDLED")
endif()
endif()
@@ -1038,7 +1028,7 @@ macro(build_snappy)
endmacro()
if(ARROW_WITH_SNAPPY)
- resolve_dependency(Snappy PC_PACKAGE_NAMES snappy)
+ resolve_dependency(Snappy USE_CONFIG TRUE PC_PACKAGE_NAMES snappy)
if(${Snappy_SOURCE} STREQUAL "SYSTEM" AND NOT snappy_PC_FOUND)
get_target_property(SNAPPY_LIB Snappy::snappy IMPORTED_LOCATION)
string(APPEND ARROW_PC_LIBS_PRIVATE " ${SNAPPY_LIB}")
@@ -1108,10 +1098,16 @@ macro(build_brotli)
endmacro()
if(ARROW_WITH_BROTLI)
- resolve_dependency(Brotli PC_PACKAGE_NAMES libbrotlidec libbrotlienc)
+ set(unofficial-brotli_SOURCE "SYSTEM")
+ resolve_dependency(unofficial-brotli USE_CONFIG TRUE PC_PACKAGE_NAMES libbrotlidec libbrotlienc)
# TODO: Don't use global includes but rather target_include_directories
- get_target_property(BROTLI_INCLUDE_DIR Brotli::brotlicommon
- INTERFACE_INCLUDE_DIRECTORIES)
+ if (BUILD_SHARED_LIBS)
+ get_target_property(BROTLI_INCLUDE_DIR unofficial::brotli::brotlicommon
+ INTERFACE_INCLUDE_DIRECTORIES)
+ else()
+ get_target_property(BROTLI_INCLUDE_DIR unofficial::brotli::brotlicommon-static
+ INTERFACE_INCLUDE_DIRECTORIES)
+ endif()
include_directories(SYSTEM ${BROTLI_INCLUDE_DIR})
endif()
@@ -1228,7 +1224,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})
@@ -1302,8 +1298,7 @@ endmacro()
if(ARROW_NEED_GFLAGS)
set(ARROW_GFLAGS_REQUIRED_VERSION "2.1.0")
resolve_dependency(gflags
- HAVE_ALT
- TRUE
+ USE_CONFIG TRUE
REQUIRED_VERSION
${ARROW_GFLAGS_REQUIRED_VERSION}
IS_RUNTIME_DEPENDENCY
@@ -1402,9 +1397,10 @@ endmacro()
if(ARROW_WITH_THRIFT)
# We already may have looked for Thrift earlier, when considering whether
# to build Boost, so don't look again if already found.
- if(NOT Thrift_FOUND)
+ if(TRUE)
# Thrift c++ code generated by 0.13 requires 0.11 or greater
resolve_dependency(Thrift
+ USE_CONFIG TRUE
REQUIRED_VERSION
0.11.0
PC_PACKAGE_NAMES
@@ -1413,6 +1409,14 @@ 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)
@@ -1528,6 +1532,7 @@ if(ARROW_WITH_PROTOBUF)
set(ARROW_PROTOBUF_REQUIRED_VERSION "2.6.1")
endif()
resolve_dependency(Protobuf
+ USE_CONFIG TRUE
REQUIRED_VERSION
${ARROW_PROTOBUF_REQUIRED_VERSION}
PC_PACKAGE_NAMES
@@ -1538,6 +1543,10 @@ if(ARROW_WITH_PROTOBUF)
endif()
# TODO: Don't use global includes but rather target_include_directories
+ if (TARGET protobuf::libprotobuf)
+ get_target_property(PROTOBUF_INCLUDE_DIR protobuf::libprotobuf
+ INTERFACE_INCLUDE_DIRECTORIES)
+ endif()
include_directories(SYSTEM ${PROTOBUF_INCLUDE_DIR})
if(TARGET arrow::protobuf::libprotobuf)
@@ -1586,12 +1595,18 @@ if(ARROW_WITH_PROTOBUF)
# Log protobuf paths as we often see issues with mixed sources for
# the libraries and protoc.
+ if (NOT TARGET protobuf::protoc)
get_target_property(PROTOBUF_PROTOC_EXECUTABLE ${ARROW_PROTOBUF_PROTOC}
IMPORTED_LOCATION)
+ endif()
message(STATUS "Found protoc: ${PROTOBUF_PROTOC_EXECUTABLE}")
# Protobuf_PROTOC_LIBRARY is set by all versions of FindProtobuf.cmake
message(STATUS "Found libprotoc: ${Protobuf_PROTOC_LIBRARY}")
+ if (NOT TARGET protobuf::libprotobuf)
get_target_property(PROTOBUF_LIBRARY ${ARROW_PROTOBUF_LIBPROTOBUF} IMPORTED_LOCATION)
+ else()
+ set(PROTOBUF_LIBRARY protobuf::libprotobuf)
+ endif()
message(STATUS "Found libprotobuf: ${PROTOBUF_LIBRARY}")
message(STATUS "Found protobuf headers: ${PROTOBUF_INCLUDE_DIR}")
endif()
@@ -2001,7 +2016,7 @@ endmacro()
if(ARROW_WITH_RAPIDJSON)
set(ARROW_RAPIDJSON_REQUIRED_VERSION "1.1.0")
resolve_dependency(RapidJSON
- HAVE_ALT
+ USE_CONFIG
TRUE
REQUIRED_VERSION
${ARROW_RAPIDJSON_REQUIRED_VERSION}
@@ -2140,10 +2155,11 @@ macro(build_lz4)
endmacro()
if(ARROW_WITH_LZ4)
- resolve_dependency(Lz4 PC_PACKAGE_NAMES liblz4)
+ set(lz4_SOURCE "SYSTEM")
+ resolve_dependency(lz4 USE_CONFIG TRUE PC_PACKAGE_NAMES liblz4)
# TODO: Don't use global includes but rather target_include_directories
- get_target_property(LZ4_INCLUDE_DIR LZ4::lz4 INTERFACE_INCLUDE_DIRECTORIES)
+ get_target_property(LZ4_INCLUDE_DIR lz4::lz4 INTERFACE_INCLUDE_DIRECTORIES)
include_directories(SYSTEM ${LZ4_INCLUDE_DIR})
endif()
@@ -2207,7 +2223,7 @@ endmacro()
if(ARROW_WITH_ZSTD)
# ARROW-13384: ZSTD_minCLevel was added in v1.4.0, required by ARROW-13091
resolve_dependency(zstd
- PC_PACKAGE_NAMES
+ USE_CONFIG TRUE PC_PACKAGE_NAMES
libzstd
REQUIRED_VERSION
1.4.0)
@@ -2390,9 +2406,8 @@ macro(build_utf8proc)
endmacro()
if(ARROW_WITH_UTF8PROC)
- resolve_dependency(utf8proc
- REQUIRED_VERSION
- "2.2.0"
+ resolve_dependency(unofficial-utf8proc
+ USE_CONFIG TRUE
PC_PACKAGE_NAMES
libutf8proc)
@@ -2400,7 +2415,7 @@ if(ARROW_WITH_UTF8PROC)
# TODO: Don't use global definitions but rather
# target_compile_definitions or target_link_libraries
- get_target_property(UTF8PROC_COMPILER_DEFINITIONS utf8proc::utf8proc
+ get_target_property(UTF8PROC_COMPILER_DEFINITIONS utf8proc
INTERFACE_COMPILER_DEFINITIONS)
if(UTF8PROC_COMPILER_DEFINITIONS)
add_definitions(-D${UTF8PROC_COMPILER_DEFINITIONS})
@@ -2408,7 +2423,7 @@ if(ARROW_WITH_UTF8PROC)
# TODO: Don't use global includes but rather
# target_include_directories or target_link_libraries
- get_target_property(UTF8PROC_INCLUDE_DIR utf8proc::utf8proc
+ get_target_property(UTF8PROC_INCLUDE_DIR utf8proc
INTERFACE_INCLUDE_DIRECTORIES)
include_directories(SYSTEM ${UTF8PROC_INCLUDE_DIR})
endif()
@@ -3317,7 +3332,7 @@ endmacro()
macro(build_grpc)
resolve_dependency(c-ares
- HAVE_ALT
+ USE_CONFIG
TRUE
PC_PACKAGE_NAMES
libcares)
@@ -3555,7 +3570,7 @@ if(ARROW_WITH_GRPC)
set(gRPC_SOURCE "${Protobuf_SOURCE}")
endif()
resolve_dependency(gRPC
- HAVE_ALT
+ USE_CONFIG
TRUE
REQUIRED_VERSION
${ARROW_GRPC_REQUIRED_VERSION}
@@ -3565,6 +3580,10 @@ 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)
+ message(STATUS "Found absl uses CXX17, enable CXX17 feature.")
+ set(CMAKE_CXX_STANDARD 17)
+ endif()
if(GRPC_VENDORED)
set(GRPCPP_PP_INCLUDE TRUE)
@@ -4315,7 +4334,8 @@ if(ARROW_S3)
s3
transfer
identity-management
- sts)
+ sts
+ CONFIG)
endif()
# Restore previous value of BUILD_SHARED_LIBS
diff --git a/cpp/src/arrow/adapters/orc/CMakeLists.txt b/cpp/src/arrow/adapters/orc/CMakeLists.txt
index b1b6847cf..444a45e4e 100644
--- a/cpp/src/arrow/adapters/orc/CMakeLists.txt
+++ b/cpp/src/arrow/adapters/orc/CMakeLists.txt
@@ -30,7 +30,7 @@ set(ORC_MIN_TEST_LIBS
GTest::gtest_main
GTest::gtest
Snappy::snappy
- LZ4::lz4
+ lz4::lz4
ZLIB::ZLIB)
if(ARROW_BUILD_STATIC)