chore: import upstream snapshot with attribution
This commit is contained in:
Executable
+66
@@ -0,0 +1,66 @@
|
||||
#!/usr/bin/env bash
|
||||
# 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.
|
||||
|
||||
# Build the TVM JVM package (tvm4j) using Maven with platform detection.
|
||||
# Usage: task_jvm_build.sh [goal] [mvn-extra-args...]
|
||||
#
|
||||
# The first positional argument sets the Maven goal (default: "clean package").
|
||||
# Extra arguments after the goal are passed through to mvn, e.g.:
|
||||
# task_jvm_build.sh install
|
||||
# task_jvm_build.sh "clean package" -DskipTests=false -Dtest.tempdir=/tmp/foo
|
||||
|
||||
set -euxo pipefail
|
||||
|
||||
GOAL="${1:-clean package}"
|
||||
if [ "$#" -gt 0 ]; then
|
||||
shift
|
||||
fi
|
||||
|
||||
ROOTDIR="$(cd "$(dirname "$0")/../.." && pwd)"
|
||||
TVM_BUILD_PATH="${TVM_BUILD_PATH:-${ROOTDIR}/build}"
|
||||
TVM_BUILD_PATH="$(realpath "${TVM_BUILD_PATH}")"
|
||||
|
||||
DLPACK_PATH="${DLPACK_PATH:-${ROOTDIR}/3rdparty/tvm-ffi/3rdparty/dlpack}"
|
||||
|
||||
INCLUDE_FLAGS="-I${ROOTDIR}/include -I${DLPACK_PATH}/include"
|
||||
PKG_CFLAGS="-Wall -O3 ${INCLUDE_FLAGS} -fPIC"
|
||||
PKG_LDFLAGS=""
|
||||
|
||||
if [ "$(uname -s)" = "Darwin" ]; then
|
||||
JVM_PKG_PROFILE="osx-x86_64"
|
||||
SHARED_LIBRARY_SUFFIX="dylib"
|
||||
elif [ "${OS:-}" = "Windows_NT" ]; then
|
||||
JVM_PKG_PROFILE="windows"
|
||||
SHARED_LIBRARY_SUFFIX="dll"
|
||||
else
|
||||
JVM_PKG_PROFILE="linux-x86_64"
|
||||
SHARED_LIBRARY_SUFFIX="so"
|
||||
fi
|
||||
|
||||
JVM_TEST_ARGS="${JVM_TEST_ARGS:--DskipTests -Dcheckstyle.skip=true}"
|
||||
|
||||
cd "${ROOTDIR}/jvm"
|
||||
# shellcheck disable=SC2086
|
||||
mvn ${GOAL} \
|
||||
"-P${JVM_PKG_PROFILE}" \
|
||||
"-Dcxx=${CXX:-g++}" \
|
||||
"-Dcflags=${PKG_CFLAGS}" \
|
||||
"-Dldflags=${PKG_LDFLAGS}" \
|
||||
"-Dcurrent_libdir=${TVM_BUILD_PATH}" \
|
||||
${JVM_TEST_ARGS} \
|
||||
"$@"
|
||||
Reference in New Issue
Block a user