forked from scala/scala3
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
cd398f5
commit 207bcc7
Showing
5 changed files
with
541 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
@rem ######################################################################### | ||
@rem ## Code common to scalac.bat, scaladoc.bat and scala.bat | ||
|
||
if defined JAVACMD ( | ||
set "_JAVACMD=%JAVACMD%" | ||
) else if defined JAVA_HOME ( | ||
set "_JAVACMD=%JAVA_HOME%\bin\java.exe" | ||
) else if defined JDK_HOME ( | ||
set "_JAVACMD=%JDK_HOME%\bin\java.exe" | ||
) else ( | ||
where /q java.exe | ||
if !ERRORLEVEL!==0 ( | ||
set __JAVA_BIN_DIR= | ||
for /f "delims=" %%i in ('where /f java.exe') do ( | ||
set "__PATH=%%~dpi" | ||
@rem we take first occurence and ignore Oracle path for java executable | ||
if not defined __JAVA_BIN_DIR if "!__PATH!"=="!__PATH:javapath=!" set "__JAVA_BIN_DIR=!__PATH!" | ||
) | ||
if defined __JAVA_BIN_DIR set "_JAVACMD=!__JAVA_BIN_DIR!\java.exe" | ||
) | ||
if not defined _JAVACMD ( | ||
set "__PATH=%ProgramFiles%\Java" | ||
for /f %%f in ('dir /ad /b "!__PATH!\jre*" 2^>NUL') do set "_JAVA_HOME=!__PATH!\%%f" | ||
if not defined _JAVA_HOME ( | ||
set __PATH=C:\opt | ||
for /f %%f in ('dir /ad /b "!__PATH!\jdk*" 2^>NUL') do set "_JAVA_HOME=!__PATH!\%%f\jre" | ||
) | ||
if defined _JAVA_HOME set "_JAVACMD=!_JAVA_HOME!\bin\java.exe" | ||
) | ||
) | ||
if not exist "%_JAVACMD%" ( | ||
echo Error: Java executable not found ^(!_JAVACMD!^) 1>&2 | ||
set _EXITCODE=1 | ||
goto :eof | ||
) | ||
|
||
if not defined _PROG_HOME set "_PROG_HOME=%~dp0" | ||
for /f %%f in ("%_PROG_HOME%\.") do set "_LIB_DIR=%%~dpflib" | ||
|
||
set _PSEP=; | ||
|
||
for /f %%f in ('dir /a-d /b "%_LIB_DIR%\*scala3-compiler*"') do set "_SCALA3_COMP=%_LIB_DIR%\%%f" | ||
for /f %%f in ('dir /a-d /b "%_LIB_DIR%\*scala3-interfaces*"') do set "_SCALA3_INTF=%_LIB_DIR%\%%f" | ||
for /f %%f in ('dir /a-d /b "%_LIB_DIR%\*scala3-library*"') do set "_SCALA3_LIB=%_LIB_DIR%\%%f" | ||
for /f %%f in ('dir /a-d /b "%_LIB_DIR%\*scala3-staging*"') do set "_SCALA3_STAGING=%_LIB_DIR%\%%f" | ||
for /f %%f in ('dir /a-d /b "%_LIB_DIR%\*scala3-tasty-inspector*"') do set "_SCALA3_TASTY_INSPECTOR=%_LIB_DIR%\%%f" | ||
for /f %%f in ('dir /a-d /b "%_LIB_DIR%\*tasty-core*"') do set "_TASTY_CORE=%_LIB_DIR%\%%f" | ||
for /f %%f in ('dir /a-d /b "%_LIB_DIR%\*scala-asm*"') do set "_SCALA_ASM=%_LIB_DIR%\%%f" | ||
for /f %%f in ('dir /a-d /b "%_LIB_DIR%\*scala-library*"') do set "_SCALA_LIB=%_LIB_DIR%\%%f" | ||
for /f %%f in ('dir /a-d /b "%_LIB_DIR%\*compiler-interface*"') do set "_SBT_INTF=%_LIB_DIR%\%%f" | ||
for /f %%f in ('dir /a-d /b "%_LIB_DIR%\*jline-reader-3*"') do set "_JLINE_READER=%_LIB_DIR%\%%f" | ||
for /f %%f in ('dir /a-d /b "%_LIB_DIR%\*jline-terminal-3*"') do set "_JLINE_TERMINAL=%_LIB_DIR%\%%f" | ||
for /f %%f in ('dir /a-d /b "%_LIB_DIR%\*jline-terminal-jna-3*"') do set "_JLINE_TERMINAL_JNA=%_LIB_DIR%\%%f" | ||
for /f %%f in ('dir /a-d /b "%_LIB_DIR%\*jna-5*"') do set "_JNA=%_LIB_DIR%\%%f" | ||
|
||
@rem debug | ||
set _DEBUG_STR=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,124 @@ | ||
@echo off | ||
setlocal enabledelayedexpansion | ||
|
||
@rem ######################################################################### | ||
@rem ## Environment setup | ||
|
||
set _EXITCODE=0 | ||
|
||
set "_PROG_HOME=%~dp0" | ||
|
||
call "%_PROG_HOME%\common.bat" | ||
if not %_EXITCODE%==0 goto end | ||
|
||
call :args %* | ||
|
||
@rem ######################################################################### | ||
@rem ## Main | ||
|
||
set _CASE_REPL=0 | ||
if %_EXECUTE_REPL%==1 set _CASE_REPL=1 | ||
if %_EXECUTE_RUN%==0 if %_OPTIONS_INDICATOR%==0 set _CASE_REPL=1 | ||
|
||
set _CASE_EXEC=0 | ||
if %_EXECUTE_REPL%==1 set _CASE_EXEC=1 | ||
if defined _RESIDUAL_ARGS set _CASE_EXEC=1 | ||
|
||
if %_EXECUTE_SCRIPT%==1 ( | ||
set _SCALAC_ARGS= | ||
if defined _CLASS_PATH set _SCALAC_ARGS=-classpath "%_CLASS_PATH%" | ||
set _RESIDUAL_ARGS=!_RESIDUAL_ARGS! "-Dscript.path=%_TARGET_SCRIPT%" | ||
set _SCALAC_ARGS=!_SCALAC_ARGS! %_JAVA_OPTS% !_RESIDUAL_ARGS! -script "%_TARGET_SCRIPT%" %_SCRIPT_ARGS% | ||
call "%_PROG_HOME%\scalac.bat" !_SCALAC_ARGS! | ||
if not !ERRORLEVEL!==0 ( set _EXITCODE=1& goto end ) | ||
@rem if [ $execute_repl == true ] || ([ $execute_run == false ] && [ $options_indicator == 0 ]); then | ||
) else if %_CASE_REPL%==1 ( | ||
set _SCALAC_ARGS= | ||
if defined _CLASS_PATH set _SCALAC_ARGS=-classpath "%_CLASS_PATH%" | ||
set _SCALAC_ARGS=!_SCALAC_ARGS! %_JAVA_OPTS% -repl %_RESIDUAL_ARGS% | ||
call "%_PROG_HOME%\scalac.bat" !_SCALAC_ARGS! | ||
if not !ERRORLEVEL!==0 ( set _EXITCODE=1& goto end ) | ||
@rem elif [ $execute_repl == true ] || [ ${#residual_args[@]} -ne 0 ]; then | ||
) else if %_CASE_EXEC%==1 ( | ||
set "_CP_ARG=%_SCALA3_LIB%%_PSEP%%_SCALA_LIB%" | ||
if defined _CLASS_PATH ( set "_CP_ARG=!_CP_ARG!%_PSEP%%_CLASS_PATH%" | ||
) else ( set "_CP_ARG=!_CP_ARG!%_PSEP%." | ||
) | ||
if %_CLASS_PATH_COUNT% gtr 1 ( | ||
echo Warning: Multiple classpaths are found, scala only use the last one. 1>&2 | ||
) | ||
if %_WITH_COMPILER%==1 ( | ||
set "_CP_ARG=!_CP_ARG!%_PSEP%%_SCALA3_COMP%%_PSEP%%_TASTY_CORE%%_PSEP%%_SCALA3_INTF%%_PSEP%%_SCALA_ASM%%_PSEP%%_SCALA3_STAGING%%_PSEP%%_SCALA3_TASTY_INSPECTOR%" | ||
) | ||
set _JAVA_ARGS=%_JAVA_DEBUG% -classpath "!_CP_ARG!" %_JVM_OPTS% %_RESIDUAL_ARGS% | ||
call "%_JAVACMD%" !_JAVA_ARGS! | ||
if not !ERRORLEVEL!==0 ( set _EXITCODE=1& goto end ) | ||
) else ( | ||
echo Warning: Command option is not correct. 1>&2 | ||
) | ||
|
||
goto end | ||
|
||
@rem ######################################################################### | ||
@rem ## Subroutines | ||
|
||
:args | ||
set _RESIDUAL_ARGS= | ||
set _SCRIPT_ARGS= | ||
set _EXECUTE_REPL=0 | ||
set _EXECUTE_RUN=0 | ||
set _EXECUTE_SCRIPT=0 | ||
set _TARGET_SCRIPT= | ||
set _WITH_COMPILER=0 | ||
set _JAVA_DEBUG= | ||
set _CLASS_PATH_COUNT=0 | ||
set _CLASS_PATH= | ||
set _JVM_OPTS= | ||
set _JAVA_OPTS= | ||
set _OPTIONS_INDICATOR=0 | ||
|
||
:args_loop | ||
if "%~1"=="" goto args_done | ||
set "__ARG=%~1" | ||
if "%__ARG%"=="-repl" ( | ||
set _EXECUTE_REPL=1 | ||
) else if "%__ARG%"=="-run" ( | ||
set _EXECUTE_RUN=1 | ||
) else if "%__ARG%"=="-classpath" ( | ||
set "_CLASS_PATH=%~2" | ||
set /a _CLASS_PATH_COUNT+=1 | ||
shift | ||
) else if "%__ARG%"=="-cp" ( | ||
set "_CLASS_PATH=%~2" | ||
set /a _CLASS_PATH_COUNT+=1 | ||
shift | ||
) else if "%__ARG%"=="-with-compiler" ( | ||
set _WITH_COMPILER=1 | ||
) else if "%__ARG%"=="-d" ( | ||
set "_JAVA_DEBUG=%_DEBUG_STR%" | ||
) else if "%__ARG:~0,2%"=="-J" ( | ||
set _JVM_OPTS=!_JVM_OPTS! %__ARG:~2% | ||
set _JAVA_OPTS=!_JAVA_OPTS! %__ARG% | ||
) else ( | ||
@rem _OPTIONS_INDICATOR != 0 if at least one parameter is not an option | ||
if not "%__ARG:~0,1%"=="-" set /a _OPTIONS_INDICATOR+=1 | ||
if %_EXECUTE_SCRIPT%==1 ( | ||
set _SCRIPT_ARGS=%_SCRIPT_ARGS% %__ARG% | ||
) else if "%__ARG:~-6%"==".scala" ( | ||
set _EXECUTE_SCRIPT=1 | ||
set "_TARGET_SCRIPT=%__ARG%" | ||
) else ( | ||
set _RESIDUAL_ARGS=%_RESIDUAL_ARGS% %__ARG% | ||
) | ||
) | ||
shift | ||
goto args_loop | ||
:args_done | ||
goto :eof | ||
|
||
@rem ######################################################################### | ||
@rem ## Cleanups | ||
|
||
:end | ||
exit /b %_EXITCODE% | ||
endlocal |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,173 @@ | ||
@echo off | ||
setlocal enabledelayedexpansion | ||
|
||
@rem ######################################################################### | ||
@rem ## Environment setup | ||
|
||
set _EXITCODE=0 | ||
|
||
set "_PROG_HOME=%~dp0" | ||
|
||
call "%_PROG_HOME%\common.bat" | ||
if not %_EXITCODE%==0 goto end | ||
|
||
set _DEFAULT_JAVA_OPTS=-Xmx768m -Xms768m | ||
@rem set _WITH_COMPILER=true | ||
|
||
set _COMPILER_MAIN=dotty.tools.dotc.Main | ||
set _DECOMPILER_MAIN=dotty.tools.dotc.decompiler.Main | ||
set _REPL_MAIN=dotty.tools.repl.Main | ||
set _SCRIPTING_MAIN=dotty.tools.scripting.Main | ||
|
||
call :args %* | ||
|
||
@rem ######################################################################### | ||
@rem ## Main | ||
|
||
call :classpathArgs | ||
|
||
set _SCRIPTING_STRING= | ||
if "%_PROG_NAME%"=="%_SCRIPTING_MAIN%" ( | ||
if not defined _TARGET_SCRIPT ( | ||
echo Error: Missing Scala script file 1>&2 | ||
set _EXITCODE=1 | ||
goto end | ||
) | ||
set _SCRIPTING_STRING=-script %_TARGET_SCRIPT% %_SCRIPTING_ARGS% | ||
) | ||
|
||
if defined JAVA_OPTS ( set _JAVA_OPTS=%JAVA_OPTS% | ||
) else ( set _JAVA_OPTS=%_DEFAULT_JAVA_OPTS% | ||
) | ||
call "%_JAVACMD%" %_JAVA_OPTS% %_JAVA_DEBUG% %_JAVA_ARGS% %_JVM_CP_ARGS% ^ | ||
-Dscala.usejavacp=true ^ | ||
%_PROG_NAME% %_SCALA_ARGS% %_RESIDUAL_ARGS% %_SCRIPTING_STRING% | ||
if not %ERRORLEVEL%==0 ( | ||
set _EXITCODE=1 | ||
goto end | ||
) | ||
goto end | ||
|
||
@rem ######################################################################### | ||
@rem ## Subroutines | ||
|
||
:args | ||
set _JAVA_DEBUG= | ||
set _HELP= | ||
set _VERBOSE= | ||
set _QUIET= | ||
set _COLORS= | ||
set _PROG_NAME=%_COMPILER_MAIN% | ||
set _SCALA_ARGS= | ||
set _JAVA_ARGS= | ||
set _RESIDUAL_ARGS= | ||
set _SCRIPTING_ARGS= | ||
set _TARGET_SCRIPT= | ||
|
||
:args_loop | ||
if "%~1"=="" goto args_done | ||
set "__ARG=%~1" | ||
if defined _TARGET_SCRIPT ( | ||
call :addScripting "%__ARG%" | ||
) else if "%__ARG%"=="--" ( | ||
@rem for arg; do addResidual "$arg"; done; set -- ;; | ||
) else if "%__ARG%"=="-h" ( | ||
set _HELP=true | ||
call :addScala "-help" | ||
) else if "%__ARG%"=="-help" ( | ||
set _HELP=true | ||
call :addScala "-help" | ||
) else if "%__ARG%"=="-v" ( | ||
set _VERBOSE=true | ||
call :addScala "-verbose" | ||
) else if "%__ARG%"=="-verbose" ( | ||
set _VERBOSE=true | ||
call :addScala "-verbose" | ||
) else if "%__ARG%"=="-debug" ( set "_JAVA_DEBUG=%_DEBUG_STR%" | ||
) else if "%__ARG%"=="-q" ( set _QUIET=true | ||
) else if "%__ARG%"=="-quiet" ( set _QUIET=true | ||
@rem Optimize for short-running applications, see https://github.com/lampepfl/dotty/issues/222 | ||
) else if "%__ARG%"=="-Oshort" ( | ||
call :addJava "-XX:+TieredCompilation -XX:TieredStopAtLevel=1" | ||
) else if "%__ARG%"=="-repl" ( set _PROG_NAME=%_REPL_MAIN% | ||
) else if "%__ARG%"=="-script" ( | ||
set _PROG_NAME=%_SCRIPTING_MAIN% | ||
if "%~2"=="" goto args_done | ||
set "_TARGET_SCRIPT=%~2" | ||
shift | ||
) else if "%__ARG%"=="-compile" ( set _PROG_NAME=%_COMPILER_MAIN% | ||
) else if "%__ARG%"=="-decompile" ( set _PROG_NAME=%_DECOMPILER_MAIN% | ||
) else if "%__ARG%"=="-print-tasty" ( | ||
set _PROG_NAME=%_DECOMPILER_MAIN% | ||
call :addScala "-print-tasty" | ||
) else if "%__ARG%"=="-run" ( set _PROG_NAME=%_REPL_MAIN% | ||
) else if "%__ARG%"=="-colors" ( set _COLORS=true | ||
) else if "%__ARG%"=="-no-colors" ( set _COLORS= | ||
) else if "%__ARG%"=="-with-compiler" ( set _JVM_CP_ARGS=%_PSEP%%_SCALA3_COMP%%_PSEP%%_TASTY_CORE% | ||
@rem break out -D and -J options and add them to JAVA_OPTS as well | ||
@rem so they reach the JVM in time to do some good. The -D options | ||
@rem will be available as system properties. | ||
) else if "%__ARG:~0,2%"=="-D" ( call :addJava "%__ARG%" | ||
) else if "%__ARG:~0,2%"=="-J" ( call :addJava "%__ARG:~2%" | ||
) else ( call :addResidual "%__ARG%" | ||
) | ||
shift | ||
goto args_loop | ||
:args_done | ||
goto :eof | ||
|
||
@rem output parameter: _SCALA_ARGS | ||
:addScala | ||
set _SCALA_ARGS=%_SCALA_ARGS% %~1 | ||
goto :eof | ||
|
||
@rem output parameter: _JAVA_ARGS | ||
:addJava | ||
set _JAVA_ARGS=%_JAVA_ARGS% %~1 | ||
goto :eof | ||
|
||
@rem output parameter: _RESIDUAL_ARGS | ||
:addResidual | ||
set _RESIDUAL_ARGS=%_RESIDUAL_ARGS% %~1 | ||
goto :eof | ||
|
||
@rem output parameter: _SCRIPTING_ARGS | ||
:addScripting | ||
set _SCRIPTING_ARGS=%_SCRIPTING_ARGS% %~1 | ||
goto :eof | ||
|
||
@rem output parameter: _JVM_CP_ARGS | ||
:classpathArgs | ||
@rem echo scala3-compiler: %_SCALA3_COMP% | ||
@rem echo scala3-interface: %_SCALA3_INTF% | ||
@rem echo scala3-library: %_SCALA3_LIB% | ||
@rem echo tasty-core: %_TASTY_CORE% | ||
@rem echo scala-asm: %_SCALA_ASM% | ||
@rem echo scala-lib: %_SCALA_LIB% | ||
@rem echo sbt-intface: %_SBT_INTF% | ||
|
||
set __TOOLCHAIN=%_SCALA_LIB%%_PSEP% | ||
set __TOOLCHAIN=%__TOOLCHAIN%%_SCALA3_LIB%%_PSEP% | ||
set __TOOLCHAIN=%__TOOLCHAIN%%_SCALA_ASM%%_PSEP% | ||
set __TOOLCHAIN=%__TOOLCHAIN%%_SBT_INTF%%_PSEP% | ||
set __TOOLCHAIN=%__TOOLCHAIN%%_SCALA3_INTF%%_PSEP% | ||
set __TOOLCHAIN=%__TOOLCHAIN%%_SCALA3_COMP%%_PSEP% | ||
set __TOOLCHAIN=%__TOOLCHAIN%%_TASTY_CORE%%_PSEP% | ||
set __TOOLCHAIN=%__TOOLCHAIN%%_SCALA3_STAGING%%_PSEP% | ||
set __TOOLCHAIN=%__TOOLCHAIN%%_SCALA3_TASTY_INSPECTOR%%_PSEP% | ||
|
||
@rem # jline | ||
set __TOOLCHAIN=%__TOOLCHAIN%%_JLINE_READER%%_PSEP% | ||
set __TOOLCHAIN=%__TOOLCHAIN%%_JLINE_TERMINAL%%_PSEP% | ||
set __TOOLCHAIN=%__TOOLCHAIN%%_JLINE_TERMINAL_JNA%%_PSEP% | ||
set __TOOLCHAIN=%__TOOLCHAIN%%_JNA% | ||
|
||
set _JVM_CP_ARGS=-classpath "%__TOOLCHAIN%" | ||
goto :eof | ||
|
||
@rem ######################################################################### | ||
@rem ## Cleanups | ||
|
||
:end | ||
exit /b %_EXITCODE% | ||
endlocal |
Oops, something went wrong.