Skip to content

Commit 13957f7

Browse files
committed
Update document
1 parent e53b824 commit 13957f7

3 files changed

Lines changed: 40 additions & 52 deletions

File tree

ci/scripts/java_jni_macos_build.sh

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ install_dir=${build_dir}/cpp-install
3939
: ${ARROW_PARQUET:=ON}
4040
: ${ARROW_PLASMA_JAVA_CLIENT:=ON}
4141
: ${ARROW_PLASMA:=ON}
42-
: ${ARROW_PYTHON:=OFF}
4342
: ${ARROW_S3:=ON}
4443
: ${ARROW_USE_CCACHE:=OFF}
4544
: ${CMAKE_BUILD_TYPE:=Release}
@@ -73,7 +72,6 @@ cmake \
7372
-DARROW_PARQUET=${ARROW_PARQUET} \
7473
-DARROW_PLASMA=${ARROW_PLASMA} \
7574
-DARROW_PLASMA_JAVA_CLIENT=${ARROW_PLASMA_JAVA_CLIENT} \
76-
-DARROW_PYTHON=${ARROW_PYTHON} \
7775
-DARROW_S3=${ARROW_S3} \
7876
-DARROW_USE_CCACHE=${ARROW_USE_CCACHE} \
7977
-DAWSSDK_SOURCE=BUNDLED \

ci/scripts/java_jni_manylinux_build.sh

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ devtoolset_include_cpp="/opt/rh/devtoolset-${devtoolset_version}/root/usr/includ
4343
: ${ARROW_PARQUET:=ON}
4444
: ${ARROW_PLASMA:=ON}
4545
: ${ARROW_PLASMA_JAVA_CLIENT:=ON}
46-
: ${ARROW_PYTHON:=OFF}
4746
: ${ARROW_S3:=ON}
4847
: ${ARROW_USE_CCACHE:=OFF}
4948
: ${CMAKE_BUILD_TYPE:=release}
@@ -83,7 +82,6 @@ cmake \
8382
-DARROW_PARQUET=${ARROW_PARQUET} \
8483
-DARROW_PLASMA_JAVA_CLIENT=${ARROW_PLASMA_JAVA_CLIENT} \
8584
-DARROW_PLASMA=${ARROW_PLASMA} \
86-
-DARROW_PYTHON=${ARROW_PYTHON} \
8785
-DARROW_RPATH_ORIGIN=${ARROW_RPATH_ORIGIN} \
8886
-DARROW_S3=${ARROW_S3} \
8987
-DARROW_USE_CCACHE=${ARROW_USE_CCACHE} \

docs/source/developers/java/building.rst

Lines changed: 40 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -75,78 +75,70 @@ We can build these manually or we can use `Archery`_ to build them using a Docke
7575
|__ libarrow_dataset_jni.so
7676
|__ libarrow_orc_jni.so
7777
|__ libgandiva_jni.so
78+
|__ libplasma_java.so
7879
7980
Building JNI Libraries on MacOS
8081
-------------------------------
8182
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 <https://www.azul.com/downloads/?os=macos&architecture=arm-64-bit&package=jdk>`_.
8283

83-
To build only the C Data Interface library:
84+
First, you need to build Apache Arrow C++:
8485

8586
.. code-block::
8687
8788
$ cd arrow
8889
$ brew bundle --file=cpp/Brewfile
8990
Homebrew Bundle complete! 25 Brewfile dependencies now installed.
91+
$ brew uninstall aws-sdk-cpp
92+
(We can't use aws-sdk-cpp installed by Homebrew because it has
93+
an issue: https://github.com/aws/aws-sdk-cpp/issues/1809 )
9094
$ export JAVA_HOME=<absolute path to your java home>
91-
$ mkdir -p java-dist java-native-c
92-
$ cd java-native-c
95+
$ mkdir -p java-dist cpp-jni
9396
$ cmake \
94-
-DCMAKE_BUILD_TYPE=Release \
95-
-DCMAKE_INSTALL_PREFIX=../java-dist/lib \
96-
../java
97-
$ cmake --build . --target install
98-
$ ls -latr ../java-dist/lib
99-
|__ libarrow_cdata_jni.dylib
100-
101-
To build other JNI libraries:
102-
103-
.. code-block::
104-
105-
$ cd arrow
106-
$ brew bundle --file=cpp/Brewfile
107-
Homebrew Bundle complete! 25 Brewfile dependencies now installed.
108-
$ export JAVA_HOME=<absolute path to your java home>
109-
$ mkdir -p java-dist java-native-cpp
110-
$ cd java-native-cpp
111-
$ cmake \
112-
-DARROW_BOOST_USE_SHARED=OFF \
113-
-DARROW_BROTLI_USE_SHARED=OFF \
114-
-DARROW_BZ2_USE_SHARED=OFF \
115-
-DARROW_GFLAGS_USE_SHARED=OFF \
116-
-DARROW_GRPC_USE_SHARED=OFF \
117-
-DARROW_LZ4_USE_SHARED=OFF \
118-
-DARROW_OPENSSL_USE_SHARED=OFF \
119-
-DARROW_PROTOBUF_USE_SHARED=OFF \
120-
-DARROW_SNAPPY_USE_SHARED=OFF \
121-
-DARROW_THRIFT_USE_SHARED=OFF \
122-
-DARROW_UTF8PROC_USE_SHARED=OFF \
123-
-DARROW_ZSTD_USE_SHARED=OFF \
124-
-DARROW_JNI=ON \
125-
-DARROW_PARQUET=ON \
126-
-DARROW_FILESYSTEM=ON \
97+
-S cpp \
98+
-B cpp-jni \
99+
-DARROW_CSV=ON \
127100
-DARROW_DATASET=ON \
101+
-DARROW_DEPENDENCY_USE_SHARED=OFF \
102+
-DARROW_FILESYSTEM=ON \
103+
-DARROW_GANDIVA=ON \
128104
-DARROW_GANDIVA_JAVA=ON \
129105
-DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
130-
-DARROW_GANDIVA=ON \
106+
-DARROW_JNI=ON \
131107
-DARROW_ORC=ON \
132-
-DARROW_PLASMA_JAVA_CLIENT=ON \
108+
-DARROW_PARQUET=ON \
133109
-DARROW_PLASMA=ON \
110+
-DARROW_PLASMA_JAVA_CLIENT=ON \
111+
-DARROW_S3=ON \
112+
-DAWSSDK_SOURCE=BUNDLED \
134113
-DCMAKE_BUILD_TYPE=Release \
135114
-DCMAKE_INSTALL_LIBDIR=lib \
136-
-DCMAKE_INSTALL_PREFIX=../java-dist \
115+
-DCMAKE_INSTALL_PREFIX=java-dist \
137116
-DCMAKE_UNITY_BUILD=ON \
138-
-Dre2_SOURCE=BUNDLED \
139-
-DBoost_SOURCE=BUNDLED \
140-
-Dutf8proc_SOURCE=BUNDLED \
141-
-DSnappy_SOURCE=BUNDLED \
142-
-DORC_SOURCE=BUNDLED \
143-
-DZLIB_SOURCE=BUNDLED \
144-
../cpp
145-
$ cmake --build . --target install
117+
-Dre2_SOURCE=BUNDLED
118+
$ cmake --build cpp-jni --target install
146119
$ ls -latr ../java-dist/lib
147-
|__ libarrow_dataset_jni.dylib
148120
|__ libarrow_orc_jni.dylib
149121
|__ libgandiva_jni.dylib
122+
|__ libplasma_java.dylib
123+
124+
Then, you can build JNI libraries:
125+
126+
.. code-block::
127+
128+
$ mkdir -p java-jni
129+
$ cmake \
130+
-S java \
131+
-B java-jni \
132+
-DCMAKE_BUILD_TYPE=Release \
133+
-DCMAKE_INSTALL_PREFIX=java-dist/lib \
134+
-DCMAKE_PREFIX_PATH=java-dist
135+
$ cmake --build java-jni --target install
136+
$ ls -latr ../java-dist/lib
137+
|__ libarrow_cdata_jni.dylib
138+
|__ libarrow_dataset_jni.dylib
139+
140+
To build other JNI libraries:
141+
150142

151143
Building Arrow JNI Modules
152144
--------------------------

0 commit comments

Comments
 (0)