From f32a2387171df9380bf67e9ae70c5201b3d0ef61 Mon Sep 17 00:00:00 2001 From: david dali susanibar arce Date: Mon, 15 Aug 2022 09:18:35 -0500 Subject: [PATCH 1/8] C Data Interface library (.so / .dylib) able to compile with mvn command --- docs/source/developers/java/building.rst | 97 +++++++++++++++++++----- java/pom.xml | 69 +++++++++++++++++ 2 files changed, 146 insertions(+), 20 deletions(-) diff --git a/docs/source/developers/java/building.rst b/docs/source/developers/java/building.rst index add2b11b2780..52de9f3816ef 100644 --- a/docs/source/developers/java/building.rst +++ b/docs/source/developers/java/building.rst @@ -47,11 +47,19 @@ repository: $ cd arrow $ git submodule update --init --recursive -Basic Installation ------------------- +These are the options available to compile Arrow Java modules with: +- Maven build tool +- Docker compose +- Archery + +Building Java Modules +--------------------- To build the default modules, go to the project root and execute: +Maven +~~~~~ + .. code-block:: $ cd arrow/java @@ -59,28 +67,58 @@ To build the default modules, go to the project root and execute: $ java --version $ mvn clean install -Building JNI Libraries on Linux -------------------------------- +Docker compose +~~~~~~~~~~~~~~ + +.. code-block:: + + $ cd arrow/java + $ export JAVA_HOME= + $ java --version + $ docker-compose run debian-java + +Archery +~~~~~~~ + +.. code-block:: + + $ cd arrow/java + $ export JAVA_HOME= + $ java --version + $ archery docker run debian-java + +Building JNI Libraries (.dylib / .so) +------------------------------------- First, we need to build the `C++ shared libraries`_ that the JNI bindings will use. We can build these manually or we can use `Archery`_ to build them using a Docker container (This will require installing Docker, Docker Compose, and Archery). +Note: If you are building on Apple Silicon, be sure to use a JDK version that was compiled +for that architecture. See, for example, the `Azul JDK `_. + +Maven +~~~~~ + +- To build only the C Data Interface library: + .. code-block:: - $ cd arrow - $ archery docker run java-jni-manylinux-2014 - $ ls -latr java-dist/ - |__ libarrow_cdata_jni.so - |__ libarrow_dataset_jni.so - |__ libarrow_orc_jni.so - |__ libgandiva_jni.so + $ cd arrow/java + $ export JAVA_HOME= + $ java --version + $ mvn clean generate-resources -Pgenerate-cdata-dylib_so -N + $ ls ../java-dist/lib + |__ libarrow_cdata_jni.dylib + +- To build other JNI libraries: -Building JNI Libraries on MacOS -------------------------------- -Note: If you are building on Apple Silicon, be sure to use a JDK version that was compiled for that architecture. See, for example, the `Azul JDK `_. +Not options available on Maven. -To build only the C Data Interface library: +CMake +~~~~~ + +- To build only the C Data Interface library: .. code-block:: @@ -98,7 +136,7 @@ To build only the C Data Interface library: $ ls -latr ../java-dist/lib |__ libarrow_cdata_jni.dylib -To build other JNI libraries: +- To build other JNI libraries: .. code-block:: @@ -141,6 +179,9 @@ To build other JNI libraries: -DSnappy_SOURCE=BUNDLED \ -DORC_SOURCE=BUNDLED \ -DZLIB_SOURCE=BUNDLED \ + -Dxsimd_SOURCE=BUNDLED \ + -Dzstd_SOURCE=BUNDLED \ + -Dlz4_SOURCE=BUNDLED \ ../cpp $ cmake --build . --target install $ ls -latr ../java-dist/lib @@ -148,17 +189,33 @@ To build other JNI libraries: |__ libarrow_orc_jni.dylib |__ libgandiva_jni.dylib -Building Arrow JNI Modules --------------------------- +Archery +~~~~~~~ + +.. code-block:: + + $ cd arrow + $ archery docker run java-jni-manylinux-2014 + $ ls -latr java-dist/ + |__ libarrow_cdata_jni.so + |__ libarrow_dataset_jni.so + |__ libarrow_orc_jni.so + |__ libgandiva_jni.so + +Building Java JNI Modules +------------------------- + +Maven +~~~~~ -To compile the JNI bindings, use the ``arrow-c-data`` Maven profile: +- To compile the JNI bindings, use the ``arrow-c-data`` Maven profile: .. code-block:: $ cd arrow/java $ mvn -Darrow.c.jni.dist.dir=/java-dist/lib -Parrow-c-data clean install -To compile the JNI bindings for ORC / Gandiva / Dataset, use the ``arrow-jni`` Maven profile: +- To compile the JNI bindings for ORC / Gandiva / Dataset, use the ``arrow-jni`` Maven profile: .. code-block:: diff --git a/java/pom.xml b/java/pom.xml index 08bc54c140e4..5974e114867e 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -887,6 +887,75 @@ + + generate-cdata-dylib_so + + + + org.codehaus.mojo + exec-maven-plugin + 3.1.0 + + + cdatadelete + generate-resources + + exec + + + rm + -rf java-dist java-native-c + ../ + + + + cdatadir + generate-resources + + exec + + + mkdir + -p java-dist java-native-c + ../ + + + + cdatadefine + generate-resources + + exec + + + cmake + + -DCMAKE_BUILD_TYPE=release + -DCMAKE_INSTALL_PREFIX=../java-dist/lib + ../java + + ../java-native-c + + + + cdatabuild + generate-resources + + exec + + + cmake + + --build . --target install --config release + + ../java-native-c + + + + + + + + From 22c09cd4bc0182b1ed515717aab56fa76b4aec1e Mon Sep 17 00:00:00 2001 From: david dali susanibar arce Date: Mon, 15 Aug 2022 09:23:44 -0500 Subject: [PATCH 2/8] C Data Interface library (.so / .dylib) able to compile with mvn command --- java/pom.xml | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/java/pom.xml b/java/pom.xml index 5974e114867e..6d42077e9e71 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -896,18 +896,6 @@ exec-maven-plugin 3.1.0 - - cdatadelete - generate-resources - - exec - - - rm - -rf java-dist java-native-c - ../ - - cdatadir generate-resources From bac644b1eb7718a93294859bfc2523983875e240 Mon Sep 17 00:00:00 2001 From: david dali susanibar arce Date: Mon, 15 Aug 2022 17:56:49 -0500 Subject: [PATCH 3/8] Format rst doc + add variabe for lib folder --- docs/source/developers/java/building.rst | 158 +++++++++++------------ java/pom.xml | 5 +- 2 files changed, 83 insertions(+), 80 deletions(-) diff --git a/docs/source/developers/java/building.rst b/docs/source/developers/java/building.rst index 52de9f3816ef..fabef876d995 100644 --- a/docs/source/developers/java/building.rst +++ b/docs/source/developers/java/building.rst @@ -102,92 +102,92 @@ Maven - To build only the C Data Interface library: -.. code-block:: + .. code-block:: - $ cd arrow/java - $ export JAVA_HOME= - $ java --version - $ mvn clean generate-resources -Pgenerate-cdata-dylib_so -N - $ ls ../java-dist/lib - |__ libarrow_cdata_jni.dylib + $ cd arrow/java + $ export JAVA_HOME= + $ java --version + $ mvn clean generate-resources -Pgenerate-cdata-dylib_so -N + $ ls ../java-dist/lib + |__ libarrow_cdata_jni.dylib - To build other JNI libraries: -Not options available on Maven. + Not options available on Maven. CMake ~~~~~ - To build only the C Data Interface library: -.. code-block:: - - $ cd arrow - $ brew bundle --file=cpp/Brewfile - Homebrew Bundle complete! 25 Brewfile dependencies now installed. - $ export JAVA_HOME= - $ mkdir -p java-dist java-native-c - $ cd java-native-c - $ cmake \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=../java-dist/lib \ - ../java - $ cmake --build . --target install - $ ls -latr ../java-dist/lib - |__ libarrow_cdata_jni.dylib + .. code-block:: + + $ cd arrow + $ brew bundle --file=cpp/Brewfile + Homebrew Bundle complete! 25 Brewfile dependencies now installed. + $ export JAVA_HOME= + $ mkdir -p java-dist java-native-c + $ cd java-native-c + $ cmake \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=../java-dist/lib \ + ../java + $ cmake --build . --target install + $ ls -latr ../java-dist/lib + |__ libarrow_cdata_jni.dylib - To build other JNI libraries: -.. code-block:: - - $ cd arrow - $ brew bundle --file=cpp/Brewfile - Homebrew Bundle complete! 25 Brewfile dependencies now installed. - $ export JAVA_HOME= - $ mkdir -p java-dist java-native-cpp - $ cd java-native-cpp - $ cmake \ - -DARROW_BOOST_USE_SHARED=OFF \ - -DARROW_BROTLI_USE_SHARED=OFF \ - -DARROW_BZ2_USE_SHARED=OFF \ - -DARROW_GFLAGS_USE_SHARED=OFF \ - -DARROW_GRPC_USE_SHARED=OFF \ - -DARROW_LZ4_USE_SHARED=OFF \ - -DARROW_OPENSSL_USE_SHARED=OFF \ - -DARROW_PROTOBUF_USE_SHARED=OFF \ - -DARROW_SNAPPY_USE_SHARED=OFF \ - -DARROW_THRIFT_USE_SHARED=OFF \ - -DARROW_UTF8PROC_USE_SHARED=OFF \ - -DARROW_ZSTD_USE_SHARED=OFF \ - -DARROW_JNI=ON \ - -DARROW_PARQUET=ON \ - -DARROW_FILESYSTEM=ON \ - -DARROW_DATASET=ON \ - -DARROW_GANDIVA_JAVA=ON \ - -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \ - -DARROW_GANDIVA=ON \ - -DARROW_ORC=ON \ - -DARROW_PLASMA_JAVA_CLIENT=ON \ - -DARROW_PLASMA=ON \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_LIBDIR=lib \ - -DCMAKE_INSTALL_PREFIX=../java-dist \ - -DCMAKE_UNITY_BUILD=ON \ - -Dre2_SOURCE=BUNDLED \ - -DBoost_SOURCE=BUNDLED \ - -Dutf8proc_SOURCE=BUNDLED \ - -DSnappy_SOURCE=BUNDLED \ - -DORC_SOURCE=BUNDLED \ - -DZLIB_SOURCE=BUNDLED \ - -Dxsimd_SOURCE=BUNDLED \ - -Dzstd_SOURCE=BUNDLED \ - -Dlz4_SOURCE=BUNDLED \ - ../cpp - $ cmake --build . --target install - $ ls -latr ../java-dist/lib - |__ libarrow_dataset_jni.dylib - |__ libarrow_orc_jni.dylib - |__ libgandiva_jni.dylib + .. code-block:: + + $ cd arrow + $ brew bundle --file=cpp/Brewfile + Homebrew Bundle complete! 25 Brewfile dependencies now installed. + $ export JAVA_HOME= + $ mkdir -p java-dist java-native-cpp + $ cd java-native-cpp + $ cmake \ + -DARROW_BOOST_USE_SHARED=OFF \ + -DARROW_BROTLI_USE_SHARED=OFF \ + -DARROW_BZ2_USE_SHARED=OFF \ + -DARROW_GFLAGS_USE_SHARED=OFF \ + -DARROW_GRPC_USE_SHARED=OFF \ + -DARROW_LZ4_USE_SHARED=OFF \ + -DARROW_OPENSSL_USE_SHARED=OFF \ + -DARROW_PROTOBUF_USE_SHARED=OFF \ + -DARROW_SNAPPY_USE_SHARED=OFF \ + -DARROW_THRIFT_USE_SHARED=OFF \ + -DARROW_UTF8PROC_USE_SHARED=OFF \ + -DARROW_ZSTD_USE_SHARED=OFF \ + -DARROW_JNI=ON \ + -DARROW_PARQUET=ON \ + -DARROW_FILESYSTEM=ON \ + -DARROW_DATASET=ON \ + -DARROW_GANDIVA_JAVA=ON \ + -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \ + -DARROW_GANDIVA=ON \ + -DARROW_ORC=ON \ + -DARROW_PLASMA_JAVA_CLIENT=ON \ + -DARROW_PLASMA=ON \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_INSTALL_PREFIX=../java-dist \ + -DCMAKE_UNITY_BUILD=ON \ + -Dre2_SOURCE=BUNDLED \ + -DBoost_SOURCE=BUNDLED \ + -Dutf8proc_SOURCE=BUNDLED \ + -DSnappy_SOURCE=BUNDLED \ + -DORC_SOURCE=BUNDLED \ + -DZLIB_SOURCE=BUNDLED \ + -Dxsimd_SOURCE=BUNDLED \ + -Dzstd_SOURCE=BUNDLED \ + -Dlz4_SOURCE=BUNDLED \ + ../cpp + $ cmake --build . --target install + $ ls -latr ../java-dist/lib + |__ libarrow_dataset_jni.dylib + |__ libarrow_orc_jni.dylib + |__ libgandiva_jni.dylib Archery ~~~~~~~ @@ -210,17 +210,17 @@ Maven - To compile the JNI bindings, use the ``arrow-c-data`` Maven profile: -.. code-block:: + .. code-block:: - $ cd arrow/java - $ mvn -Darrow.c.jni.dist.dir=/java-dist/lib -Parrow-c-data clean install + $ cd arrow/java + $ mvn -Darrow.c.jni.dist.dir=/java-dist/lib -Parrow-c-data clean install - To compile the JNI bindings for ORC / Gandiva / Dataset, use the ``arrow-jni`` Maven profile: -.. code-block:: + .. code-block:: - $ cd arrow/java - $ mvn -Darrow.cpp.build.dir=/java-dist/lib -Parrow-jni clean install + $ cd arrow/java + $ mvn -Darrow.cpp.build.dir=/java-dist/lib -Parrow-jni clean install IDE Configuration ================= diff --git a/java/pom.xml b/java/pom.xml index 6d42077e9e71..b8f9ee767ba3 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -889,6 +889,9 @@ generate-cdata-dylib_so + + ../java-dist/lib + @@ -918,7 +921,7 @@ cmake -DCMAKE_BUILD_TYPE=release - -DCMAKE_INSTALL_PREFIX=../java-dist/lib + -DCMAKE_INSTALL_PREFIX=${arrow.c.jni.dist.dir} ../java ../java-native-c From cb769c59e307df68adf43ff7bb5a95f144d73818 Mon Sep 17 00:00:00 2001 From: david dali susanibar arce Date: Mon, 15 Aug 2022 19:21:45 -0500 Subject: [PATCH 4/8] Simplifying Arrow Java JNI building parameters --- docs/source/developers/java/building.rst | 26 +++--------------------- 1 file changed, 3 insertions(+), 23 deletions(-) diff --git a/docs/source/developers/java/building.rst b/docs/source/developers/java/building.rst index fabef876d995..146f7caadf5f 100644 --- a/docs/source/developers/java/building.rst +++ b/docs/source/developers/java/building.rst @@ -147,18 +147,7 @@ CMake $ mkdir -p java-dist java-native-cpp $ cd java-native-cpp $ cmake \ - -DARROW_BOOST_USE_SHARED=OFF \ - -DARROW_BROTLI_USE_SHARED=OFF \ - -DARROW_BZ2_USE_SHARED=OFF \ - -DARROW_GFLAGS_USE_SHARED=OFF \ - -DARROW_GRPC_USE_SHARED=OFF \ - -DARROW_LZ4_USE_SHARED=OFF \ - -DARROW_OPENSSL_USE_SHARED=OFF \ - -DARROW_PROTOBUF_USE_SHARED=OFF \ - -DARROW_SNAPPY_USE_SHARED=OFF \ - -DARROW_THRIFT_USE_SHARED=OFF \ - -DARROW_UTF8PROC_USE_SHARED=OFF \ - -DARROW_ZSTD_USE_SHARED=OFF \ + -DARROW_*_USE_SHARED=OFF \ -DARROW_JNI=ON \ -DARROW_PARQUET=ON \ -DARROW_FILESYSTEM=ON \ @@ -167,22 +156,13 @@ CMake -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \ -DARROW_GANDIVA=ON \ -DARROW_ORC=ON \ - -DARROW_PLASMA_JAVA_CLIENT=ON \ - -DARROW_PLASMA=ON \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_LIBDIR=lib \ -DCMAKE_INSTALL_PREFIX=../java-dist \ -DCMAKE_UNITY_BUILD=ON \ - -Dre2_SOURCE=BUNDLED \ - -DBoost_SOURCE=BUNDLED \ - -Dutf8proc_SOURCE=BUNDLED \ - -DSnappy_SOURCE=BUNDLED \ - -DORC_SOURCE=BUNDLED \ - -DZLIB_SOURCE=BUNDLED \ - -Dxsimd_SOURCE=BUNDLED \ - -Dzstd_SOURCE=BUNDLED \ - -Dlz4_SOURCE=BUNDLED \ + -DARROW_DEPENDENCY_SOURCE=BUNDLED \ ../cpp + $ cmake --build . --target install $ ls -latr ../java-dist/lib |__ libarrow_dataset_jni.dylib From edfd396da6e5ef634e70d6ee22ee8476a3f4f681 Mon Sep 17 00:00:00 2001 From: david dali susanibar arce Date: Thu, 8 Sep 2022 23:38:04 -0500 Subject: [PATCH 5/8] Update documentation with last Java Dataset building --- docs/source/developers/java/building.rst | 109 +++++------------------ java/pom.xml | 21 +++-- 2 files changed, 36 insertions(+), 94 deletions(-) diff --git a/docs/source/developers/java/building.rst b/docs/source/developers/java/building.rst index 60de0f67b2c7..96506362b115 100644 --- a/docs/source/developers/java/building.rst +++ b/docs/source/developers/java/building.rst @@ -108,7 +108,7 @@ Maven $ export JAVA_HOME= $ java --version $ mvn clean generate-resources -Pgenerate-cdata-dylib_so -N - $ ls ../java-dist/lib + $ ls -latr ../java-dist/lib |__ libarrow_cdata_jni.dylib - To build other JNI libraries: @@ -118,7 +118,7 @@ Maven CMake ~~~~~ -- To build only the C Data Interface library: +- To build only the JNI C Data Interface library: .. code-block:: @@ -137,26 +137,7 @@ CMake $ ls -latr java-dist/lib |__ libarrow_cdata_jni.dylib -- To build only the Dataset library (needs Arrow Dataset module): - - .. code-block:: - - $ cd arrow - $ mkdir -p java-dist java-jni - $ cmake \ - -S java \ - -B java-jni \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=java-dist/lib \ - -DCMAKE_PREFIX_PATH=java-dist \ - -DARROW_JAVA_JNI_ENABLE_DEFAULT=OFF \ - -DARROW_JAVA_JNI_ENABLE_DATASET=ON \ - -DBUILD_TESTING=OFF - $ cmake --build java-jni --target install - $ ls -latr java-dist/lib - |__ libarrow_cdata_jni.dylib - -- To build other JNI libraries: +- To build JNI ORC & Gandiva libraries: .. code-block:: @@ -184,6 +165,7 @@ CMake -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 \ @@ -194,6 +176,25 @@ CMake |__ libarrow_orc_jni.dylib |__ libgandiva_jni.dylib +- To build only the Dataset library: + + .. code-block:: + + $ cd arrow + $ mkdir -p java-dist java-jni + $ cmake \ + -S java \ + -B java-jni \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=java-dist/lib \ + -DCMAKE_PREFIX_PATH=java-dist/lib \ + -DARROW_JAVA_JNI_ENABLE_DEFAULT=OFF \ + -DARROW_JAVA_JNI_ENABLE_DATASET=ON \ + -DBUILD_TESTING=OFF + $ cmake --build java-jni --target install + $ ls -latr java-dist/lib + |__ libarrow_dataset_jni.dylib + Archery ~~~~~~~ @@ -211,80 +212,16 @@ Archery Building Java JNI Modules ------------------------- -<<<<<<< HEAD -Maven -~~~~~ -======= -First, you need to build Apache Arrow C++: ->>>>>>> master - - To compile the JNI bindings, use the ``arrow-c-data`` Maven profile: -<<<<<<< HEAD .. code-block:: -======= - $ cd arrow - $ brew bundle --file=cpp/Brewfile - Homebrew Bundle complete! 25 Brewfile dependencies now installed. - $ brew uninstall aws-sdk-cpp - (We can't use aws-sdk-cpp installed by Homebrew because it has - an issue: https://github.com/aws/aws-sdk-cpp/issues/1809 ) - $ export JAVA_HOME= - $ mkdir -p java-dist cpp-jni - $ cmake \ - -S cpp \ - -B cpp-jni \ - -DARROW_CSV=ON \ - -DARROW_DATASET=ON \ - -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 \ - -DAWSSDK_SOURCE=BUNDLED \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_LIBDIR=lib \ - -DCMAKE_INSTALL_PREFIX=java-dist \ - -DCMAKE_UNITY_BUILD=ON \ - -Dre2_SOURCE=BUNDLED - $ cmake --build cpp-jni --target install - $ ls -latr ../java-dist/lib - |__ libarrow_orc_jni.dylib - |__ libgandiva_jni.dylib - |__ libplasma_java.dylib - -Then, you can build JNI libraries: - -.. code-block:: - - $ mkdir -p java-jni - $ cmake \ - -S java \ - -B java-jni \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=java-dist/lib \ - -DCMAKE_PREFIX_PATH=java-dist - $ cmake --build java-jni --target install - $ ls -latr ../java-dist/lib - |__ libarrow_cdata_jni.dylib - |__ libarrow_dataset_jni.dylib ->>>>>>> master $ cd arrow/java $ mvn -Darrow.c.jni.dist.dir=/java-dist/lib -Parrow-c-data clean install -<<<<<<< HEAD - To compile the JNI bindings for ORC / Gandiva / Dataset, use the ``arrow-jni`` Maven profile: .. code-block:: -======= ->>>>>>> master $ cd arrow/java $ mvn -Darrow.cpp.build.dir=/java-dist/lib -Parrow-jni clean install diff --git a/java/pom.xml b/java/pom.xml index 544d8aca9f6c..6019b641185b 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -908,7 +908,7 @@ generate-cdata-dylib_so - ../java-dist/lib + java-dist/lib @@ -925,7 +925,7 @@ mkdir - -p java-dist java-native-c + -p java-dist java-jni ../ @@ -938,11 +938,16 @@ cmake - -DCMAKE_BUILD_TYPE=release - -DCMAKE_INSTALL_PREFIX=${arrow.c.jni.dist.dir} - ../java + -S java \ + -B java-jni \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=${arrow.c.jni.dist.dir} \ + -DCMAKE_PREFIX_PATH=java-dist \ + -DARROW_JAVA_JNI_ENABLE_DEFAULT=OFF \ + -DARROW_JAVA_JNI_ENABLE_C=ON \ + -DBUILD_TESTING=OFF - ../java-native-c + ../ @@ -954,9 +959,9 @@ cmake - --build . --target install --config release + --build java-jni --target install --config release - ../java-native-c + ../ From af17cc7676fcbbc5088837dc6b88d9ae3781bc67 Mon Sep 17 00:00:00 2001 From: david dali susanibar arce Date: Mon, 12 Sep 2022 21:49:14 -0500 Subject: [PATCH 6/8] Update Dataset build base on lats CMake changes --- docs/source/developers/java/building.rst | 9 ++++----- java/pom.xml | 13 ++++++------- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/docs/source/developers/java/building.rst b/docs/source/developers/java/building.rst index 96506362b115..04aff29a0a5d 100644 --- a/docs/source/developers/java/building.rst +++ b/docs/source/developers/java/building.rst @@ -129,11 +129,10 @@ CMake -B java-jni \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=java-dist/lib \ - -DCMAKE_PREFIX_PATH=java-dist \ -DARROW_JAVA_JNI_ENABLE_DEFAULT=OFF \ -DARROW_JAVA_JNI_ENABLE_C=ON \ -DBUILD_TESTING=OFF - $ cmake --build java-jni --target install + $ cmake --build java-jni --target install --config Release $ ls -latr java-dist/lib |__ libarrow_cdata_jni.dylib @@ -171,7 +170,7 @@ CMake -DCMAKE_INSTALL_PREFIX=java-dist \ -DCMAKE_UNITY_BUILD=ON \ -DARROW_DEPENDENCY_SOURCE=BUNDLED - $ cmake --build cpp-jni --target install + $ cmake --build cpp-jni --target install --config Release $ ls -latr java-dist/lib |__ libarrow_orc_jni.dylib |__ libgandiva_jni.dylib @@ -187,11 +186,11 @@ CMake -B java-jni \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=java-dist/lib \ - -DCMAKE_PREFIX_PATH=java-dist/lib \ + -DCMAKE_PREFIX_PATH=$PWD/java-dist \ -DARROW_JAVA_JNI_ENABLE_DEFAULT=OFF \ -DARROW_JAVA_JNI_ENABLE_DATASET=ON \ -DBUILD_TESTING=OFF - $ cmake --build java-jni --target install + $ cmake --build java-jni --target install --config Release $ ls -latr java-dist/lib |__ libarrow_dataset_jni.dylib diff --git a/java/pom.xml b/java/pom.xml index 6019b641185b..c9641ec10c2c 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -938,13 +938,12 @@ cmake - -S java \ - -B java-jni \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=${arrow.c.jni.dist.dir} \ - -DCMAKE_PREFIX_PATH=java-dist \ - -DARROW_JAVA_JNI_ENABLE_DEFAULT=OFF \ - -DARROW_JAVA_JNI_ENABLE_C=ON \ + -S java + -B java-jni + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_INSTALL_PREFIX=${arrow.c.jni.dist.dir} + -DARROW_JAVA_JNI_ENABLE_DEFAULT=OFF + -DARROW_JAVA_JNI_ENABLE_C=ON -DBUILD_TESTING=OFF ../ From 5b16177bbdf40d5f6b6231ce8081958bc99461a2 Mon Sep 17 00:00:00 2001 From: david dali susanibar arce Date: Mon, 12 Sep 2022 21:54:04 -0500 Subject: [PATCH 7/8] Update Dataset build base on lats CMake changes --- java/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/pom.xml b/java/pom.xml index c9641ec10c2c..7320314d25a8 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -958,7 +958,7 @@ cmake - --build java-jni --target install --config release + --build java-jni --target install --config Release ../ From 9d838a62132697ff3315c3cc1da08fdce1896ac0 Mon Sep 17 00:00:00 2001 From: david dali susanibar arce Date: Tue, 13 Sep 2022 09:10:51 -0500 Subject: [PATCH 8/8] Sort CMake lists --- docs/source/developers/java/building.rst | 22 +++++++++++----------- java/pom.xml | 6 +++--- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/docs/source/developers/java/building.rst b/docs/source/developers/java/building.rst index 04aff29a0a5d..fd125e178db5 100644 --- a/docs/source/developers/java/building.rst +++ b/docs/source/developers/java/building.rst @@ -127,11 +127,11 @@ CMake $ cmake \ -S java \ -B java-jni \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=java-dist/lib \ - -DARROW_JAVA_JNI_ENABLE_DEFAULT=OFF \ -DARROW_JAVA_JNI_ENABLE_C=ON \ - -DBUILD_TESTING=OFF + -DARROW_JAVA_JNI_ENABLE_DEFAULT=OFF \ + -DBUILD_TESTING=OFF \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=java-dist/lib $ cmake --build java-jni --target install --config Release $ ls -latr java-dist/lib |__ libarrow_cdata_jni.dylib @@ -151,9 +151,10 @@ CMake $ cmake \ -S cpp \ -B cpp-jni \ - -DARROW_DEPENDENCY_USE_SHARED=OFF\ -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 \ @@ -168,8 +169,7 @@ CMake -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_LIBDIR=lib \ -DCMAKE_INSTALL_PREFIX=java-dist \ - -DCMAKE_UNITY_BUILD=ON \ - -DARROW_DEPENDENCY_SOURCE=BUNDLED + -DCMAKE_UNITY_BUILD=ON $ cmake --build cpp-jni --target install --config Release $ ls -latr java-dist/lib |__ libarrow_orc_jni.dylib @@ -184,12 +184,12 @@ CMake $ 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=java-dist/lib \ - -DCMAKE_PREFIX_PATH=$PWD/java-dist \ - -DARROW_JAVA_JNI_ENABLE_DEFAULT=OFF \ - -DARROW_JAVA_JNI_ENABLE_DATASET=ON \ - -DBUILD_TESTING=OFF + -DCMAKE_PREFIX_PATH=$PWD/java-dist $ cmake --build java-jni --target install --config Release $ ls -latr java-dist/lib |__ libarrow_dataset_jni.dylib diff --git a/java/pom.xml b/java/pom.xml index 7320314d25a8..7bdfa7c65634 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -940,11 +940,11 @@ -S java -B java-jni - -DCMAKE_BUILD_TYPE=Release - -DCMAKE_INSTALL_PREFIX=${arrow.c.jni.dist.dir} - -DARROW_JAVA_JNI_ENABLE_DEFAULT=OFF -DARROW_JAVA_JNI_ENABLE_C=ON + -DARROW_JAVA_JNI_ENABLE_DEFAULT=OFF -DBUILD_TESTING=OFF + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_INSTALL_PREFIX=${arrow.c.jni.dist.dir} ../