From 83d96f7d97c717e4d05133406791646c290575c0 Mon Sep 17 00:00:00 2001 From: Alexander Gorshenev Date: Wed, 7 Jun 2017 15:08:40 +0300 Subject: [PATCH] Windows scripts commoned. --- cmd/cinterop.bat | 128 +++++------------------------------------ cmd/konanc.bat | 93 +++++------------------------- cmd/kotlinc-native.bat | 2 +- cmd/kotlinc.bat | 2 +- cmd/run_konan.bat | 102 ++++++++++++++++++++++++++++++++ 5 files changed, 132 insertions(+), 195 deletions(-) create mode 100644 cmd/run_konan.bat diff --git a/cmd/cinterop.bat b/cmd/cinterop.bat index 682c536b1b1..7b1e1f57d58 100644 --- a/cmd/cinterop.bat +++ b/cmd/cinterop.bat @@ -1,117 +1,17 @@ @echo off -rem based on scalac.bat from the Scala distribution -rem ########################################################################## -rem # Copyright 2002-2011, LAMP/EPFL -rem # Copyright 2011-2017, 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 ########################################################################## -setlocal enabledelayedexpansion -call :set_home -call :set_path - -if not "%JAVA_HOME%"=="" ( - if exist "%JAVA_HOME%\bin\java.exe" set "_JAVACMD=%JAVA_HOME%\bin\java.exe" -) - -if "%_JAVACMD%"=="" set _JAVACMD=java - -set OUTPUT_FILE_NAME=nativelib -set TARGET=host -set JAVA_ARGS= -set INTEROP_ARGS= - -:again -set "ARG=%1" -if not "!ARG!" == "" ( - if "!ARG:~0,2!" == "-D" ( - set "JAVA_ARGS=%JAVA_ARGS% %ARG%" - goto next - ) - if "!ARG:~0,2!" == "-J" ( - set "JAVA_ARGS=%JAVA_ARGS% !ARG:~2!" - goto next - ) - if "!ARG!" == "-o" ( - set "OUTPUT_FILE_NAME=%2" - shift - goto next - ) - if "!ARG!" == "-target" ( - set "TARGET=%2" - shift - goto next - ) - - set "INTEROP_ARGS=%INTEROP_ARGS% %ARG%" - - :next - shift - goto again -) - -set "NATIVE_LIB=%_KONAN_HOME%\konan\nativelib" -set JAVA_OPTS=-ea ^ - "-Djava.library.path=%NATIVE_LIB%" ^ - "-Dkonan.home=%_KONAN_HOME%" ^ - -Dfile.encoding=UTF-8 - -set "STUB_GENERATOR_JAR=%_KONAN_HOME%\konan\lib\StubGenerator.jar" -set "KOTLIN_JAR=%_KONAN_HOME%\konan\lib\kotlin-compiler.jar" -set "INTEROP_INDEXER_JAR=%_KONAN_HOME%\konan\lib\Indexer.jar" -set "INTEROP_RUNTIME_JAR=%_KONAN_HOME%\konan\lib\Runtime.jar" -set "HELPERS_JAR=%_KONAN_HOME%\konan\lib\helpers.jar" -set "INTEROP_CLASSPATH=%STUB_GENERATOR_JAR%;%KOTLIN_JAR%;%INTEROP_INDEXER_JAR%;%INTEROP_RUNTIME_JAR%;%HELPERS_JAR%" -set "INTEROP_TOOL=org.jetbrains.kotlin.native.interop.gen.jvm.MainKt" - -set "FLAVOR_ARG=-flavor native" - -set "GENERATED_DIR=%OUTPUT_FILE_NAME%-build/kotlin" -set "GENERATED_ARG=-generated "%GENERATED_DIR%"" -set "NATIVES_DIR=%OUTPUT_FILE_NAME%-build/natives" -set "NATIVES_ARG=-natives "%NATIVES_DIR%"" -set "CSTUBSNAME=cstubs" -set "CSTUBSNAME_ARG=-cstubsname %CSTUBSNAME%" - -set LIBCLANG_DISABLE_CRASH_RECOVERY=1 - -"%_JAVACMD%" %JAVA_OPTS% %JAVA_ARGS% ^ - -cp "%INTEROP_CLASSPATH%" ^ - %INTEROP_TOOL% ^ - %GENERATED_ARG% %NATIVES_ARG% %CSTUBSNAME_ARG% ^ - %FLAVOR_ARG% -target "%TARGET%" %INTEROP_ARGS% - -if ERRORLEVEL 1 exit /b %ERRORLEVEL% - -rem Stubs may be rather big, so we may need more heap space. -set XMX_ARG=-J-Xmx3G - -call "%_KONAN_HOME%\bin\konanc.bat" %XMX_ARG% "%GENERATED_DIR%" -produce library ^ - -nativelibrary "%NATIVES_DIR%/%CSTUBSNAME%.bc" ^ - -o "%OUTPUT_FILE_NAME%" -target "%TARGET%" - - -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 _KONAN_HOME=%_BIN_DIR%.. -goto :eof - -:set_path - rem libclang.dll is dynamically linked and thus requires correct PATH to be loaded. - rem TODO: remove this hack. - set "PATH=%_KONAN_HOME%\dependencies\msys2-mingw-w64-x86_64-gcc-6.3.0-clang-llvm-3.9.1-windows-x86-64\bin;%PATH%" -goto :eof - -:end -endlocal +rem Copyright 2010-2017 JetBrains s.r.o. +rem +rem Licensed under the Apache License, Version 2.0 (the "License"); +rem you may not use this file except in compliance with the License. +rem You may obtain a copy of the License at +rem +rem http://www.apache.org/licenses/LICENSE-2.0 +rem +rem Unless required by applicable law or agreed to in writing, software +rem distributed under the License is distributed on an "AS IS" BASIS, +rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +rem See the License for the specific language governing permissions and +rem limitations under the License. +call %~dps0run_konan.bat cinterop %* diff --git a/cmd/konanc.bat b/cmd/konanc.bat index 3880190847c..1c015cc6c78 100644 --- a/cmd/konanc.bat +++ b/cmd/konanc.bat @@ -1,82 +1,17 @@ @echo off -rem based on scalac.bat from the Scala distribution -rem ########################################################################## -rem # Copyright 2002-2011, LAMP/EPFL -rem # Copyright 2011-2017, 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 ########################################################################## -setlocal enabledelayedexpansion -call :set_home - -if "%_KONAN_COMPILER%"=="" set _KONAN_COMPILER=org.jetbrains.kotlin.cli.bc.K2NativeKt - -if not "%JAVA_HOME%"=="" ( - if exist "%JAVA_HOME%\bin\java.exe" set "_JAVACMD=%JAVA_HOME%\bin\java.exe" -) - -if "%_JAVACMD%"=="" set _JAVACMD=java - -set JAVA_ARGS= -set KONAN_ARGS= - -:again -set "ARG=%1" -if not "!ARG!" == "" ( - if "!ARG:~0,2!" == "-D" ( - set "JAVA_ARGS=%JAVA_ARGS% %ARG%" - goto next - ) - if "!ARG:~0,2!" == "-J" ( - set "JAVA_ARGS=%JAVA_ARGS% !ARG:~2!" - goto next - ) - if "!ARG:~0,2!" == "-X" ( - echo "TODO: need to pass arguments to all the tools somehow." - goto next - ) - if "!ARG!" == "--time" ( - set "KONAN_ARGS=%KONAN_ARGS% --time" - set "JAVA_ARGS=%JAVA_ARGS% -agentlib:hprof=cpu=samples -Dkonan.profile=true" - goto next - ) - - set "KONAN_ARGS=%KONAN_ARGS% %ARG%" - - :next - shift - goto again -) - -set "KONAN_JAR=%_KONAN_HOME%\konan\lib\backend.native.jar" -set "KOTLIN_JAR=%_KONAN_HOME%\konan\lib\kotlin-compiler.jar" -set "INTEROP_JAR=%_KONAN_HOME%\konan\lib\Runtime.jar" -set "HELPERS_JAR=%_KONAN_HOME%\konan\lib\helpers.jar" -set "NATIVE_LIB=%_KONAN_HOME%\konan\nativelib" -set "KONAN_CLASSPATH=%KOTLIN_JAR%;%INTEROP_JAR%;%KONAN_JAR%;%HELPERS_JAR%" -set "JAVA_OPTS=-ea -Dfile.encoding=UTF-8" - - - -set "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% - -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 _KONAN_HOME=%_BIN_DIR%.. -goto :eof - -:end -endlocal +rem Copyright 2010-2017 JetBrains s.r.o. +rem +rem Licensed under the Apache License, Version 2.0 (the "License"); +rem you may not use this file except in compliance with the License. +rem You may obtain a copy of the License at +rem +rem http://www.apache.org/licenses/LICENSE-2.0 +rem +rem Unless required by applicable law or agreed to in writing, software +rem distributed under the License is distributed on an "AS IS" BASIS, +rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +rem See the License for the specific language governing permissions and +rem limitations under the License. +call %~dps0run_konan.bat konanc %* diff --git a/cmd/kotlinc-native.bat b/cmd/kotlinc-native.bat index 70da3b6b49c..1c015cc6c78 100644 --- a/cmd/kotlinc-native.bat +++ b/cmd/kotlinc-native.bat @@ -14,4 +14,4 @@ rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. rem See the License for the specific language governing permissions and rem limitations under the License. -call %~dps0konanc.bat %* +call %~dps0run_konan.bat konanc %* diff --git a/cmd/kotlinc.bat b/cmd/kotlinc.bat index 70da3b6b49c..1c015cc6c78 100644 --- a/cmd/kotlinc.bat +++ b/cmd/kotlinc.bat @@ -14,4 +14,4 @@ rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. rem See the License for the specific language governing permissions and rem limitations under the License. -call %~dps0konanc.bat %* +call %~dps0run_konan.bat konanc %* diff --git a/cmd/run_konan.bat b/cmd/run_konan.bat new file mode 100644 index 00000000000..d6a8891b4a2 --- /dev/null +++ b/cmd/run_konan.bat @@ -0,0 +1,102 @@ +@echo off +rem based on scalac.bat from the Scala distribution +rem ########################################################################## +rem # Copyright 2002-2011, LAMP/EPFL +rem # Copyright 2011-2017, 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 ########################################################################## + +setlocal enabledelayedexpansion +call :set_home +call :set_path + +set "TOOL_NAME=%1" +shift + +if "%_TOOL_CLASS%"=="" set _TOOL_CLASS=org.jetbrains.kotlin.cli.utilities.MainKt + +if not "%JAVA_HOME%"=="" ( + if exist "%JAVA_HOME%\bin\java.exe" set "_JAVACMD=%JAVA_HOME%\bin\java.exe" +) + +if "%_JAVACMD%"=="" set _JAVACMD=java + +set JAVA_ARGS= +set KONAN_ARGS= + +:again +set "ARG=%1" +if not "!ARG!" == "" ( + if "!ARG:~0,2!" == "-D" ( + set "JAVA_ARGS=%JAVA_ARGS% %ARG%" + goto next + ) + if "!ARG:~0,2!" == "-J" ( + set "JAVA_ARGS=%JAVA_ARGS% !ARG:~2!" + goto next + ) + if "!ARG:~0,2!" == "-X" ( + echo "TODO: need to pass arguments to all the tools somehow." + goto next + ) + if "!ARG!" == "--time" ( + set "KONAN_ARGS=%KONAN_ARGS% --time" + set "JAVA_ARGS=%JAVA_ARGS% -agentlib:hprof=cpu=samples -Dkonan.profile=true" + goto next + ) + + set "KONAN_ARGS=%KONAN_ARGS% %ARG%" + + :next + shift + goto again +) + +set "NATIVE_LIB=%_KONAN_HOME%\konan\nativelib" +set "KONAN_LIB=%_KONAN_HOME%\konan\lib" + +set "HELPERS_JAR=%KONAN_LIB%\helpers.jar" +set "INTEROP_INDEXER_JAR=%KONAN_LIB%\Indexer.jar" +set "INTEROP_RUNTIME_JAR=%KONAN_LIB%\Runtime.jar" +set "KLIB_JAR=%KONAN_LIB%\klib.jar" +set "KONAN_JAR=%KONAN_LIB%\backend.native.jar" +set "KOTLIN_JAR=%KONAN_LIB%\kotlin-compiler.jar" +set "STUB_GENERATOR_JAR=%KONAN_LIB%\StubGenerator.jar" +set "UTILITIES_JAR=%KONAN_LIB%\utilities.jar" + +set "KONAN_CLASSPATH=%KOTLIN_JAR%;%INTEROP_RUNTIME_JAR%;%KONAN_JAR%;%STUB_GENERATOR_JAR%;%INTEROP_INDEXER_JAR%;%HELPERS_JAR%;%KLIB_JAR%;%UTILITIES_JAR%" + +set JAVA_OPTS=-ea ^ + -Xmx3G ^ + "-Djava.library.path=%NATIVE_LIB%" ^ + "-Dkonan.home=%_KONAN_HOME%" ^ + -Dfile.encoding=UTF-8 + +set LIBCLANG_DISABLE_CRASH_RECOVERY=1 + +"%_JAVACMD%" %JAVA_OPTS% %JAVA_ARGS% -cp "%KONAN_CLASSPATH%" %_TOOL_CLASS% %TOOL_NAME% %KONAN_ARGS% + +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 _KONAN_HOME=%_BIN_DIR%.. +goto :eof + +:set_path + rem libclang.dll is dynamically linked and thus requires correct PATH to be loaded. + rem TODO: remove this hack. + set "PATH=%_KONAN_HOME%\dependencies\msys2-mingw-w64-x86_64-gcc-6.3.0-clang-llvm-3.9.1-windows-x86-64\bin;%PATH%" +goto :eof + +:end +endlocal +