You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by ko...@apache.org on 2022/07/25 20:45:53 UTC
[arrow] branch master updated: ARROW-17080: [Java] Add a top-level CMakeLists.txt for JNI (#13618)
This is an automated email from the ASF dual-hosted git repository.
kou pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow.git
The following commit(s) were added to refs/heads/master by this push:
new ab8c92cf07 ARROW-17080: [Java] Add a top-level CMakeLists.txt for JNI (#13618)
ab8c92cf07 is described below
commit ab8c92cf0761fa0399860a7110038f9db8a76231
Author: Sutou Kouhei <ko...@clear-code.com>
AuthorDate: Tue Jul 26 05:45:46 2022 +0900
ARROW-17080: [Java] Add a top-level CMakeLists.txt for JNI (#13618)
Authored-by: Sutou Kouhei <ko...@clear-code.com>
Signed-off-by: Sutou Kouhei <ko...@clear-code.com>
---
ci/scripts/java_build.sh | 4 +-
.../{java_cdata_build.sh => java_jni_build.sh} | 13 ++---
ci/scripts/java_jni_macos_build.sh | 33 +++++++-----
ci/scripts/java_jni_manylinux_build.sh | 39 +++++++++-----
ci/scripts/java_test.sh | 4 +-
dev/tasks/java-jars/github.yml | 14 ++---
docker-compose.yml | 16 +++---
docs/source/developers/java/building.rst | 5 +-
java/.gitignore | 32 ++++++------
java/CMakeLists.txt | 59 ++++++++++++++++++++++
java/c/.gitignore | 1 -
java/c/CMakeLists.txt | 31 +++---------
12 files changed, 151 insertions(+), 100 deletions(-)
diff --git a/ci/scripts/java_build.sh b/ci/scripts/java_build.sh
index adfc021f04..b0362868b0 100755
--- a/ci/scripts/java_build.sh
+++ b/ci/scripts/java_build.sh
@@ -22,7 +22,7 @@ arrow_dir=${1}
source_dir=${1}/java
build_dir=${2}
cpp_build_dir=${build_dir}/cpp/${ARROW_BUILD_TYPE:-debug}
-cdata_dist_dir=${build_dir}/java/c
+java_jni_dist_dir=${3}
: ${BUILD_DOCS_JAVA:=OFF}
@@ -76,7 +76,7 @@ if [ "${ARROW_JAVA_SHADE_FLATBUFFERS}" == "ON" ]; then
fi
if [ "${ARROW_JAVA_CDATA}" = "ON" ]; then
- ${mvn} -Darrow.c.jni.dist.dir=${cdata_dist_dir} -Parrow-c-data install
+ ${mvn} -Darrow.c.jni.dist.dir=${java_jni_dist_dir} -Parrow-c-data install
fi
if [ "${ARROW_GANDIVA_JAVA}" = "ON" ]; then
diff --git a/ci/scripts/java_cdata_build.sh b/ci/scripts/java_jni_build.sh
similarity index 83%
rename from ci/scripts/java_cdata_build.sh
rename to ci/scripts/java_jni_build.sh
index 730c775d40..0f19e61413 100755
--- a/ci/scripts/java_cdata_build.sh
+++ b/ci/scripts/java_jni_build.sh
@@ -20,7 +20,7 @@
set -ex
arrow_dir=${1}
-build_dir=${2}
+build_dir=${2}/java_jni
# The directory where the final binaries will be stored when scripts finish
dist_dir=${3}
@@ -34,12 +34,9 @@ pushd "${build_dir}"
cmake \
-DCMAKE_BUILD_TYPE=${ARROW_BUILD_TYPE:-release} \
- -DCMAKE_INSTALL_LIBDIR=lib \
- -DCMAKE_INSTALL_PREFIX=${build_dir} \
- ${arrow_dir}/java/c
+ -DCMAKE_INSTALL_PREFIX=${dist_dir} \
+ -DCMAKE_UNITY_BUILD=${CMAKE_UNITY_BUILD:-OFF} \
+ ${JAVA_JNI_CMAKE_ARGS:-} \
+ ${arrow_dir}/java
cmake --build . --target install --config ${ARROW_BUILD_TYPE:-release}
popd
-
-echo "=== Copying libraries to the distribution folder ==="
-mkdir -p "${dist_dir}"
-cp -L ${build_dir}/lib/*arrow_cdata_jni.* ${dist_dir}
diff --git a/ci/scripts/java_jni_macos_build.sh b/ci/scripts/java_jni_macos_build.sh
index e9572c334b..3030f89834 100755
--- a/ci/scripts/java_jni_macos_build.sh
+++ b/ci/scripts/java_jni_macos_build.sh
@@ -46,11 +46,10 @@ export ARROW_TEST_DATA="${arrow_dir}/testing/data"
export PARQUET_TEST_DATA="${arrow_dir}/cpp/submodules/parquet-testing/data"
export AWS_EC2_METADATA_DISABLED=TRUE
-mkdir -p "${build_dir}"
-pushd "${build_dir}"
+mkdir -p "${build_dir}/cpp"
+pushd "${build_dir}/cpp"
cmake \
- -GNinja \
-DARROW_BOOST_USE_SHARED=OFF \
-DARROW_BROTLI_USE_SHARED=OFF \
-DARROW_BUILD_TESTS=${ARROW_BUILD_TESTS} \
@@ -58,9 +57,9 @@ cmake \
-DARROW_BZ2_USE_SHARED=OFF \
-DARROW_DATASET=${ARROW_DATASET} \
-DARROW_FILESYSTEM=${ARROW_FILESYSTEM} \
+ -DARROW_GANDIVA=${ARROW_GANDIVA} \
-DARROW_GANDIVA_JAVA=${ARROW_GANDIVA_JAVA} \
-DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
- -DARROW_GANDIVA=${ARROW_GANDIVA} \
-DARROW_GFLAGS_USE_SHARED=OFF \
-DARROW_GRPC_USE_SHARED=OFF \
-DARROW_JNI=ON \
@@ -68,8 +67,8 @@ cmake \
-DARROW_OPENSSL_USE_SHARED=OFF \
-DARROW_ORC=${ARROW_ORC} \
-DARROW_PARQUET=${ARROW_PARQUET} \
- -DARROW_PLASMA_JAVA_CLIENT=${ARROW_PLASMA_JAVA_CLIENT} \
-DARROW_PLASMA=${ARROW_PLASMA} \
+ -DARROW_PLASMA_JAVA_CLIENT=${ARROW_PLASMA_JAVA_CLIENT} \
-DARROW_PROTOBUF_USE_SHARED=OFF \
-DARROW_PYTHON=${ARROW_PYTHON} \
-DARROW_SNAPPY_USE_SHARED=OFF \
@@ -78,12 +77,13 @@ cmake \
-DARROW_ZSTD_USE_SHARED=OFF \
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} \
-DCMAKE_INSTALL_LIBDIR=lib \
- -DCMAKE_INSTALL_PREFIX=${build_dir} \
+ -DCMAKE_INSTALL_PREFIX=${build_dir}/cpp \
-DCMAKE_UNITY_BUILD=${CMAKE_UNITY_BUILD} \
-DPARQUET_BUILD_EXAMPLES=OFF \
-DPARQUET_BUILD_EXECUTABLES=OFF \
-DPARQUET_REQUIRE_ENCRYPTION=OFF \
-Dre2_SOURCE=BUNDLED \
+ -GNinja \
${arrow_dir}/cpp
cmake --build . --target install
@@ -93,24 +93,33 @@ fi
popd
+
+${arrow_dir}/ci/scripts/java_jni_build.sh \
+ ${arrow_dir} \
+ ${build_dir} \
+ ${dist_dir}
+
+
echo "=== Copying libraries to the distribution folder ==="
mkdir -p "${dist_dir}"
-cp -L ${build_dir}/lib/libgandiva_jni.dylib ${dist_dir}
-cp -L ${build_dir}/lib/libarrow_dataset_jni.dylib ${dist_dir}
-cp -L ${build_dir}/lib/libarrow_orc_jni.dylib ${dist_dir}
+cp -L ${build_dir}/cpp/lib/libgandiva_jni.dylib ${dist_dir}
+cp -L ${build_dir}/cpp/lib/libarrow_dataset_jni.dylib ${dist_dir}
+cp -L ${build_dir}/cpp/lib/libarrow_orc_jni.dylib ${dist_dir}
echo "=== Checking shared dependencies for libraries ==="
pushd ${dist_dir}
archery linking check-dependencies \
+ --allow libSystem \
+ --allow libarrow_cdata_jni \
--allow libarrow_dataset_jni \
--allow libarrow_orc_jni \
--allow libc++ \
--allow libgandiva_jni \
--allow libncurses \
- --allow libSystem \
--allow libz \
- libgandiva_jni.dylib \
+ libarrow_cdata_jni.dylib \
libarrow_dataset_jni.dylib \
- libarrow_orc_jni.dylib
+ libarrow_orc_jni.dylib \
+ libgandiva_jni.dylib
popd
diff --git a/ci/scripts/java_jni_manylinux_build.sh b/ci/scripts/java_jni_manylinux_build.sh
index 105d314a66..81949bd5be 100755
--- a/ci/scripts/java_jni_manylinux_build.sh
+++ b/ci/scripts/java_jni_manylinux_build.sh
@@ -55,8 +55,8 @@ export ARROW_TEST_DATA="${arrow_dir}/testing/data"
export PARQUET_TEST_DATA="${arrow_dir}/cpp/submodules/parquet-testing/data"
export AWS_EC2_METADATA_DISABLED=TRUE
-mkdir -p "${build_dir}"
-pushd "${build_dir}"
+mkdir -p "${build_dir}/cpp"
+pushd "${build_dir}/cpp"
cmake \
-DARROW_BOOST_USE_SHARED=OFF \
@@ -89,7 +89,7 @@ cmake \
-DARROW_ZSTD_USE_SHARED=OFF \
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} \
-DCMAKE_INSTALL_LIBDIR=lib \
- -DCMAKE_INSTALL_PREFIX=${build_dir} \
+ -DCMAKE_INSTALL_PREFIX=${build_dir}/cpp \
-DCMAKE_UNITY_BUILD=${CMAKE_UNITY_BUILD} \
-DORC_SOURCE=BUNDLED \
-DORC_PROTOBUF_EXECUTABLE=${VCPKG_ROOT}/installed/${VCPKG_TARGET_TRIPLET}/tools/protobuf/protoc \
@@ -105,20 +105,30 @@ cmake \
ninja install
if [ $ARROW_BUILD_TESTS = "ON" ]; then
- ctest \
- --label-regex unittest \
- --output-on-failure \
- --parallel $(nproc) \
- --timeout 300
+ ctest \
+ --label-regex unittest \
+ --output-on-failure \
+ --parallel $(nproc) \
+ --timeout 300
fi
popd
+
+JAVA_JNI_CMAKE_ARGS=""
+JAVA_JNI_CMAKE_ARGS="${JAVA_JNI_CMAKE_ARGS} -DVCPKG_MANIFEST_MODE=OFF"
+JAVA_JNI_CMAKE_ARGS="${JAVA_JNI_CMAKE_ARGS} -DVCPKG_TARGET_TRIPLET=${VCPKG_TARGET_TRIPLET}"
+export JAVA_JNI_CMAKE_ARGS
+${arrow_dir}/ci/scripts/java_jni_build.sh \
+ ${arrow_dir} \
+ ${build_dir} \
+ ${dist_dir}
+
+
echo "=== Copying libraries to the distribution folder ==="
-mkdir -p "${dist_dir}"
-cp -L ${build_dir}/lib/libgandiva_jni.so ${dist_dir}
-cp -L ${build_dir}/lib/libarrow_dataset_jni.so ${dist_dir}
-cp -L ${build_dir}/lib/libarrow_orc_jni.so ${dist_dir}
+cp -L ${build_dir}/cpp/lib/libgandiva_jni.so ${dist_dir}
+cp -L ${build_dir}/cpp/lib/libarrow_dataset_jni.so ${dist_dir}
+cp -L ${build_dir}/cpp/lib/libarrow_orc_jni.so ${dist_dir}
echo "=== Checking shared dependencies for libraries ==="
@@ -134,7 +144,8 @@ archery linking check-dependencies \
--allow libstdc++ \
--allow libz \
--allow linux-vdso \
- libgandiva_jni.so \
+ libarrow_cdata_jni.so \
libarrow_dataset_jni.so \
- libarrow_orc_jni.so
+ libarrow_orc_jni.so \
+ libgandiva_jni.so
popd
diff --git a/ci/scripts/java_test.sh b/ci/scripts/java_test.sh
index 0e755bcafb..83ef26fdb1 100755
--- a/ci/scripts/java_test.sh
+++ b/ci/scripts/java_test.sh
@@ -21,7 +21,7 @@ set -ex
arrow_dir=${1}
source_dir=${1}/java
cpp_build_dir=${2}/cpp/${ARROW_BUILD_TYPE:-debug}
-cdata_dist_dir=${2}/java/c
+java_jni_dist_dir=${3}
# For JNI and Plasma tests
export LD_LIBRARY_PATH=${ARROW_HOME}/lib:${LD_LIBRARY_PATH}
@@ -40,7 +40,7 @@ if [ "${ARROW_JNI}" = "ON" ]; then
fi
if [ "${ARROW_JAVA_CDATA}" = "ON" ]; then
- ${mvn} test -Parrow-c-data -pl c -Darrow.c.jni.dist.dir=${cdata_dist_dir}
+ ${mvn} test -Parrow-c-data -pl c -Darrow.c.jni.dist.dir=${java_jni_dist_dir}
fi
if [ "${ARROW_PLASMA}" = "ON" ]; then
diff --git a/dev/tasks/java-jars/github.yml b/dev/tasks/java-jars/github.yml
index ba3179535b..9f13034490 100644
--- a/dev/tasks/java-jars/github.yml
+++ b/dev/tasks/java-jars/github.yml
@@ -29,7 +29,7 @@ jobs:
{{ macros.github_install_archery()|indent }}
- name: Build C++ Libs
run: archery docker run java-jni-manylinux-2014
- - name: Compress into single artifact
+ - name: Compress into single artifact to keep directory structure
run: tar -cvzf arrow-shared-libs-linux.tar.gz arrow/java-dist/
- name: Upload Artifacts
uses: actions/upload-artifact@v2
@@ -55,13 +55,6 @@ jobs:
run: |
brew install --overwrite git
brew bundle --file=arrow/cpp/Brewfile
- - name: Build C Data Interface lib
- run: |
- set -e
- arrow/ci/scripts/java_cdata_build.sh \
- $GITHUB_WORKSPACE/arrow \
- $GITHUB_WORKSPACE/arrow/java-native-build \
- $GITHUB_WORKSPACE/arrow/java-dist
- name: Build C++ Libs
run: |
set -e
@@ -69,7 +62,7 @@ jobs:
$GITHUB_WORKSPACE/arrow \
$GITHUB_WORKSPACE/arrow/cpp-build \
$GITHUB_WORKSPACE/arrow/java-dist
- - name: Compress into single artifact
+ - name: Compress into single artifact to keep directory structure
run: tar -cvzf arrow-shared-libs-macos.tar.gz arrow/java-dist/
- name: Upload Artifacts
uses: actions/upload-artifact@v2
@@ -93,10 +86,11 @@ jobs:
name: macos-shared-lib
- name: Descompress artifacts
run: |
- tar -xvzf arrow-shared-libs-macos.tar.gz
tar -xvzf arrow-shared-libs-linux.tar.gz
+ tar -xvzf arrow-shared-libs-macos.tar.gz
- name: Test that Shared Libraries Exist
run: |
+ set -x
test -f arrow/java-dist/libarrow_cdata_jni.dylib
test -f arrow/java-dist/libarrow_dataset_jni.dylib
test -f arrow/java-dist/libgandiva_jni.dylib
diff --git a/docker-compose.yml b/docker-compose.yml
index 7902aebe2e..c476797f22 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -964,7 +964,6 @@ services:
- ${DOCKER_VOLUME_PREFIX}python-wheel-manylinux2014-ccache:/ccache:delegated
command:
["pip install -e /arrow/dev/archery &&
- /arrow/ci/scripts/java_cdata_build.sh /arrow /java-native-build /arrow/java-dist &&
/arrow/ci/scripts/java_jni_manylinux_build.sh /arrow /build /arrow/java-dist"]
############################## Integration #################################
@@ -1117,6 +1116,9 @@ services:
ARROW_ORC: "OFF"
ARROW_PARQUET: "OFF"
ARROW_PLASMA: "OFF"
+ JAVA_JNI_CMAKE_ARGS: >-
+ -DARROW_JAVA_JNI_ENABLE_DEFAULT=OFF
+ -DARROW_JAVA_JNI_ENABLE_C=ON
volumes:
- .:/arrow:delegated
- ${DOCKER_VOLUME_PREFIX}maven-cache:/root/.m2:delegated
@@ -1124,9 +1126,9 @@ services:
command:
[ "/arrow/ci/scripts/cpp_build.sh /arrow /build &&
/arrow/ci/scripts/python_build.sh /arrow /build &&
- /arrow/ci/scripts/java_cdata_build.sh /arrow /build/java/c/build /build/java/c &&
- /arrow/ci/scripts/java_build.sh /arrow /build &&
- /arrow/ci/scripts/java_cdata_integration.sh /arrow" ]
+ /arrow/ci/scripts/java_jni_build.sh /arrow /build /tmp/dist/java &&
+ /arrow/ci/scripts/java_build.sh /arrow /build /tmp/dist/java &&
+ /arrow/ci/scripts/java_cdata_integration.sh /arrow /tmp/dist/java" ]
conda-python-turbodbc:
# Possible $TURBODBC parameters:
@@ -1524,9 +1526,9 @@ services:
command:
/bin/bash -c "
/arrow/ci/scripts/cpp_build.sh /arrow /build &&
- /arrow/ci/scripts/java_cdata_build.sh /arrow /build/java/c/build /build/java/c &&
- /arrow/ci/scripts/java_build.sh /arrow /build &&
- /arrow/ci/scripts/java_test.sh /arrow /build"
+ /arrow/ci/scripts/java_jni_build.sh /arrow /build /tmp/java_dist &&
+ /arrow/ci/scripts/java_build.sh /arrow /build /tmp/java_dist &&
+ /arrow/ci/scripts/java_test.sh /arrow /build /tmp/java_dist"
oracle-java:
# Usage:
diff --git a/docs/source/developers/java/building.rst b/docs/source/developers/java/building.rst
index b7b9cb9213..2824649253 100644
--- a/docs/source/developers/java/building.rst
+++ b/docs/source/developers/java/building.rst
@@ -92,9 +92,8 @@ To build only the C Data Interface library:
$ cd java-native-c
$ cmake \
-DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_INSTALL_LIBDIR=lib \
- -DCMAKE_INSTALL_PREFIX=../java-dist \
- ../java/c
+ -DCMAKE_INSTALL_PREFIX=../java-dist/lib \
+ ../java
$ cmake --build . --target install
$ ls -latr ../java-dist/lib
|__ libarrow_cdata_jni.dylib
diff --git a/java/.gitignore b/java/.gitignore
index 302c528e4d..376e06946d 100644
--- a/java/.gitignore
+++ b/java/.gitignore
@@ -1,25 +1,25 @@
-.project
+*.DS_Store
+*.iml
+*.lck
+*.log
+*.patch
+*~
.buildpath
-.classpath
.checkstyle
+.classpath
.factorypath
-.settings/
.idea/
-TAGS
-*.log
-*.lck
-*.iml
-target/
-*.DS_Store
-*.patch
-*~
-arrow-git.properties
-contrib/native/client/build/
-contrib/native/client/build/*
+.project
+.settings/
+/build/
+/*-build/
CMakeCache.txt
-CMakeFiles
+CMakeFiles/
Makefile
+TAGS
+arrow-git.properties
cmake_install.cmake
install_manifest.txt
+target/
?/
-!c/
+!/c/
diff --git a/java/CMakeLists.txt b/java/CMakeLists.txt
new file mode 100644
index 0000000000..43818e7a9f
--- /dev/null
+++ b/java/CMakeLists.txt
@@ -0,0 +1,59 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+cmake_minimum_required(VERSION 3.11)
+message(STATUS "Building using CMake version: ${CMAKE_VERSION}")
+
+project(arrow-java-jni)
+
+if("${CMAKE_CXX_STANDARD}" STREQUAL "")
+ set(CMAKE_CXX_STANDARD 11)
+endif()
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+
+# Components
+option(ARROW_JAVA_JNI_ENABLE_DEFAULT "Whether enable components by default or not" ON)
+option(ARROW_JAVA_JNI_ENABLE_C "Enable C data interface" ${ARROW_JAVA_JNI_ENABLE_DEFAULT})
+
+# ccache
+option(ARROW_JAVA_JNI_USE_CCACHE "Use ccache when compiling (if available)" ON)
+if(ARROW_USE_CCACHE
+ AND NOT CMAKE_C_COMPILER_LAUNCHER
+ AND NOT CMAKE_CXX_COMPILER_LAUNCHER)
+ find_program(CCACHE ccache)
+ if(CCACHE)
+ message(STATUS "Using ccache: ${CCACHE}")
+ set(CMAKE_C_COMPILER_LAUNCHER ${CCACHE})
+ set(CMAKE_CXX_COMPILER_LAUNCHER ${CCACHE})
+ # ARROW-3985: let ccache preserve C++ comments, because some of them may be
+ # meaningful to the compiler
+ set(ENV{CCACHE_COMMENTS} "1")
+ endif()
+endif()
+
+# Build
+find_package(Java REQUIRED)
+find_package(JNI REQUIRED)
+
+include(UseJava)
+
+add_library(jni INTERFACE IMPORTED)
+set_target_properties(jni PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${JNI_INCLUDE_DIRS}")
+
+if(ARROW_JAVA_JNI_ENABLE_C)
+ add_subdirectory(c)
+endif()
diff --git a/java/c/.gitignore b/java/c/.gitignore
deleted file mode 100644
index e390b124a6..0000000000
--- a/java/c/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-build/**
\ No newline at end of file
diff --git a/java/c/CMakeLists.txt b/java/c/CMakeLists.txt
index 05938508de..f3b3117eac 100644
--- a/java/c/CMakeLists.txt
+++ b/java/c/CMakeLists.txt
@@ -15,38 +15,19 @@
# specific language governing permissions and limitations
# under the License.
-#
-# arrow_cdata_java
-#
-
-cmake_minimum_required(VERSION 3.11)
-message(STATUS "Building using CMake version: ${CMAKE_VERSION}")
-project(arrow_cdata_java)
-
-# Find java/jni
-include(UseJava)
-
-find_package(Java REQUIRED)
-find_package(JNI REQUIRED)
-
-set(JNI_HEADERS_DIR "${CMAKE_CURRENT_BINARY_DIR}/generated")
-
include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}
${JNI_INCLUDE_DIRS} ${JNI_HEADERS_DIR})
-add_jar(${PROJECT_NAME}
+add_jar(arrow_cdata_jar
src/main/java/org/apache/arrow/c/jni/CDataJniException.java
src/main/java/org/apache/arrow/c/jni/JniLoader.java
src/main/java/org/apache/arrow/c/jni/JniWrapper.java
src/main/java/org/apache/arrow/c/jni/PrivateData.java
GENERATE_NATIVE_HEADERS
- arrow_cdata_java-native
- DESTINATION
- ${JNI_HEADERS_DIR})
+ arrow_cdata_jni_headers)
-set(SOURCES src/main/cpp/jni_wrapper.cc)
-add_library(arrow_cdata_jni SHARED ${SOURCES})
-target_link_libraries(arrow_cdata_jni ${JAVA_JVM_LIBRARY})
-add_dependencies(arrow_cdata_jni ${PROJECT_NAME})
+set(ARROW_CDATA_JNI_SOURCES src/main/cpp/jni_wrapper.cc)
+add_library(arrow_cdata_jni SHARED ${ARROW_CDATA_JNI_SOURCES})
+target_link_libraries(arrow_cdata_jni arrow_cdata_jni_headers jni)
-install(TARGETS arrow_cdata_jni DESTINATION ${CMAKE_INSTALL_LIBDIR})
+install(TARGETS arrow_cdata_jni DESTINATION ${CMAKE_INSTALL_PREFIX})