A little more defensive shell programming.
This commit is contained in:
committed by
alexander-gorshenev
parent
f9d0d6d563
commit
977ae063f8
+8
-7
@@ -22,6 +22,7 @@ fi
|
|||||||
[ -n "$JAVACMD" ] || JAVACMD=java
|
[ -n "$JAVACMD" ] || JAVACMD=java
|
||||||
|
|
||||||
declare -a java_args
|
declare -a java_args
|
||||||
|
declare -a java_opts
|
||||||
declare -a interop_args
|
declare -a interop_args
|
||||||
|
|
||||||
OUTPUT_FILE_NAME=nativelib
|
OUTPUT_FILE_NAME=nativelib
|
||||||
@@ -64,10 +65,10 @@ findHome() {
|
|||||||
KONAN_HOME="$(findHome)"
|
KONAN_HOME="$(findHome)"
|
||||||
|
|
||||||
NATIVE_LIB="${KONAN_HOME}/konan/nativelib"
|
NATIVE_LIB="${KONAN_HOME}/konan/nativelib"
|
||||||
JAVA_OPTS="-ea \
|
java_opts=(-ea \
|
||||||
-Djava.library.path=${NATIVE_LIB} \
|
"-Djava.library.path=${NATIVE_LIB}" \
|
||||||
-Dkonan.home=${KONAN_HOME} \
|
"-Dkonan.home=${KONAN_HOME}" \
|
||||||
-Dfile.encoding=UTF-8"
|
-Dfile.encoding=UTF-8)
|
||||||
|
|
||||||
STUB_GENERATOR_JAR="${KONAN_HOME}/konan/lib/StubGenerator.jar"
|
STUB_GENERATOR_JAR="${KONAN_HOME}/konan/lib/StubGenerator.jar"
|
||||||
KOTLIN_JAR="${KONAN_HOME}/konan/lib/kotlin-compiler.jar"
|
KOTLIN_JAR="${KONAN_HOME}/konan/lib/kotlin-compiler.jar"
|
||||||
@@ -87,8 +88,8 @@ CSTUBSNAME=cstubs
|
|||||||
CSTUBSNAME_ARG="-cstubsname $CSTUBSNAME"
|
CSTUBSNAME_ARG="-cstubsname $CSTUBSNAME"
|
||||||
|
|
||||||
LIBCLANG_DISABLE_CRASH_RECOVERY=1 \
|
LIBCLANG_DISABLE_CRASH_RECOVERY=1 \
|
||||||
$JAVACMD $JAVA_OPTS ${java_args[@]} \
|
$JAVACMD "${java_opts[@]}" "${java_args[@]}" \
|
||||||
-cp $INTEROP_CLASSPATH \
|
-cp "$INTEROP_CLASSPATH" \
|
||||||
$INTEROP_TOOL \
|
$INTEROP_TOOL \
|
||||||
$GENERATED_ARG $NATIVES_ARG $CSTUBSNAME_ARG \
|
$GENERATED_ARG $NATIVES_ARG $CSTUBSNAME_ARG \
|
||||||
$FLAVOR_ARG -target $TARGET "${interop_args[@]}" \
|
$FLAVOR_ARG -target $TARGET "${interop_args[@]}" \
|
||||||
@@ -97,5 +98,5 @@ $JAVACMD $JAVA_OPTS ${java_args[@]} \
|
|||||||
# Stubs may be rather big, so we may need more heap space.
|
# Stubs may be rather big, so we may need more heap space.
|
||||||
XMX_ARG=-J-Xmx3G
|
XMX_ARG=-J-Xmx3G
|
||||||
|
|
||||||
$KONAN_HOME/bin/konanc $XMX_ARG "$GENERATED_DIR" -produce library -nativelibrary "$NATIVES_DIR/$CSTUBSNAME.bc" \
|
"${KONAN_HOME}/bin/konanc" $XMX_ARG "$GENERATED_DIR" -produce library -nativelibrary "$NATIVES_DIR/$CSTUBSNAME.bc" \
|
||||||
-o "$OUTPUT_FILE_NAME" -target "$TARGET"
|
-o "$OUTPUT_FILE_NAME" -target "$TARGET"
|
||||||
|
|||||||
+7
-6
@@ -22,6 +22,7 @@ fi
|
|||||||
[ -n "$JAVACMD" ] || JAVACMD=java
|
[ -n "$JAVACMD" ] || JAVACMD=java
|
||||||
|
|
||||||
declare -a java_args
|
declare -a java_args
|
||||||
|
declare -a java_opts
|
||||||
declare -a konan_args
|
declare -a konan_args
|
||||||
|
|
||||||
while [ $# -gt 0 ]; do
|
while [ $# -gt 0 ]; do
|
||||||
@@ -54,9 +55,9 @@ done
|
|||||||
findHome() {
|
findHome() {
|
||||||
local source="${BASH_SOURCE[0]}"
|
local source="${BASH_SOURCE[0]}"
|
||||||
while [ -h "$source" ] ; do
|
while [ -h "$source" ] ; do
|
||||||
local linked="$(readlink "$source")"
|
local linked="$(readlink "$source")"
|
||||||
local dir="$(cd -P $(dirname "$source") && cd -P $(dirname "$linked") && pwd)"
|
local dir="$(cd -P $(dirname "$source") && cd -P $(dirname "$linked") && pwd)"
|
||||||
source="$dir/$(basename "$linked")"
|
source="$dir/$(basename "$linked")"
|
||||||
done
|
done
|
||||||
(cd -P "$(dirname "$source")/.." && pwd)
|
(cd -P "$(dirname "$source")/.." && pwd)
|
||||||
}
|
}
|
||||||
@@ -70,13 +71,13 @@ HELPERS_JAR="${KONAN_HOME}/konan/lib/helpers.jar"
|
|||||||
NATIVE_LIB="${KONAN_HOME}/konan/nativelib"
|
NATIVE_LIB="${KONAN_HOME}/konan/nativelib"
|
||||||
KONAN_CLASSPATH="$KOTLIN_JAR:$INTEROP_JAR:$KONAN_JAR:$HELPERS_JAR"
|
KONAN_CLASSPATH="$KOTLIN_JAR:$INTEROP_JAR:$KONAN_JAR:$HELPERS_JAR"
|
||||||
KONAN_COMPILER=org.jetbrains.kotlin.cli.bc.K2NativeKt
|
KONAN_COMPILER=org.jetbrains.kotlin.cli.bc.K2NativeKt
|
||||||
JAVA_OPTS="-ea -Dfile.encoding=UTF-8"
|
java_opts=(-ea -Dfile.encoding=UTF-8)
|
||||||
|
|
||||||
#
|
#
|
||||||
# KONAN BACKEND INVOCATION
|
# KONAN BACKEND INVOCATION
|
||||||
#
|
#
|
||||||
|
|
||||||
java_args=("${java_args[@]} -noverify -Dkonan.home=${KONAN_HOME} -Djava.library.path=${NATIVE_LIB}")
|
java_args=("${java_args[@]}" -noverify "-Dkonan.home=${KONAN_HOME}" "-Djava.library.path=${NATIVE_LIB}")
|
||||||
|
|
||||||
$JAVACMD $JAVA_OPTS ${java_args[@]} -cp $KONAN_CLASSPATH $KONAN_COMPILER "${konan_args[@]}"
|
"$JAVACMD" "${java_opts[@]}" "${java_args[@]}" -cp "$KONAN_CLASSPATH" "$KONAN_COMPILER" "${konan_args[@]}"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user