Skip to content

Commit

Permalink
load classpath directly from file
Browse files Browse the repository at this point in the history
  • Loading branch information
bishabosha committed Jun 20, 2024
1 parent fb178b4 commit 5b0044c
Show file tree
Hide file tree
Showing 5 changed files with 23 additions and 242 deletions.
53 changes: 8 additions & 45 deletions dist/bin/common
Original file line number Diff line number Diff line change
Expand Up @@ -6,58 +6,21 @@ source "$PROG_HOME/bin/common-shared"
# * The code below is for Dotty
# *-------------------------------------------------*/

find_lib () {
load_classpath () {
command="$1"
pattern="$2"
psep_pattern="$2"
__CLASS_PATH=""
while IFS= read -r line; do
if [[ $line == $pattern ]]; then
echo "$PROG_HOME/maven2/$line"
return
if ! [[ ( -n ${conemu-} || -n ${msys-}) && "$line" == "*jna-5*" ]]; then
# jna-5 only appropriate for some combinations
__CLASS_PATH+="$PROG_HOME/maven2/$line$psep_pattern"
fi
done < "$PROG_HOME/etc/$command.classpath"
echo "$__CLASS_PATH"
}

DOTTY_COMP=$(find_lib "scala" "*scala3-compiler*")
DOTTY_INTF=$(find_lib "scala" "*scala3-interfaces*")
DOTTY_LIB=$(find_lib "scala" "*scala3-library*")
DOTTY_STAGING=$(find_lib "scala" "*scala3-staging*")
DOTTY_TASTY_INSPECTOR=$(find_lib "scala" "*scala3-tasty-inspector*")
TASTY_CORE=$(find_lib "scala" "*tasty-core*")
SCALA_ASM=$(find_lib "scala" "*scala-asm*")
SCALA_LIB=$(find_lib "scala" "*scala-library*")
SBT_INTF=$(find_lib "scala" "*compiler-interface*")
JLINE_READER=$(find_lib "scala" "*jline-reader-3*")
JLINE_TERMINAL=$(find_lib "scala" "*jline-terminal-3*")
JLINE_TERMINAL_JNA=$(find_lib "scala" "*jline-terminal-jna-3*")

# jna-5 only appropriate for some combinations
[[ ${conemu-} && ${msys-} ]] || JNA=$(find_lib "scala" "*jna-5*")

compilerJavaClasspathArgs () {
# echo "dotty-compiler: $DOTTY_COMP"
# echo "dotty-interface: $DOTTY_INTF"
# echo "dotty-library: $DOTTY_LIB"
# echo "tasty-core: $TASTY_CORE"
# echo "scala-asm: $SCALA_ASM"
# echo "scala-lib: $SCALA_LIB"
# echo "sbt-intface: $SBT_INTF"

toolchain=""
toolchain+="$SCALA_LIB$PSEP"
toolchain+="$DOTTY_LIB$PSEP"
toolchain+="$SCALA_ASM$PSEP"
toolchain+="$SBT_INTF$PSEP"
toolchain+="$DOTTY_INTF$PSEP"
toolchain+="$DOTTY_COMP$PSEP"
toolchain+="$TASTY_CORE$PSEP"
toolchain+="$DOTTY_STAGING$PSEP"
toolchain+="$DOTTY_TASTY_INSPECTOR$PSEP"

# jine
toolchain+="$JLINE_READER$PSEP"
toolchain+="$JLINE_TERMINAL$PSEP"
toolchain+="$JLINE_TERMINAL_JNA$PSEP"
[ -n "${JNA-}" ] && toolchain+="$JNA$PSEP"
toolchain="$(load_classpath "scala" "$PSEP")"

if [ -n "${jvm_cp_args-}" ]; then
jvm_cp_args="$toolchain$jvm_cp_args"
Expand Down
71 changes: 9 additions & 62 deletions dist/bin/common.bat
Original file line number Diff line number Diff line change
Expand Up @@ -42,68 +42,15 @@ set "_ETC_DIR=%_PROG_HOME%\etc"

set _PSEP=;

for /f "delims=" %%f in ('type "%_ETC_DIR%\scala.classpath" ^| findstr /r /c:"scala3-compiler"') do (
@rem input parameter: %1=command for classpath file
@rem output parameter: _CLASS_PATH
:loadClasspathFromFile
set "__COMMAND=%~1"
set _CLASS_PATH=
for /f "delims=" %%f in ("%_ETC_DIR%\%__COMMAND%.classpath") do (
set "relpath=%%f"
set "relpath=!relpath:/=\!"
set "_SCALA3_COMP=%_PROG_HOME%\maven2\%relpath%"
)
for /f "delims=" %%f in ('type "%_ETC_DIR%\scala.classpath" ^| findstr /r /c:"scala3-interfaces"') do (
set "relpath=%%f"
set "relpath=!relpath:/=\!"
set "_SCALA3_INTF=%_PROG_HOME%\maven2\%relpath%"
)
for /f "delims=" %%f in ('type "%_ETC_DIR%\scala.classpath" ^| findstr /r /c:"scala3-library"') do (
set "relpath=%%f"
set "relpath=!relpath:/=\!"
set "_SCALA3_LIB=%_PROG_HOME%\maven2\%relpath%"
)
for /f "delims=" %%f in ('type "%_ETC_DIR%\scala.classpath" ^| findstr /r /c:"scala3-staging"') do (
set "relpath=%%f"
set "relpath=!relpath:/=\!"
set "_SCALA3_STAGING=%_PROG_HOME%\maven2\%relpath%"
)
for /f "delims=" %%f in ('type "%_ETC_DIR%\scala.classpath" ^| findstr /r /c:"scala3-tasty-inspector"') do (
set "relpath=%%f"
set "relpath=!relpath:/=\!"
set "_SCALA3_TASTY_INSPECTOR=%_PROG_HOME%\maven2\%relpath%"
)
for /f "delims=" %%f in ('type "%_ETC_DIR%\scala.classpath" ^| findstr /r /c:"tasty-core"') do (
set "relpath=%%f"
set "relpath=!relpath:/=\!"
set "_TASTY_CORE=%_PROG_HOME%\maven2\%relpath%"
)
for /f "delims=" %%f in ('type "%_ETC_DIR%\scala.classpath" ^| findstr /r /c:"scala-asm"') do (
set "relpath=%%f"
set "relpath=!relpath:/=\!"
set "_SCALA_ASM=%_PROG_HOME%\maven2\%relpath%"
)
for /f "delims=" %%f in ('type "%_ETC_DIR%\scala.classpath" ^| findstr /r /c:"scala-library"') do (
set "relpath=%%f"
set "relpath=!relpath:/=\!"
set "_SCALA_LIB=%_PROG_HOME%\maven2\%relpath%"
)
for /f "delims=" %%f in ('type "%_ETC_DIR%\scala.classpath" ^| findstr /r /c:"compiler-interface"') do (
set "relpath=%%f"
set "relpath=!relpath:/=\!"
set "_SBT_INTF=%_PROG_HOME%\maven2\%relpath%"
)
for /f "delims=" %%f in ('type "%_ETC_DIR%\scala.classpath" ^| findstr /r /c:"jline-reader-3"') do (
set "relpath=%%f"
set "relpath=!relpath:/=\!"
set "_JLINE_READER=%_PROG_HOME%\maven2\%relpath%"
)
for /f "delims=" %%f in ('type "%_ETC_DIR%\scala.classpath" ^| findstr /r /c:"jline-terminal-3"') do (
set "relpath=%%f"
set "relpath=!relpath:/=\!"
set "_JLINE_TERMINAL=%_PROG_HOME%\maven2\%relpath%"
)
for /f "delims=" %%f in ('type "%_ETC_DIR%\scala.classpath" ^| findstr /r /c:"jline-terminal-jna-3"') do (
set "relpath=%%f"
set "relpath=!relpath:/=\!"
set "_JLINE_TERMINAL_JNA=%_PROG_HOME%\maven2\%relpath%"
)
for /f "delims=" %%f in ('type "%_ETC_DIR%\scala.classpath" ^| findstr /r /c:"jna-5"') do (
set "relpath=%%f"
set "relpath=!relpath:/=\!"
set "_JNA=%_PROG_HOME%\maven2\%relpath%"

set "_CLASS_PATH=!_CLASS_PATH!%_PROG_HOME%\maven2\%relpath%%_PSEP%"
)
goto :eof
27 changes: 4 additions & 23 deletions dist/bin/scalac.bat
Original file line number Diff line number Diff line change
Expand Up @@ -88,29 +88,10 @@ goto :eof

@rem output parameter: _JVM_CP_ARGS
:compilerJavaClasspathArgs
@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%%_PSEP%"

call :loadClasspathFromFile "scala"

set "__TOOLCHAIN=%_CLASS_PATH%"

if defined _SCALA_CPATH (
set "_JVM_CP_ARGS=%__TOOLCHAIN%%_SCALA_CPATH%"
Expand Down
57 changes: 1 addition & 56 deletions dist/bin/scaladoc
Original file line number Diff line number Diff line change
Expand Up @@ -53,62 +53,7 @@ addScrip() {
}

classpathArgs () {
CLASS_PATH=""
CLASS_PATH+="$(find_lib "scaladoc" "*scaladoc*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*scala3-compiler*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*scala3-interfaces*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*scala3-library*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*tasty-core*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*scala3-tasty-inspector*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*flexmark-0*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*flexmark*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*flexmark-ext-anchorlink*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*flexmark-ext-autolink*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*flexmark-ext-emoji*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*flexmark-ext-gfm-strikethrough*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*flexmark-ext-gfm-tasklist*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*flexmark-ext-wikilink*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*flexmark-ext-yaml-front-matter*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*flexmark-ext-tables*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*flexmark-ext-ins*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*flexmark-ext-superscript*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*flexmark-util*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*flexmark-util-ast*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*flexmark-util-data*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*flexmark-util-dependency*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*flexmark-util-misc*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*flexmark-util-format*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*flexmark-util-sequence*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*flexmark-util-builder*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*flexmark-util-collection*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*flexmark-util-visitor*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*flexmark-util-options*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*flexmark-util-html*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*flexmark-formatter*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*flexmark-ast*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*liqp*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*jsoup*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*jackson-dataformat-yaml*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*jackson-datatype-jsr310*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*strftime4j*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*scala-asm*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*compiler-interface*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*jline-reader*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*jline-terminal-3*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*jline-terminal-jna*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*flexmark-formatter*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*autolink-0.6*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*flexmark-jira-converter*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*antlr4*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*jackson-annotations*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*jackson-core*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*jackson-databind*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*snakeyaml*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*scala-library*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*protobuf-java*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*util-interface*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*jna-5*")$PSEP"
CLASS_PATH+="$(find_lib "scaladoc" "*antlr4-runtime*")$PSEP"
CLASS_PATH="$(load_classpath "scaladoc" "$PSEP")"

jvm_cp_args="-classpath \"$CLASS_PATH\""
}
Expand Down
57 changes: 1 addition & 56 deletions dist/bin/scaladoc.bat
Original file line number Diff line number Diff line change
Expand Up @@ -106,63 +106,8 @@ goto :eof
@rem output parameter: _CLASS_PATH
:classpathArgs
set "_ETC_DIR=%_PROG_HOME%\etc"
set _CLASS_PATH=
@rem keep list in sync with bash script `bin\scaladoc` !
call :updateClasspath "scaladoc"
call :updateClasspath "scala3-compiler"
call :updateClasspath "scala3-interfaces"
call :updateClasspath "scala3-library"
call :updateClasspath "tasty-core"
call :updateClasspath "scala3-tasty-inspector"
call :updateClasspath "flexmark-0"
call :updateClasspath "flexmark-html-parser"
call :updateClasspath "flexmark-ext-anchorlink"
call :updateClasspath "flexmark-ext-autolink"
call :updateClasspath "flexmark-ext-emoji"
call :updateClasspath "flexmark-ext-gfm-strikethrough"
call :updateClasspath "flexmark-ext-gfm-tables"
call :updateClasspath "flexmark-ext-gfm-tasklist"
call :updateClasspath "flexmark-ext-wikilink"
call :updateClasspath "flexmark-ext-yaml-front-matter"
call :updateClasspath "liqp"
call :updateClasspath "jsoup"
call :updateClasspath "jackson-dataformat-yaml"
call :updateClasspath "jackson-datatype-jsr310"
call :updateClasspath "strftime4j"
call :updateClasspath "scala-asm"
call :updateClasspath "compiler-interface"
call :updateClasspath "jline-reader"
call :updateClasspath "jline-terminal-3"
call :updateClasspath "jline-terminal-jna"
call :updateClasspath "flexmark-util"
call :updateClasspath "flexmark-formatter"
call :updateClasspath "autolink-0.6"
call :updateClasspath "flexmark-jira-converter"
call :updateClasspath "antlr4"
call :updateClasspath "jackson-annotations"
call :updateClasspath "jackson-core"
call :updateClasspath "jackson-databind"
call :updateClasspath "snakeyaml"
call :updateClasspath "scala-library"
call :updateClasspath "protobuf-java"
call :updateClasspath "util-interface"
call :updateClasspath "jna-5"
call :updateClasspath "flexmark-ext-tables"
call :updateClasspath "flexmark-ext-ins"
call :updateClasspath "flexmark-ext-superscript"
call :updateClasspath "antlr4-runtime"
goto :eof

@rem input parameter: %1=pattern for library file
@rem output parameter: _CLASS_PATH
:updateClasspath
set "__PATTERN=%~1"
for /f "delims=" %%f in ('type "%_ETC_DIR%\scaladoc.classpath" ^| findstr /r /c:"%__PATTERN%" 2^>NUL') do (
set "relpath=%%f"
set "relpath=!relpath:/=\!"

set "_CLASS_PATH=!_CLASS_PATH!%_PROG_HOME%\maven2\%relpath%%_PSEP%"
)
call :loadClasspathFromFile "scaladoc"
goto :eof

@rem #########################################################################
Expand Down

0 comments on commit 5b0044c

Please sign in to comment.