This is an automated email from the ASF dual-hosted git repository.
kou pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow.git
The following commit(s) were added to refs/heads/main by this push:
new 8273f7abd4 GH-36927: [Java][Docs] Enable Gandiva build as part of Java
maven commands (#36929)
8273f7abd4 is described below
commit 8273f7abd44d4ed582650166de1c6ea59ed759b6
Author: david dali susanibar arce <[email protected]>
AuthorDate: Tue Aug 1 04:05:54 2023 -0500
GH-36927: [Java][Docs] Enable Gandiva build as part of Java maven commands
(#36929)
### Rationale for this change
To close: https://github.com/apache/arrow/issues/36927
### What changes are included in this PR?
- Enable MacOS Gandiva build as part of Java maven commands
- Enable Windows ORC build as part of Java maven commands
### Are these changes tested?
Yes:
- Gandiva: mvn generate-resources -Pgenerate-libs-jni-macos-linux -N
- ORC: mvn generate-resources -Pgenerate-libs-jni-windows -N
### Are there any user-facing changes?
No
* Closes: #36927
Lead-authored-by: david dali susanibar arce <[email protected]>
Co-authored-by: Sutou Kouhei <[email protected]>
Signed-off-by: Sutou Kouhei <[email protected]>
---
docs/source/developers/java/building.rst | 17 +++++++++--------
java/pom.xml | 24 ++++++++++++++----------
2 files changed, 23 insertions(+), 18 deletions(-)
diff --git a/docs/source/developers/java/building.rst
b/docs/source/developers/java/building.rst
index 5dd3a979d8..061c616d4b 100644
--- a/docs/source/developers/java/building.rst
+++ b/docs/source/developers/java/building.rst
@@ -132,11 +132,7 @@ Maven
$ cd arrow/java
$ export JAVA_HOME=<absolute path to your java home>
$ java --version
- $ mvn generate-resources \
- -Pgenerate-libs-jni-macos-linux \
- -DARROW_GANDIVA=ON \
- -DARROW_JAVA_JNI_ENABLE_GANDIVA=ON \
- -N
+ $ mvn generate-resources -Pgenerate-libs-jni-macos-linux -N
$ ls -latr java-dist/lib/<your system's architecture>/*_{jni,java}.*
|__ libarrow_dataset_jni.dylib
|__ libarrow_orc_jni.dylib
@@ -236,7 +232,9 @@ CMake
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_LIBDIR=lib/<your system's architecture> \
-DCMAKE_INSTALL_PREFIX=java-dist \
- -DCMAKE_PREFIX_PATH=$PWD/java-dist
+ -DCMAKE_PREFIX_PATH=$PWD/java-dist \
+ -DProtobuf_ROOT=$PWD/../cpp-jni/protobuf_ep-install \
+ -DProtobuf_USE_STATIC_LIBS=ON
$ cmake --build java-jni --target install --config Release
$ ls -latr java-dist/lib/<your system's architecture>/*_{jni,java}.*
|__ libarrow_dataset_jni.dylib
@@ -257,8 +255,9 @@ CMake
-DARROW_DATASET=ON ^
-DARROW_DEPENDENCY_USE_SHARED=OFF ^
-DARROW_FILESYSTEM=ON ^
+ -DARROW_GANDIVA=OFF ^
-DARROW_JSON=ON ^
- -DARROW_ORC=OFF ^
+ -DARROW_ORC=ON ^
-DARROW_PARQUET=ON ^
-DARROW_S3=ON ^
-DARROW_SUBSTRAIT=ON ^
@@ -280,9 +279,10 @@ CMake
-S java ^
-B java-jni ^
-DARROW_JAVA_JNI_ENABLE_C=OFF ^
+ -DARROW_JAVA_JNI_ENABLE_DATASET=ON ^
-DARROW_JAVA_JNI_ENABLE_DEFAULT=ON ^
-DARROW_JAVA_JNI_ENABLE_GANDIVA=OFF ^
- -DARROW_JAVA_JNI_ENABLE_ORC=OFF ^
+ -DARROW_JAVA_JNI_ENABLE_ORC=ON ^
-DBUILD_TESTING=OFF ^
-DCMAKE_BUILD_TYPE=Release ^
-DCMAKE_INSTALL_LIBDIR=lib/x86_64 ^
@@ -290,6 +290,7 @@ CMake
-DCMAKE_PREFIX_PATH=$PWD/java-dist
$ cmake --build java-jni --target install --config Release
$ dir "java-dist/bin"
+ |__ arrow_orc_jni.dll
|__ arrow_dataset_jni.dll
Archery
diff --git a/java/pom.xml b/java/pom.xml
index d6b37c7df9..f6837cd82c 100644
--- a/java/pom.xml
+++ b/java/pom.xml
@@ -984,13 +984,13 @@
<properties>
<arrow.dataset.jni.dist.dir>java-dist</arrow.dataset.jni.dist.dir>
<cpp.dependencies.builded>false</cpp.dependencies.builded>
- <ARROW_CSV>ON</ARROW_CSV>
+ <ARROW_DATASET>ON</ARROW_DATASET>
+ <ARROW_GANDIVA>ON</ARROW_GANDIVA>
<ARROW_ORC>ON</ARROW_ORC>
<ARROW_PARQUET>ON</ARROW_PARQUET>
- <ARROW_GANDIVA>OFF</ARROW_GANDIVA>
<ARROW_JAVA_JNI_ENABLE_C>OFF</ARROW_JAVA_JNI_ENABLE_C>
<ARROW_JAVA_JNI_ENABLE_DATASET>ON</ARROW_JAVA_JNI_ENABLE_DATASET>
- <ARROW_JAVA_JNI_ENABLE_GANDIVA>OFF</ARROW_JAVA_JNI_ENABLE_GANDIVA>
+ <ARROW_JAVA_JNI_ENABLE_GANDIVA>ON</ARROW_JAVA_JNI_ENABLE_GANDIVA>
<ARROW_JAVA_JNI_ENABLE_ORC>ON</ARROW_JAVA_JNI_ENABLE_ORC>
</properties>
<build>
@@ -1012,8 +1012,8 @@
-S cpp
-B cpp-jni
-DARROW_BUILD_SHARED=OFF
- -DARROW_CSV=${ARROW_CSV}
- -DARROW_DATASET=ON
+ -DARROW_CSV=${ARROW_DATASET}
+ -DARROW_DATASET=${ARROW_DATASET}
-DARROW_DEPENDENCY_SOURCE=BUNDLED
-DARROW_DEPENDENCY_USE_SHARED=OFF
-DARROW_FILESYSTEM=ON
@@ -1070,6 +1070,8 @@
-DCMAKE_INSTALL_LIBDIR=lib/${os.detected.arch}
-DCMAKE_INSTALL_PREFIX=${arrow.dataset.jni.dist.dir}
-DCMAKE_PREFIX_PATH=${project.basedir}/../java-dist/lib/${os.detected.arch}/cmake
+ -DProtobuf_USE_STATIC_LIBS=ON
+
-DProtobuf_ROOT=${project.basedir}/../cpp-jni/protobuf_ep-install
</commandlineArgs>
<workingDirectory>../</workingDirectory>
</configuration>
@@ -1099,13 +1101,14 @@
<properties>
<arrow.dataset.jni.dist.dir>java-dist</arrow.dataset.jni.dist.dir>
<cpp.dependencies.builded>false</cpp.dependencies.builded>
- <ARROW_CSV>ON</ARROW_CSV>
- <ARROW_ORC>OFF</ARROW_ORC>
+ <ARROW_DATASET>ON</ARROW_DATASET>
+ <ARROW_GANDIVA>OFF</ARROW_GANDIVA>
+ <ARROW_ORC>ON</ARROW_ORC>
<ARROW_PARQUET>ON</ARROW_PARQUET>
<ARROW_JAVA_JNI_ENABLE_C>OFF</ARROW_JAVA_JNI_ENABLE_C>
<ARROW_JAVA_JNI_ENABLE_DATASET>ON</ARROW_JAVA_JNI_ENABLE_DATASET>
<ARROW_JAVA_JNI_ENABLE_GANDIVA>OFF</ARROW_JAVA_JNI_ENABLE_GANDIVA>
- <ARROW_JAVA_JNI_ENABLE_ORC>OFF</ARROW_JAVA_JNI_ENABLE_ORC>
+ <ARROW_JAVA_JNI_ENABLE_ORC>ON</ARROW_JAVA_JNI_ENABLE_ORC>
</properties>
<build>
<plugins>
@@ -1126,10 +1129,11 @@
-S cpp
-B cpp-jni
-DARROW_BUILD_SHARED=OFF
- -DARROW_CSV=${ARROW_CSV}
- -DARROW_DATASET=ON
+ -DARROW_CSV=${ARROW_DATASET}
+ -DARROW_DATASET=${ARROW_DATASET}
-DARROW_DEPENDENCY_USE_SHARED=OFF
-DARROW_FILESYSTEM=ON
+ -DARROW_GANDIVA=${ARROW_GANDIVA}
-DARROW_JSON=${ARROW_DATASET}
-DARROW_ORC=${ARROW_ORC}
-DARROW_PARQUET=${ARROW_PARQUET}