1#!/usr/bin/env bash
2
3# Sets the LD_LIBRARY_PATH required for running ITs dependent on libjvm.
4# See CONTRIBUTING.md for details.
5
6JAVA_HOME="${JAVA_HOME:-$(java -XshowSettings:properties -version \
7    2>&1 > /dev/null |\
8    grep 'java.home' |\
9    awk '{print $3}')}"
10
11if [[ "$(uname -s)" == "Darwin" ]]; then
12    LIB_NAME="libjli"
13else
14    LIB_NAME="libjvm"
15fi
16
17# As JDK 8 and 9+ use different relative paths for libjvm, find the library:
18LIBJVM_PATH="$(find "${JAVA_HOME}" -type f -name "${LIB_NAME}.*" -print0 -quit | xargs -0 -n1 dirname)"
19
20export LD_LIBRARY_PATH="${LIBJVM_PATH}"
21
22# on macOS, cargo use DYLD_FALLBACK_LIBRARY_PATH to locate dynamic libraries.
23# See https://doc.rust-lang.org/cargo/reference/environment-variables.html#dynamic-library-paths
24export DYLD_FALLBACK_LIBRARY_PATH="${LIBJVM_PATH}":$DYLD_FALLBACK_LIBRARY_PATH
25