#!/bin/bash --posix # ############################################################################## # Copyright 2002-2011, LAMP/EPFL # Copyright 2011-2013, JetBrains # # This is free software; see the distribution for copying conditions. # There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. ############################################################################## cygwin=false; case "`uname`" in CYGWIN*) cygwin=true ;; esac # Finding the root folder for this Kotlin distribution SOURCE=$0; SCRIPT=`basename "$SOURCE"`; while [ -h "$SOURCE" ]; do SCRIPT=`basename "$SOURCE"`; LOOKUP=`ls -ld "$SOURCE"`; TARGET=`expr "$LOOKUP" : '.*-> \(.*\)$'`; if expr "${TARGET:-.}/" : '/.*/$' > /dev/null; then SOURCE=${TARGET:-.}; else SOURCE=`dirname "$SOURCE"`/${TARGET:-.}; fi; done; # see #2092 KOTLIN_HOME=`dirname "$SOURCE"` KOTLIN_HOME=`cd "$KOTLIN_HOME"; pwd -P` KOTLIN_HOME=`cd "$KOTLIN_HOME"/..; pwd` # Remove spaces from KOTLIN_HOME on windows if $cygwin; then KOTLIN_HOME=`cygpath --windows --short-name "$KOTLIN_HOME"` fi [ -n "$JAVA_OPTS" ] || JAVA_OPTS="-Xmx256M -Xms32M -noverify" # break out -D and -J options and add them to JAVA_OPTS as well # so they reach the underlying JVM in time to do some good. The # -D options will be available as system properties. declare -a java_args declare -a kotlin_args profile_preloader="notime" while [ $# -gt 0 ]; do case "$1" in -D*) # pass to kotlin as well: otherwise we lose it sometimes when we # need it, e.g. communicating with a server compiler. java_args=("${java_args[@]}" "$1") kotlin_args=("${kotlin_args[@]}" "$1") shift ;; -J*) # as with -D, pass to kotlin even though it will almost # never be used. java_args=("${java_args[@]}" "${1:2}") kotlin_args=("${kotlin_args[@]}" "$1") shift ;; -pp) profile_preloader="time" shift ;; *) kotlin_args=("${kotlin_args[@]}" "$1") shift ;; esac done # reset "$@" to the remaining args set -- "${kotlin_args[@]}" if [ -z "$JAVACMD" -a -n "$JAVA_HOME" -a -x "$JAVA_HOME/bin/java" ]; then JAVACMD="$JAVA_HOME/bin/java" fi CPSELECT="-cp " "${JAVACMD:=java}" \ $JAVA_OPTS \ "${java_args[@]}" \ ${CPSELECT}"${KOTLIN_HOME}/lib/kotlin-preloader.jar" \ org.jetbrains.jet.preloading.Preloader "${KOTLIN_HOME}/lib/kotlin-compiler.jar:${KOTLIN_HOME}/lib/kotlin-runtime.jar" org.jetbrains.jet.cli.js.K2JSCompiler 4096 $profile_preloader "$@"