diff --git a/CMakeLists.txt b/CMakeLists.txt index 11e6eb7448..b6b06d1a74 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -41,6 +41,10 @@ set(ARROW_JAVA_JNI_ABSL_INCLUDE_DIR "" CACHE PATH "Path to Abseil source headers for the Gandiva JNI build") mark_as_advanced(ARROW_JAVA_JNI_ABSL_INCLUDE_DIR) +set(ARROW_JAVA_JNI_UTF8_RANGE_INCLUDE_DIR + "" + CACHE PATH "Path to utf8_range source headers for the Gandiva JNI build") +mark_as_advanced(ARROW_JAVA_JNI_UTF8_RANGE_INCLUDE_DIR) include(GNUInstallDirs) diff --git a/ci/scripts/jni_macos_build.sh b/ci/scripts/jni_macos_build.sh index efc2446752..277987aa88 100755 --- a/ci/scripts/jni_macos_build.sh +++ b/ci/scripts/jni_macos_build.sh @@ -86,9 +86,17 @@ if [ ! -d "${absl_include_dir}/absl" ]; then exit 1 fi +# Protobuf 33+ headers include utf8_validity.h from the bundled utf8_range. +utf8_range_include_dir="${build_dir}/cpp/_deps/protobuf-src/third_party/utf8_range" +if [ ! -f "${utf8_range_include_dir}/utf8_validity.h" ]; then + echo "Bundled utf8_range headers were not found in ${utf8_range_include_dir}" >&2 + exit 1 +fi + JAVA_JNI_CMAKE_ARGS="-DProtobuf_ROOT=${build_dir}/cpp/_deps/protobuf-build" JAVA_JNI_CMAKE_ARGS+=" -DProtobuf_SRC_ROOT_FOLDER=${build_dir}/cpp/_deps/protobuf-src" JAVA_JNI_CMAKE_ARGS+=" -DARROW_JAVA_JNI_ABSL_INCLUDE_DIR=${absl_include_dir}" +JAVA_JNI_CMAKE_ARGS+=" -DARROW_JAVA_JNI_UTF8_RANGE_INCLUDE_DIR=${utf8_range_include_dir}" export JAVA_JNI_CMAKE_ARGS "${source_dir}/ci/scripts/jni_build.sh" \ "${source_dir}" \ diff --git a/gandiva/CMakeLists.txt b/gandiva/CMakeLists.txt index ca041c9fb1..0750547786 100644 --- a/gandiva/CMakeLists.txt +++ b/gandiva/CMakeLists.txt @@ -58,6 +58,10 @@ if(ARROW_JAVA_JNI_ABSL_INCLUDE_DIR) target_include_directories(arrow_java_jni_gandiva SYSTEM PRIVATE "${ARROW_JAVA_JNI_ABSL_INCLUDE_DIR}") endif() +if(ARROW_JAVA_JNI_UTF8_RANGE_INCLUDE_DIR) + target_include_directories(arrow_java_jni_gandiva SYSTEM + PRIVATE "${ARROW_JAVA_JNI_UTF8_RANGE_INCLUDE_DIR}") +endif() target_link_libraries(arrow_java_jni_gandiva arrow_java_jni_gandiva_headers jni