| @echo off |
| rem based on scalac.bat from the Scala distribution |
| rem ########################################################################## |
| rem # Copyright 2002-2011, LAMP/EPFL |
| rem # Copyright 2011-2015, JetBrains |
| rem # |
| rem # This is free software; see the distribution for copying conditions. |
| rem # There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A |
| rem # PARTICULAR PURPOSE. |
| rem ########################################################################## |
| |
| rem We adopt the following conventions: |
| rem - System/user environment variables start with a letter |
| rem - Local batch variables start with an underscore ('_') |
| |
| setlocal |
| call :set_home |
| |
| if "%_KOTLIN_COMPILER%"=="" set _KOTLIN_COMPILER=org.jetbrains.kotlin.cli.jvm.K2JVMCompiler |
| |
| if not "%JAVA_HOME%"=="" ( |
| if exist "%JAVA_HOME%\bin\java.exe" set "_JAVACMD=%JAVA_HOME%\bin\java.exe" |
| ) |
| |
| if "%_JAVACMD%"=="" set _JAVACMD=java |
| |
| rem We use the value of the JAVA_OPTS environment variable if defined |
| if "%JAVA_OPTS%"=="" set JAVA_OPTS=-Xmx256M -Xms32M |
| |
| rem Iterate through arguments and split them into java and kotlin ones |
| :loop |
| set _arg=%~1 |
| if "%_arg%" == "" goto loopend |
| |
| if "%_arg:~0,2%"=="-J" ( |
| set JAVA_OPTS=%JAVA_OPTS% "%_arg:~2%" |
| ) else ( |
| if "%_arg:~0,2%"=="-D" ( |
| set JAVA_OPTS=%JAVA_OPTS% "%_arg%" |
| ) else ( |
| set KOTLIN_OPTS=%KOTLIN_OPTS% "%_arg%" |
| ) |
| ) |
| shift |
| goto loop |
| :loopend |
| |
| if "%_KOTLIN_RUNNER%"=="1" ( |
| "%_JAVACMD%" %JAVA_OPTS% "-Dkotlin.home=%_KOTLIN_HOME%" -cp "%_KOTLIN_HOME%\lib\kotlin-runner.jar" ^ |
| org.jetbrains.kotlin.runner.Main %KOTLIN_OPTS% |
| ) else ( |
| SET _ADDITIONAL_CLASSPATH= |
| |
| if not "%_KOTLIN_TOOL%"=="" ( |
| set _ADDITIONAL_CLASSPATH=;%_KOTLIN_HOME%\lib\%_KOTLIN_TOOL% |
| ) |
| |
| "%_JAVACMD%" %JAVA_OPTS% -noverify -cp "%_KOTLIN_HOME%\lib\kotlin-preloader.jar" ^ |
| org.jetbrains.kotlin.preloading.Preloader -cp "%_KOTLIN_HOME%\lib\kotlin-compiler.jar%_ADDITIONAL_CLASSPATH%" ^ |
| %_KOTLIN_COMPILER% %KOTLIN_OPTS% |
| ) |
| |
| exit /b %ERRORLEVEL% |
| goto end |
| |
| rem ########################################################################## |
| rem # subroutines |
| |
| :set_home |
| set _BIN_DIR= |
| for %%i in (%~sf0) do set _BIN_DIR=%_BIN_DIR%%%~dpsi |
| set _KOTLIN_HOME=%_BIN_DIR%.. |
| goto :eof |
| |
| :end |
| endlocal |
| |