From f4e79b105d5162b6d28f302069f8305dfb17c063 Mon Sep 17 00:00:00 2001 From: david dali susanibar arce Date: Tue, 13 Sep 2022 19:48:38 -0500 Subject: [PATCH] ARROW-17418: [Doc][Java] Dataset library able to compile with mvn command (#13889) Dataset/ORC/Gandiva library (.so / .dylib) able to compile with mvn command $ mvn clean generate-resources -Pgenerate-jnicpp-dylib_so -DARROW_DATASET=ON -DARROW_ORC=ON -DARROW_GANDIVA=ON -N Authored-by: david dali susanibar arce Signed-off-by: Sutou Kouhei --- docs/source/developers/java/building.rst | 27 +++- java/pom.xml | 191 +++++++++++++++++++++++ 2 files changed, 214 insertions(+), 4 deletions(-) diff --git a/docs/source/developers/java/building.rst b/docs/source/developers/java/building.rst index fd125e178db53..42faadb8d219d 100644 --- a/docs/source/developers/java/building.rst +++ b/docs/source/developers/java/building.rst @@ -100,7 +100,7 @@ for that architecture. See, for example, the `Azul JDK + $ java --version + $ mvn clean generate-resources -Pgenerate-jnicpp-dylib_so -N + $ ls -latr java-dist/lib + |__ libarrow_orc_jni.dylib + |__ libgandiva_jni.dylib + +- To build only the JNI Dataset library: - Not options available on Maven. + .. code-block:: + + $ cd arrow/java + $ export JAVA_HOME= + $ java --version + $ mvn clean generate-resources -Pgenerate-dataset-dylib_so -N + $ ls -latr java-dist/lib + |__ libarrow_dataset_jni.dylib CMake ~~~~~ @@ -175,7 +194,7 @@ CMake |__ libarrow_orc_jni.dylib |__ libgandiva_jni.dylib -- To build only the Dataset library: +- To build only the JNI Dataset library: .. code-block:: diff --git a/java/pom.xml b/java/pom.xml index 7bdfa7c656341..8abe7ad9dcaa9 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -969,6 +969,197 @@ + + generate-dataset-dylib_so + + java-dist/lib + false + + + + + org.codehaus.mojo + exec-maven-plugin + 3.1.0 + + + datasetdir + generate-resources + + exec + + + mkdir + -p cpp-jni java-dist java-jni + ../ + + + + datasetarrowdependency + generate-resources + + exec + + + cmake + + -S cpp + -B cpp-jni + -DARROW_CSV=ON + -DARROW_DATASET=ON + -DARROW_DEPENDENCY_SOURCE=BUNDLED + -DARROW_DEPENDENCY_USE_SHARED=OFF + -DARROW_FILESYSTEM=ON + -DARROW_GANDIVA=ON + -DARROW_GANDIVA_JAVA=ON + -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON + -DARROW_JNI=ON + -DARROW_ORC=ON + -DARROW_PARQUET=ON + -DARROW_PLASMA=ON + -DARROW_PLASMA_JAVA_CLIENT=ON + -DARROW_S3=ON + -DARROW_USE_CCACHE=ON + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_INSTALL_LIBDIR=lib + -DCMAKE_INSTALL_PREFIX=java-dist + -DCMAKE_UNITY_BUILD=ON + + ../ + ${cpp.dependencies.builded} + + + + datasetarrowdependencybuild + generate-resources + + exec + + + cmake + + --build cpp-jni --target install --config Release + + ../ + ${cpp.dependencies.builded} + + + + datasetdefine + generate-resources + + exec + + + cmake + + -S java + -B java-jni + -DARROW_JAVA_JNI_ENABLE_DATASET=ON + -DARROW_JAVA_JNI_ENABLE_DEFAULT=OFF + -DBUILD_TESTING=OFF + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_INSTALL_PREFIX=${arrow.c.jni.dist.dir} + -DCMAKE_PREFIX_PATH=${project.basedir}/../java-dist + + ../ + + + + datasetbuild + generate-resources + + exec + + + cmake + + --build java-jni --target install --config Release + + ../ + + + + + + + + + + generate-jnicpp-dylib_so + + + + org.codehaus.mojo + exec-maven-plugin + 3.1.0 + + + jnidir + generate-resources + + exec + + + mkdir + -p java-dist cpp-jni + ../ + + + + jnidefine + generate-resources + + exec + + + cmake + + -S cpp + -B cpp-jni + -DARROW_CSV=ON + -DARROW_DATASET=ON + -DARROW_DEPENDENCY_SOURCE=BUNDLED + -DARROW_DEPENDENCY_USE_SHARED=OFF + -DARROW_FILESYSTEM=ON + -DARROW_GANDIVA=ON + -DARROW_GANDIVA_JAVA=ON + -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON + -DARROW_JNI=ON + -DARROW_ORC=ON + -DARROW_PARQUET=ON + -DARROW_PLASMA=ON + -DARROW_PLASMA_JAVA_CLIENT=ON + -DARROW_S3=ON + -DARROW_USE_CCACHE=ON + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_INSTALL_LIBDIR=lib + -DCMAKE_INSTALL_PREFIX=java-dist + -DCMAKE_UNITY_BUILD=ON + + ../ + + + + jnidefinebuild + generate-resources + + exec + + + cmake + + --build cpp-jni --target install --config Release + + ../ + + + + + + + +