Skip to content

Commit a866f2f

Browse files
authored
ARROW-17561: [Java][ORC] Move JNI build configuration from cpp/ to java/ (apache#14162)
Authored-by: Sutou Kouhei <kou@clear-code.com> Signed-off-by: Sutou Kouhei <kou@clear-code.com>
1 parent 9917960 commit a866f2f

10 files changed

Lines changed: 29 additions & 80 deletions

File tree

ci/scripts/java_jni_build.sh

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ build_dir=${3}/java_jni
2525
# The directory where the final binaries will be stored when scripts finish
2626
dist_dir=${4}
2727

28+
prefix_dir="${build_dir}/java-jni"
29+
2830
echo "=== Clear output directories and leftovers ==="
2931
# Clear output directories and leftovers
3032
rm -rf ${build_dir}
@@ -50,10 +52,12 @@ esac
5052
cmake \
5153
-DARROW_JAVA_JNI_ENABLE_DATASET=${ARROW_DATASET:-ON} \
5254
-DARROW_JAVA_JNI_ENABLE_GANDIVA=${ARROW_GANDIVA:-ON} \
55+
-DARROW_JAVA_JNI_ENABLE_ORC=${ARROW_ORC:-ON} \
5356
-DBUILD_TESTING=${ARROW_JAVA_BUILD_TESTS} \
5457
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} \
5558
-DCMAKE_PREFIX_PATH=${arrow_install_dir} \
56-
-DCMAKE_INSTALL_PREFIX=${dist_dir} \
59+
-DCMAKE_INSTALL_PREFIX=${prefix_dir} \
60+
-DCMAKE_INSTALL_LIBDIR=lib \
5761
-DCMAKE_UNITY_BUILD=${CMAKE_UNITY_BUILD:-OFF} \
5862
-GNinja \
5963
${JAVA_JNI_CMAKE_ARGS:-} \
@@ -68,3 +72,6 @@ if [ "${ARROW_JAVA_BUILD_TESTS}" = "ON" ]; then
6872
fi
6973
cmake --build . --config ${CMAKE_BUILD_TYPE} --target install
7074
popd
75+
76+
mkdir -p ${dist_dir}
77+
mv ${prefix_dir}/lib/* ${dist_dir}/

ci/scripts/java_jni_macos_build.sh

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,6 @@ fi
114114

115115
echo "=== Copying libraries to the distribution folder ==="
116116
mkdir -p "${dist_dir}"
117-
cp -L ${install_dir}/lib/libarrow_orc_jni.dylib ${dist_dir}
118117
cp -L ${build_dir}/cpp/*/libplasma_java.dylib ${dist_dir}
119118

120119
echo "=== Checking shared dependencies for libraries ==="

ci/scripts/java_jni_manylinux_build.sh

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,6 @@ fi
134134

135135

136136
echo "=== Copying libraries to the distribution folder ==="
137-
cp -L ${ARROW_HOME}/lib/libarrow_orc_jni.so ${dist_dir}
138137
cp -L ${build_dir}/cpp/*/libplasma_java.so ${dist_dir}
139138

140139
echo "=== Checking shared dependencies for libraries ==="

cpp/CMakeLists.txt

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1023,12 +1023,6 @@ if(ARROW_PARQUET)
10231023
endif()
10241024
endif()
10251025
1026-
if(ARROW_JNI)
1027-
if(ARROW_ORC)
1028-
add_subdirectory(../java/adapter/orc/src/main/cpp ./java/orc/jni)
1029-
endif()
1030-
endif()
1031-
10321026
if(ARROW_GANDIVA)
10331027
add_subdirectory(src/gandiva)
10341028
endif()

java/CMakeLists.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@ option(ARROW_JAVA_JNI_ENABLE_DEFAULT "Whether enable components by default or no
3030
option(ARROW_JAVA_JNI_ENABLE_C "Enable C data interface" ${ARROW_JAVA_JNI_ENABLE_DEFAULT})
3131
option(ARROW_JAVA_JNI_ENABLE_DATASET "Enable dataset" ${ARROW_JAVA_JNI_ENABLE_DEFAULT})
3232
option(ARROW_JAVA_JNI_ENABLE_GANDIVA "Enable Gandiva" ${ARROW_JAVA_JNI_ENABLE_DEFAULT})
33+
option(ARROW_JAVA_JNI_ENABLE_ORC "Enable ORC" ${ARROW_JAVA_JNI_ENABLE_DEFAULT})
34+
35+
include(GNUInstallDirs)
3336

3437
# ccache
3538
option(ARROW_JAVA_JNI_USE_CCACHE "Use ccache when compiling (if available)" ON)
@@ -74,3 +77,6 @@ endif()
7477
if(ARROW_JAVA_JNI_ENABLE_GANDIVA)
7578
add_subdirectory(gandiva)
7679
endif()
80+
if(ARROW_JAVA_JNI_ENABLE_ORC)
81+
add_subdirectory(adapter/orc)
82+
endif()

java/adapter/orc/CMakeLists.txt

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -15,29 +15,26 @@
1515
# specific language governing permissions and limitations
1616
# under the License.
1717

18-
#
19-
# arrow_orc_java
20-
#
21-
22-
# Headers: top level
23-
24-
project(arrow_orc_java)
18+
find_package(Arrow REQUIRED)
2519

26-
# Find java/jni
27-
include(FindJava)
28-
include(UseJava)
29-
include(FindJNI)
20+
include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}
21+
${JNI_INCLUDE_DIRS} ${JNI_HEADERS_DIR})
3022

31-
message("generating headers to ${JNI_HEADERS_DIR}")
32-
33-
add_jar(arrow_orc_java
23+
add_jar(arrow_java_jni_orc_jar
3424
src/main/java/org/apache/arrow/adapter/orc/OrcReaderJniWrapper.java
3525
src/main/java/org/apache/arrow/adapter/orc/OrcStripeReaderJniWrapper.java
3626
src/main/java/org/apache/arrow/adapter/orc/OrcMemoryJniWrapper.java
3727
src/main/java/org/apache/arrow/adapter/orc/OrcJniUtils.java
3828
src/main/java/org/apache/arrow/adapter/orc/OrcRecordBatch.java
3929
src/main/java/org/apache/arrow/adapter/orc/OrcFieldNode.java
4030
GENERATE_NATIVE_HEADERS
41-
arrow_orc_java-native
31+
arrow_java_jni_orc_headers
4232
DESTINATION
4333
${JNI_HEADERS_DIR})
34+
35+
add_library(arrow_java_jni_orc SHARED src/main/cpp/jni_wrapper.cpp)
36+
set_property(TARGET arrow_java_jni_orc PROPERTY OUTPUT_NAME "arrow_orc_jni")
37+
target_link_libraries(arrow_java_jni_orc arrow_java_jni_orc_headers jni
38+
Arrow::arrow_static)
39+
40+
install(TARGETS arrow_java_jni_orc DESTINATION ${CMAKE_INSTALL_LIBDIR})

java/adapter/orc/src/main/cpp/CMakeLists.txt

Lines changed: 0 additions & 53 deletions
This file was deleted.

java/c/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,4 @@ add_library(arrow_java_jni_cdata SHARED src/main/cpp/jni_wrapper.cc)
3030
set_property(TARGET arrow_java_jni_cdata PROPERTY OUTPUT_NAME "arrow_cdata_jni")
3131
target_link_libraries(arrow_java_jni_cdata arrow_java_jni_cdata_headers jni)
3232

33-
install(TARGETS arrow_java_jni_cdata DESTINATION ${CMAKE_INSTALL_PREFIX})
33+
install(TARGETS arrow_java_jni_cdata DESTINATION ${CMAKE_INSTALL_LIBDIR})

java/dataset/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,4 +42,4 @@ if(BUILD_TESTING)
4242
add_test(NAME arrow-java-jni-dataset-test COMMAND arrow-java-jni-dataset-test)
4343
endif()
4444

45-
install(TARGETS arrow_java_jni_dataset DESTINATION ${CMAKE_INSTALL_PREFIX})
45+
install(TARGETS arrow_java_jni_dataset DESTINATION ${CMAKE_INSTALL_LIBDIR})

java/gandiva/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,4 +87,4 @@ if(CXX_LINKER_SUPPORTS_VERSION_SCRIPT)
8787
)
8888
endif()
8989

90-
install(TARGETS arrow_java_jni_gandiva DESTINATION ${CMAKE_INSTALL_PREFIX})
90+
install(TARGETS arrow_java_jni_gandiva DESTINATION ${CMAKE_INSTALL_LIBDIR})

0 commit comments

Comments
 (0)