This is an automated email from the ASF dual-hosted git repository.
baibaichen pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/gluten.git
The following commit(s) were added to refs/heads/main by this push:
new bf964154c0 [GLUTEN-13167][VL] Fix macOS builds and decouple native
tests from JNI libraries (#13168)
bf964154c0 is described below
commit bf964154c0854afa6496069e0524df5bd24ccf40
Author: Chang Chen <[email protected]>
AuthorDate: Sat Oct 17 21:04:02 2026 +0800
[GLUTEN-13167][VL] Fix macOS builds and decouple native tests from JNI
libraries (#13168)
* [VL] Fix macOS OpenSSL 3 setup and GoogleTest installation
* build(vcpkg): own Roaring and resolve packages without shell setup
* fix(native): link tests to implementation objects instead of JNI DSOs
* [MINOR] Format native CMake targets
* [GLUTEN-13167][VL] Expose imported Arrow targets across native directories
* [GLUTEN-13167][VL] Preserve shared-library linkage for UDF integration
tests
* [MINOR][CI] Trigger weekly native platform validation
---
.github/workflows/velox_weekly.yml | 1 +
cpp/CMake/ConfigArrow.cmake | 2 +-
cpp/CMake/FindRoaring.cmake | 9 ++++
cpp/CMakeLists.txt | 2 +-
cpp/core/CMakeLists.txt | 34 +++++++-------
cpp/velox/CMakeLists.txt | 67 +++++++++++++++-------------
cpp/velox/benchmarks/CMakeLists.txt | 8 ++--
cpp/velox/compute/delta/tests/CMakeLists.txt | 8 ++--
cpp/velox/tests/CMakeLists.txt | 27 +++++++++--
cpp/velox/tests/GlutenS3FileSystemTest.cc | 7 +--
dev/builddeps-veloxbe.sh | 1 +
dev/vcpkg/vcpkg.json | 2 +
ep/build-velox/src/build-velox.sh | 1 +
ep/build-velox/src/get-velox.sh | 4 ++
14 files changed, 112 insertions(+), 61 deletions(-)
diff --git a/.github/workflows/velox_weekly.yml
b/.github/workflows/velox_weekly.yml
index c4968a8c3c..b5b4104d41 100644
--- a/.github/workflows/velox_weekly.yml
+++ b/.github/workflows/velox_weekly.yml
@@ -14,6 +14,7 @@
# limitations under the License.
name: Velox Backend Weekly Job
+# Validate native build changes across the weekly platform matrix.
on:
pull_request:
diff --git a/cpp/CMake/ConfigArrow.cmake b/cpp/CMake/ConfigArrow.cmake
index 4cf061a769..f82314ef63 100644
--- a/cpp/CMake/ConfigArrow.cmake
+++ b/cpp/CMake/ConfigArrow.cmake
@@ -36,7 +36,7 @@ function(FIND_ARROW_LIB LIB_NAME)
if(NOT TARGET Arrow::${LIB_NAME})
set(ARROW_LIB_FULL_NAME
${CMAKE_SHARED_LIBRARY_PREFIX}${LIB_NAME}${ARROW_STATIC_LIBRARY_SUFFIX})
- add_library(Arrow::${LIB_NAME} STATIC IMPORTED)
+ add_library(Arrow::${LIB_NAME} STATIC IMPORTED GLOBAL)
# Firstly find the lib from bundled path in Velox. If not found, try to
find
# it from system.
find_library(
diff --git a/cpp/CMake/FindRoaring.cmake b/cpp/CMake/FindRoaring.cmake
index bfb7e9fb22..0ac1a7d9a9 100644
--- a/cpp/CMake/FindRoaring.cmake
+++ b/cpp/CMake/FindRoaring.cmake
@@ -13,6 +13,15 @@
# License for the specific language governing permissions and limitations under
# the License.
+if(ENABLE_GLUTEN_VCPKG)
+ find_package(roaring CONFIG REQUIRED)
+ if(NOT TARGET roaring)
+ add_library(roaring ALIAS roaring::roaring)
+ endif()
+ set(Roaring_FOUND TRUE)
+ return()
+endif()
+
set(_roaring_pkgconfig_hints "")
set(_roaring_include_hints "")
set(_roaring_library_hints "")
diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt
index f9918de593..9eb98e7893 100644
--- a/cpp/CMakeLists.txt
+++ b/cpp/CMakeLists.txt
@@ -249,7 +249,7 @@ function(ADD_TEST_CASE TEST_NAME)
endif()
add_executable(${TEST_NAME} ${SOURCES})
- target_link_libraries(${TEST_NAME} gluten glog::glog GTest::gtest
+ target_link_libraries(${TEST_NAME} gluten_core_impl glog::glog GTest::gtest
GTest::gtest_main Threads::Threads)
target_include_directories(${TEST_NAME} PRIVATE ${CMAKE_SOURCE_DIR}/core)
diff --git a/cpp/core/CMakeLists.txt b/cpp/core/CMakeLists.txt
index 66c800595c..b16ce48c96 100644
--- a/cpp/core/CMakeLists.txt
+++ b/cpp/core/CMakeLists.txt
@@ -120,7 +120,6 @@ set(SPARK_COLUMNAR_PLUGIN_SRCS
compute/ProtobufUtils.cc
compute/ResultIterator.cc
config/GlutenConfig.cc
- jni/JniWrapper.cc
memory/AllocationListener.cc
memory/MemoryAllocator.cc
memory/MemoryManager.cc
@@ -152,8 +151,11 @@ set(SPARK_COLUMNAR_PLUGIN_SRCS
jni/TaskContextJniWrapper.cc)
file(MAKE_DIRECTORY ${root_directory}/releases)
-add_library(gluten SHARED ${SPARK_COLUMNAR_PLUGIN_SRCS})
-add_dependencies(gluten jni_proto)
+add_library(gluten_core_impl OBJECT ${SPARK_COLUMNAR_PLUGIN_SRCS})
+set_target_properties(gluten_core_impl PROPERTIES POSITION_INDEPENDENT_CODE ON)
+add_dependencies(gluten_core_impl jni_proto)
+add_library(gluten SHARED jni/JniWrapper.cc)
+target_link_libraries(gluten PRIVATE gluten_core_impl)
# Hide symbols of some static dependencies. Otherwise, if such dependencies are
# already statically linked to libvelox.so, a runtime error will be reported:
@@ -192,10 +194,10 @@ if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 9.0)
OUTPUT_STRIP_TRAILING_WHITESPACE)
if(LIBSTDCXXFS_STATIC_RESULT EQUAL 0 AND EXISTS "${LIBSTDCXXFS_STATIC_PATH}")
message(STATUS "libstdc++fs.a found at: ${LIBSTDCXXFS_STATIC_PATH}")
- target_link_libraries(gluten PRIVATE ${LIBSTDCXXFS_STATIC_PATH})
+ target_link_libraries(gluten_core_impl PRIVATE ${LIBSTDCXXFS_STATIC_PATH})
else()
find_library(LIBSTDCXXFS stdc++fs REQUIRED)
- target_link_libraries(gluten PUBLIC ${LIBSTDCXXFS})
+ target_link_libraries(gluten_core_impl PUBLIC ${LIBSTDCXXFS})
endif()
endif()
@@ -207,15 +209,15 @@ endif()
if(ENABLE_QAT)
include(BuildQATzip)
include(BuildQATZstd)
- target_sources(gluten PRIVATE utils/qat/QatCodec.cc)
- target_include_directories(gluten PUBLIC ${QATZIP_INCLUDE_DIR}
- ${QATZSTD_INCLUDE_DIR})
- target_link_libraries(gluten PUBLIC qatzip::qatzip qatzstd::qatzstd)
+ target_sources(gluten_core_impl PRIVATE utils/qat/QatCodec.cc)
+ target_include_directories(gluten_core_impl PUBLIC ${QATZIP_INCLUDE_DIR}
+ ${QATZSTD_INCLUDE_DIR})
+ target_link_libraries(gluten_core_impl PUBLIC qatzip::qatzip
qatzstd::qatzstd)
endif()
find_protobuf()
message(STATUS "Found Protobuf: ${PROTOBUF_LIBRARY}")
-target_link_libraries(gluten LINK_PUBLIC ${PROTOBUF_LIBRARY})
+target_link_libraries(gluten_core_impl LINK_PUBLIC ${PROTOBUF_LIBRARY})
add_custom_command(
OUTPUT ${SUBSTRAIT_PROTO_OUTPUT_FILES}
@@ -238,11 +240,12 @@ add_custom_target(jni_proto ALL DEPENDS
${SUBSTRAIT_PROTO_OUTPUT_FILES}
add_dependencies(jni_proto protobuf::libprotobuf)
target_include_directories(
- gluten
+ gluten_core_impl
PUBLIC ${CMAKE_SYSTEM_INCLUDE_PATH} ${JNI_INCLUDE_DIRS}
${CMAKE_CURRENT_SOURCE_DIR} ${PROTO_OUTPUT_DIR} ${PROTOBUF_INCLUDE})
if(GLUTEN_PREFIX_INCLUDE_DIRS)
- target_include_directories(gluten BEFORE PUBLIC
${GLUTEN_PREFIX_INCLUDE_DIRS})
+ target_include_directories(gluten_core_impl BEFORE
+ PUBLIC ${GLUTEN_PREFIX_INCLUDE_DIRS})
endif()
set_target_properties(gluten PROPERTIES LIBRARY_OUTPUT_DIRECTORY
${root_directory}/releases)
@@ -251,11 +254,12 @@ if(BUILD_TESTS)
add_subdirectory(tests)
endif()
-target_link_libraries(gluten PUBLIC Arrow::arrow)
+target_link_libraries(gluten_core_impl PUBLIC Arrow::arrow)
if(NOT ENABLE_GLUTEN_VCPKG)
- target_link_libraries(gluten PUBLIC Arrow::arrow_bundled_dependencies)
+ target_link_libraries(gluten_core_impl
+ PUBLIC Arrow::arrow_bundled_dependencies)
endif()
-target_link_libraries(gluten PRIVATE glog::glog)
+target_link_libraries(gluten_core_impl PRIVATE glog::glog)
install(TARGETS gluten DESTINATION ${CMAKE_INSTALL_LIBDIR})
diff --git a/cpp/velox/CMakeLists.txt b/cpp/velox/CMakeLists.txt
index a15f201528..86f23171f5 100644
--- a/cpp/velox/CMakeLists.txt
+++ b/cpp/velox/CMakeLists.txt
@@ -75,7 +75,7 @@ if(NOT DEFINED VELOX_BUILD_PATH)
endif()
endif()
-find_package(Roaring REQUIRED)
+find_package(Roaring MODULE REQUIRED)
set(GLUTEN_ROARING_LINK_LIBRARY roaring)
set(VELOX_PROTO_SRC_DIR
@@ -169,7 +169,6 @@ set(VELOX_SRCS
compute/iceberg/IcebergPlanConverter.cc
jni/JniFileSystem.cc
jni/JniUdf.cc
- jni/VeloxJniWrapper.cc
jni/JniHashTable.cc
memory/BufferOutputStream.cc
memory/VeloxColumnarBatch.cc
@@ -246,11 +245,14 @@ if(BUILD_TEST_UTILS)
tests/utils/TestAllocationListener.cc)
endif()
-add_library(velox SHARED ${VELOX_SRCS})
+add_library(gluten_velox_impl OBJECT ${VELOX_SRCS})
+set_target_properties(gluten_velox_impl PROPERTIES POSITION_INDEPENDENT_CODE
ON)
+add_library(velox SHARED jni/VeloxJniWrapper.cc)
+target_link_libraries(velox PUBLIC gluten_velox_impl gluten)
if(ENABLE_GLUTEN_VCPKG)
find_package(xxHash CONFIG REQUIRED)
- target_link_libraries(velox PUBLIC xxHash::xxhash)
+ target_link_libraries(gluten_velox_impl PUBLIC xxHash::xxhash)
endif()
# Keep ABI sensitive Velox feature macros in sync
@@ -261,7 +263,7 @@ if(NOT GLUTEN_VELOX_ENABLE_PARQUET AND EXISTS
"${GLUTEN_VELOX_CMAKE_CACHE}")
REGEX "^VELOX_ENABLE_PARQUET:BOOL=(ON|TRUE|1)$")
endif()
if(GLUTEN_VELOX_ENABLE_PARQUET)
- target_compile_definitions(velox PRIVATE VELOX_ENABLE_PARQUET)
+ target_compile_definitions(gluten_velox_impl PRIVATE VELOX_ENABLE_PARQUET)
message(STATUS "Propagating VELOX_ENABLE_PARQUET to Gluten Velox backend")
endif()
@@ -292,10 +294,10 @@ add_custom_target(velox_jni_proto ALL DEPENDS
${SUBSTRAIT_PROTO_OUTPUT_FILES}
${VELOX_PROTO_OUTPUT_FILES})
add_dependencies(velox_jni_proto protobuf::libprotobuf)
-add_dependencies(velox velox_jni_proto)
+add_dependencies(gluten_velox_impl velox_jni_proto)
target_include_directories(
- velox
+ gluten_velox_impl
PUBLIC ${CMAKE_SYSTEM_INCLUDE_PATH}
${JNI_INCLUDE_DIRS}
${VELOX_BUILD_PATH}
@@ -304,7 +306,8 @@ target_include_directories(
${PROTO_OUTPUT_DIR}
${PROTOBUF_INCLUDE})
if(GLUTEN_PREFIX_INCLUDE_DIRS)
- target_include_directories(velox BEFORE PUBLIC ${GLUTEN_PREFIX_INCLUDE_DIRS})
+ target_include_directories(gluten_velox_impl BEFORE
+ PUBLIC ${GLUTEN_PREFIX_INCLUDE_DIRS})
endif()
set_target_properties(velox PROPERTIES LIBRARY_OUTPUT_DIRECTORY
@@ -318,13 +321,14 @@ if(ENABLE_JEMALLOC_STATS)
build_jemalloc()
endif()
add_definitions(-DENABLE_JEMALLOC_STATS)
- target_link_libraries(velox PUBLIC jemalloc::jemalloc)
+ target_link_libraries(gluten_velox_impl PUBLIC jemalloc::jemalloc)
endif()
-target_link_libraries(velox PUBLIC gluten)
+target_link_libraries(gluten_velox_impl PUBLIC gluten_core_impl)
# Requires VELOX_MONO_LIBRARY=ON when building Velox.
import_library(facebook::velox ${VELOX_BUILD_PATH}/lib/libvelox.a)
+target_link_libraries(facebook::velox INTERFACE Arrow::arrow)
set(GLUTEN_VELOX_LINK_SCOPE PUBLIC)
if(CMAKE_SYSTEM_NAME MATCHES "Darwin")
set(GLUTEN_VELOX_LINK_SCOPE PRIVATE)
@@ -374,15 +378,16 @@ if(BUILD_TESTS)
INTERFACE facebook::velox::vector_test_lib facebook::velox::vector_fuzzer
facebook::velox::dwio_common_test
facebook::velox::file_test_utils)
- target_link_libraries(velox PUBLIC facebook::velox::exec_test_lib)
+ set(GLUTEN_VELOX_TEST_LIBRARIES facebook::velox::exec_test_lib)
endif()
-target_link_libraries(velox ${GLUTEN_VELOX_LINK_SCOPE} facebook::velox)
+target_link_libraries(gluten_velox_impl ${GLUTEN_VELOX_LINK_SCOPE}
+ facebook::velox)
-target_link_libraries(velox PUBLIC ${GLUTEN_ROARING_LINK_LIBRARY})
+target_link_libraries(gluten_velox_impl PUBLIC ${GLUTEN_ROARING_LINK_LIBRARY})
find_re2()
-target_link_libraries(velox PUBLIC ${RE2_LIBRARY})
+target_link_libraries(gluten_velox_impl PUBLIC ${RE2_LIBRARY})
if(ENABLE_GLUTEN_VCPKG)
# FBThrift -> mvfst -> fizz -> OpenSSL; with VCPKG_DYNAMIC_OPENSSL=ON vcpkg
@@ -404,7 +409,7 @@ else()
external::stemmer
${VELOX_BUILD_PATH}/_deps/libstemmer/src/libstemmer/libstemmer.a)
endif()
-target_link_libraries(velox PUBLIC external::stemmer)
+target_link_libraries(gluten_velox_impl PUBLIC external::stemmer)
find_package(geos)
if(geos_FOUND AND TARGET GEOS::geos)
@@ -413,7 +418,7 @@ else()
message(STATUS "import Velox bundled geos")
import_library(external::geos ${VELOX_BUILD_PATH}/lib/libgeos.a)
endif()
-target_link_libraries(velox PUBLIC external::geos)
+target_link_libraries(gluten_velox_impl PUBLIC external::geos)
find_package(veloxthrift CONFIG)
if(veloxthrift_FOUND AND TARGET veloxthrift::veloxthrift)
@@ -425,7 +430,7 @@ else()
${VELOX_BUILD_PATH}/velox/dwio/parquet/thrift/libvelox_dwio_parquet_thrift_raw.a
)
endif()
-target_link_libraries(velox PUBLIC external::veloxthrift)
+target_link_libraries(gluten_velox_impl PUBLIC external::veloxthrift)
# If folly is not installed in system lib paths, please add
# `-DCMAKE_PREFIX_PATH="${folly lib path}" to cmake arguments. It is also
@@ -449,12 +454,12 @@ if(CMAKE_SYSTEM_NAME MATCHES "Darwin" AND TARGET
gflags_shared)
endif()
endforeach()
endif()
-target_link_libraries(velox PUBLIC Folly::folly)
+target_link_libraries(gluten_velox_impl PUBLIC Folly::folly)
# Link thrift libraries - check vcpkg first, then fall back to system libraries
if(ENABLE_GLUTEN_VCPKG)
find_package(FBThrift CONFIG REQUIRED)
- target_link_libraries(velox PUBLIC FBThrift::thriftcpp2)
+ target_link_libraries(gluten_velox_impl PUBLIC FBThrift::thriftcpp2)
else()
set(THRIFT_LIBRARY_DIRS)
if(CMAKE_INSTALL_PREFIX)
@@ -479,7 +484,8 @@ else()
NO_DEFAULT_PATH)
if(THRIFTCPP2_LIB AND THRIFTPROTOCOL_LIB)
- target_link_libraries(velox PRIVATE ${THRIFTCPP2_LIB}
${THRIFTPROTOCOL_LIB})
+ target_link_libraries(gluten_velox_impl PRIVATE ${THRIFTCPP2_LIB}
+ ${THRIFTPROTOCOL_LIB})
else()
message(
FATAL_ERROR
@@ -489,11 +495,11 @@ endif()
find_package(simdjson CONFIG)
if(simdjson_FOUND AND TARGET simdjson::simdjson)
- target_link_libraries(velox PUBLIC simdjson::simdjson)
+ target_link_libraries(gluten_velox_impl PUBLIC simdjson::simdjson)
else()
import_library(external::simdjson
${VELOX_BUILD_PATH}/_deps/simdjson-build/libsimdjson.a)
- target_link_libraries(velox PUBLIC external::simdjson)
+ target_link_libraries(gluten_velox_impl PUBLIC external::simdjson)
endif()
# Restore the platform's default suffixes before looking for optional dynamic
@@ -556,7 +562,7 @@ find_package(
ICU
COMPONENTS i18n uc data
REQUIRED)
-target_link_libraries(velox PUBLIC ICU::i18n ICU::uc ICU::data)
+target_link_libraries(gluten_velox_impl PUBLIC ICU::i18n ICU::uc ICU::data)
if(BUILD_TESTS)
add_subdirectory(compute/delta/tests)
@@ -574,21 +580,22 @@ endif()
if(ENABLE_S3)
add_definitions(-DENABLE_S3)
find_awssdk()
- target_link_libraries(velox PUBLIC ${AWSSDK_LIBRARIES})
+ target_link_libraries(gluten_velox_impl PUBLIC ${AWSSDK_LIBRARIES})
endif()
if(ENABLE_GCS)
add_definitions(-DENABLE_GCS)
find_gcssdk()
- target_link_libraries(velox PUBLIC google-cloud-cpp::storage)
+ target_link_libraries(gluten_velox_impl PUBLIC google-cloud-cpp::storage)
endif()
if(ENABLE_ABFS)
add_definitions(-DENABLE_ABFS)
find_azure()
- target_link_libraries(velox PUBLIC Azure::azure-storage-blobs)
- target_link_libraries(velox PUBLIC Azure::azure-storage-files-datalake)
- target_link_libraries(velox PUBLIC Azure::azure-identity)
+ target_link_libraries(gluten_velox_impl PUBLIC Azure::azure-storage-blobs)
+ target_link_libraries(gluten_velox_impl
+ PUBLIC Azure::azure-storage-files-datalake)
+ target_link_libraries(gluten_velox_impl PUBLIC Azure::azure-identity)
endif()
if(BUILD_EXAMPLES)
@@ -629,7 +636,7 @@ if(ENABLE_GPU)
)
target_compile_definitions(
- velox PRIVATE LIBCUDACXX_ENABLE_EXPERIMENTAL_MEMORY_RESOURCE)
+ gluten_velox_impl PRIVATE LIBCUDACXX_ENABLE_EXPERIMENTAL_MEMORY_RESOURCE)
add_library(velox_curl SHARED IMPORTED GLOBAL)
set_target_properties(
@@ -637,7 +644,7 @@ if(ENABLE_GPU)
${VELOX_BUILD_PATH}/_deps/curl-build/lib/libcurl.so)
target_link_libraries(
- velox
+ gluten_velox_impl
PUBLIC facebook::velox::velox_cudf_exec
facebook::velox::velox_cudf_vector
facebook::velox::velox_cudf_iceberg_connector
diff --git a/cpp/velox/benchmarks/CMakeLists.txt
b/cpp/velox/benchmarks/CMakeLists.txt
index bb1c9d2d90..453533b4c6 100644
--- a/cpp/velox/benchmarks/CMakeLists.txt
+++ b/cpp/velox/benchmarks/CMakeLists.txt
@@ -18,11 +18,13 @@ add_library(velox_benchmark_common STATIC
${VELOX_BENCHMARK_COMMON_SRCS})
target_include_directories(
velox_benchmark_common PUBLIC ${CMAKE_SOURCE_DIR}/velox
${CMAKE_SOURCE_DIR}/core)
-target_link_libraries(velox_benchmark_common PUBLIC velox benchmark::benchmark
- glog::glog)
+target_link_libraries(velox_benchmark_common
+ PUBLIC gluten_velox_impl benchmark::benchmark glog::glog)
function(add_velox_benchmark BM_EXEC BM_FILE)
add_executable(${BM_EXEC} ${BM_FILE})
- target_link_libraries(${BM_EXEC} PRIVATE velox_benchmark_common)
+ target_link_libraries(
+ ${BM_EXEC} PRIVATE velox_benchmark_common gluten_velox_impl
+ gluten_core_impl ${GLUTEN_VELOX_TEST_LIBRARIES})
if(ENABLE_GPU)
target_link_libraries(${BM_EXEC} PRIVATE velox_curl)
endif()
diff --git a/cpp/velox/compute/delta/tests/CMakeLists.txt
b/cpp/velox/compute/delta/tests/CMakeLists.txt
index 3c65d8443f..c37bd67470 100644
--- a/cpp/velox/compute/delta/tests/CMakeLists.txt
+++ b/cpp/velox/compute/delta/tests/CMakeLists.txt
@@ -16,8 +16,8 @@
add_executable(velox_roaring_bitmap_array_test RoaringBitmapArrayTest.cpp)
target_link_libraries(
- velox_roaring_bitmap_array_test velox ${GLUTEN_ROARING_LINK_LIBRARY}
- GTest::gtest GTest::gtest_main)
+ velox_roaring_bitmap_array_test gluten_velox_impl gluten_core_impl
+ ${GLUTEN_ROARING_LINK_LIBRARY} GTest::gtest GTest::gtest_main)
add_test(
NAME velox_roaring_bitmap_array_test
@@ -28,8 +28,8 @@ add_executable(
velox_delta_read_test DeltaConnectorTest.cpp DeltaBitmapAggregatorTest.cpp
DeltaDeletionVectorReaderTest.cpp DeltaSplitTest.cpp)
-target_link_libraries(velox_delta_read_test velox roaring
- facebook::velox::exec_test_lib GTest::gtest)
+target_link_libraries(velox_delta_read_test gluten_velox_impl gluten_core_impl
+ roaring facebook::velox::exec_test_lib GTest::gtest)
add_test(
NAME velox_delta_read_test
diff --git a/cpp/velox/tests/CMakeLists.txt b/cpp/velox/tests/CMakeLists.txt
index 369c92f5d4..f8afb308cd 100644
--- a/cpp/velox/tests/CMakeLists.txt
+++ b/cpp/velox/tests/CMakeLists.txt
@@ -31,8 +31,14 @@ function(add_velox_test TEST_EXEC)
target_compile_definitions(
${TEST_EXEC}
PRIVATE GLUTEN_VELOX_TEST_DATA_DIR="${CMAKE_CURRENT_SOURCE_DIR}/data")
- target_link_libraries(${TEST_EXEC} velox ${GLUTEN_ROARING_LINK_LIBRARY}
- GTest::gtest GTest::gtest_main)
+ target_link_libraries(
+ ${TEST_EXEC}
+ gluten_velox_impl
+ gluten_core_impl
+ ${GLUTEN_VELOX_TEST_LIBRARIES}
+ ${GLUTEN_ROARING_LINK_LIBRARY}
+ GTest::gtest
+ GTest::gtest_main)
if(ENABLE_GPU)
target_link_libraries(${TEST_EXEC} velox_curl)
endif()
@@ -82,8 +88,15 @@ if(ENABLE_GPU)
facebook::velox::velox_cudf_vector
facebook::velox::velox_cudf_hive_connector)
target_link_libraries(
- ${TEST_EXEC} PRIVATE velox ${GLUTEN_ROARING_LINK_LIBRARY} cudf::cudf
- velox_curl GTest::gtest GTest::gtest_main)
+ ${TEST_EXEC}
+ PRIVATE gluten_velox_impl
+ gluten_core_impl
+ ${GLUTEN_VELOX_TEST_LIBRARIES}
+ ${GLUTEN_ROARING_LINK_LIBRARY}
+ cudf::cudf
+ velox_curl
+ GTest::gtest
+ GTest::gtest_main)
gtest_discover_tests(
${TEST_EXEC} DISCOVERY_MODE PRE_TEST
PROPERTIES LABELS "cuda_driver"
@@ -152,6 +165,12 @@ add_velox_test(scoped_timer_test SOURCES
ScopedTimerTest.cc)
add_velox_test(row_based_checksum_test SOURCES RowBasedChecksumTest.cc)
if(BUILD_EXAMPLES)
add_velox_test(my_udf_test SOURCES MyUdfTest.cc)
+ # UDF loading exercises the production shared library, so use the same
+ # runtime.
+ set_property(
+ TARGET my_udf_test
+ PROPERTY LINK_LIBRARIES velox ${GLUTEN_VELOX_TEST_LIBRARIES} GTest::gtest
+ GTest::gtest_main)
endif()
if(ENABLE_ENHANCED_FEATURES)
diff --git a/cpp/velox/tests/GlutenS3FileSystemTest.cc
b/cpp/velox/tests/GlutenS3FileSystemTest.cc
index d99fb37c64..772843b50f 100644
--- a/cpp/velox/tests/GlutenS3FileSystemTest.cc
+++ b/cpp/velox/tests/GlutenS3FileSystemTest.cc
@@ -62,9 +62,10 @@ TEST(GlutenS3FileSystemTest, extractsAsyncUploadConfigs) {
const auto hiveConfig = createHiveConnectorConfig(config,
FileSystemType::kS3);
- EXPECT_EQ(hiveConfig->get<std::string>("hive.s3.part-upload-async"), "true");
- EXPECT_EQ(hiveConfig->get<std::string>("hive.s3.max-concurrent-upload-num"),
"8");
- EXPECT_EQ(hiveConfig->get<std::string>("hive.s3.upload-threads"), "32");
+ const std::string prefix = filesystems::S3Config::kS3Prefix;
+ EXPECT_EQ(hiveConfig->get<std::string>(prefix + "part-upload-async"),
"true");
+ EXPECT_EQ(hiveConfig->get<std::string>(prefix +
"max-concurrent-upload-num"), "8");
+ EXPECT_EQ(hiveConfig->get<std::string>(prefix + "upload-threads"), "32");
}
} // namespace
diff --git a/dev/builddeps-veloxbe.sh b/dev/builddeps-veloxbe.sh
index cbc516fe97..b85db703ab 100755
--- a/dev/builddeps-veloxbe.sh
+++ b/dev/builddeps-veloxbe.sh
@@ -350,6 +350,7 @@ function setup_dependencies {
setup_linux
elif [ $OS == 'Darwin' ]; then
setup_macos
+ export OPENSSL_ROOT_DIR="${OPENSSL_ROOT_DIR:-$(brew --prefix openssl@3)}"
else
echo "Unsupported kernel: $OS"
exit 1
diff --git a/dev/vcpkg/vcpkg.json b/dev/vcpkg/vcpkg.json
index 403f6299f6..b102af6146 100644
--- a/dev/vcpkg/vcpkg.json
+++ b/dev/vcpkg/vcpkg.json
@@ -20,6 +20,7 @@
"curl",
"lzo",
"re2",
+ "roaring",
"gflags",
"glog",
"s2geometry",
@@ -131,6 +132,7 @@
}
},
"overrides": [
+ { "name": "roaring", "version": "4.3.11" },
{ "name": "fmt", "version": "11.2.0" },
{ "name": "liblzma", "version": "5.6.2" },
{ "name": "xsimd", "version": "10.0.0" },
diff --git a/ep/build-velox/src/build-velox.sh
b/ep/build-velox/src/build-velox.sh
index 95d6c959f1..79aa1ca488 100755
--- a/ep/build-velox/src/build-velox.sh
+++ b/ep/build-velox/src/build-velox.sh
@@ -234,6 +234,7 @@ function compile {
cd googletest-src; cmake . ; sudo make install -j
#sudo cmake --install googletest-build/
elif [ $OS == 'Darwin' ]; then
+ cmake --build .. --target gtest gtest_main gmock gmock_main --parallel
"${NUM_THREADS:-1}"
install_cmake_dependency googletest-build/
fi
fi
diff --git a/ep/build-velox/src/get-velox.sh b/ep/build-velox/src/get-velox.sh
index 860739dca2..5cdd749958 100755
--- a/ep/build-velox/src/get-velox.sh
+++ b/ep/build-velox/src/get-velox.sh
@@ -96,6 +96,10 @@ function process_setup_tencentos32 {
# independent of this. Header-search isolation from /usr/local is handled by
# SDKROOT exported in builddeps-veloxbe.sh / build-velox.sh.
function process_setup_macos {
+ sed -i '' 's/ lz4 openssl simdjson/ lz4 openssl@3 simdjson/'
scripts/setup-macos.sh
+ sed -i '' '/run_and_time install_velox_deps_from_brew/a\
+ export OPENSSL_ROOT_DIR="$(brew --prefix openssl@3)"
+' scripts/setup-macos.sh
if ! grep -Fq 'FOLLY_USE_JEMALLOC=OFF' scripts/setup-common.sh; then
sed -i '' 's/local FOLLY_FLAGS=(/local
FOLLY_FLAGS=(-DFOLLY_USE_JEMALLOC=OFF /' scripts/setup-common.sh
fi
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]