Skip to content

Commit 9d41c7b

Browse files
committed
replace pack command, do not produce lib directory, write classpath to file
1 parent c1b25d6 commit 9d41c7b

File tree

8 files changed

+217
-228
lines changed

8 files changed

+217
-228
lines changed

dist/bin/common

100755100644
Lines changed: 11 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -6,62 +6,21 @@ source "$PROG_HOME/bin/common-shared"
66
# * The code below is for Dotty
77
# *-------------------------------------------------*/
88

9-
find_lib () {
10-
for lib in "$PROG_HOME"/lib/$1 ; do
11-
if [[ -f "$lib" ]]; then
12-
if [ -n "$CYGPATHCMD" ]; then
13-
"$CYGPATHCMD" -am "$lib"
14-
elif [[ $mingw || $msys ]]; then
15-
echo "$lib" | sed 's|/|\\\\|g'
16-
else
17-
echo "$lib"
18-
fi
19-
return
9+
load_classpath () {
10+
command="$1"
11+
psep_pattern="$2"
12+
__CLASS_PATH=""
13+
while IFS= read -r line; do
14+
if ! [[ ( -n ${conemu-} || -n ${msys-}) && "$line" == "*jna-5*" ]]; then
15+
# jna-5 only appropriate for some combinations
16+
__CLASS_PATH+="$PROG_HOME/maven2/$line$psep_pattern"
2017
fi
21-
done
18+
done < "$PROG_HOME/etc/$command.classpath"
19+
echo "$__CLASS_PATH"
2220
}
2321

24-
DOTTY_COMP=$(find_lib "*scala3-compiler*")
25-
DOTTY_INTF=$(find_lib "*scala3-interfaces*")
26-
DOTTY_LIB=$(find_lib "*scala3-library*")
27-
DOTTY_STAGING=$(find_lib "*scala3-staging*")
28-
DOTTY_TASTY_INSPECTOR=$(find_lib "*scala3-tasty-inspector*")
29-
TASTY_CORE=$(find_lib "*tasty-core*")
30-
SCALA_ASM=$(find_lib "*scala-asm*")
31-
SCALA_LIB=$(find_lib "*scala-library*")
32-
SBT_INTF=$(find_lib "*compiler-interface*")
33-
JLINE_READER=$(find_lib "*jline-reader-3*")
34-
JLINE_TERMINAL=$(find_lib "*jline-terminal-3*")
35-
JLINE_TERMINAL_JNA=$(find_lib "*jline-terminal-jna-3*")
36-
37-
# jna-5 only appropriate for some combinations
38-
[[ ${conemu-} && ${msys-} ]] || JNA=$(find_lib "*jna-5*")
39-
4022
compilerJavaClasspathArgs () {
41-
# echo "dotty-compiler: $DOTTY_COMP"
42-
# echo "dotty-interface: $DOTTY_INTF"
43-
# echo "dotty-library: $DOTTY_LIB"
44-
# echo "tasty-core: $TASTY_CORE"
45-
# echo "scala-asm: $SCALA_ASM"
46-
# echo "scala-lib: $SCALA_LIB"
47-
# echo "sbt-intface: $SBT_INTF"
48-
49-
toolchain=""
50-
toolchain+="$SCALA_LIB$PSEP"
51-
toolchain+="$DOTTY_LIB$PSEP"
52-
toolchain+="$SCALA_ASM$PSEP"
53-
toolchain+="$SBT_INTF$PSEP"
54-
toolchain+="$DOTTY_INTF$PSEP"
55-
toolchain+="$DOTTY_COMP$PSEP"
56-
toolchain+="$TASTY_CORE$PSEP"
57-
toolchain+="$DOTTY_STAGING$PSEP"
58-
toolchain+="$DOTTY_TASTY_INSPECTOR$PSEP"
59-
60-
# jine
61-
toolchain+="$JLINE_READER$PSEP"
62-
toolchain+="$JLINE_TERMINAL$PSEP"
63-
toolchain+="$JLINE_TERMINAL_JNA$PSEP"
64-
[ -n "${JNA-}" ] && toolchain+="$JNA$PSEP"
23+
toolchain="$(load_classpath "scala" "$PSEP")"
6524

6625
if [ -n "${jvm_cp_args-}" ]; then
6726
jvm_cp_args="$toolchain$jvm_cp_args"

dist/bin/common.bat

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -38,20 +38,6 @@ if not defined _PROG_HOME (
3838
set _EXITCODE=1
3939
goto :eof
4040
)
41-
set "_LIB_DIR=%_PROG_HOME%\lib"
41+
set "_ETC_DIR=%_PROG_HOME%\etc"
4242

4343
set _PSEP=;
44-
45-
for /f "delims=" %%f in ('dir /a-d /b "%_LIB_DIR%\*scala3-compiler*"') do set "_SCALA3_COMP=%_LIB_DIR%\%%f"
46-
for /f "delims=" %%f in ('dir /a-d /b "%_LIB_DIR%\*scala3-interfaces*"') do set "_SCALA3_INTF=%_LIB_DIR%\%%f"
47-
for /f "delims=" %%f in ('dir /a-d /b "%_LIB_DIR%\*scala3-library*"') do set "_SCALA3_LIB=%_LIB_DIR%\%%f"
48-
for /f "delims=" %%f in ('dir /a-d /b "%_LIB_DIR%\*scala3-staging*"') do set "_SCALA3_STAGING=%_LIB_DIR%\%%f"
49-
for /f "delims=" %%f in ('dir /a-d /b "%_LIB_DIR%\*scala3-tasty-inspector*"') do set "_SCALA3_TASTY_INSPECTOR=%_LIB_DIR%\%%f"
50-
for /f "delims=" %%f in ('dir /a-d /b "%_LIB_DIR%\*tasty-core*"') do set "_TASTY_CORE=%_LIB_DIR%\%%f"
51-
for /f "delims=" %%f in ('dir /a-d /b "%_LIB_DIR%\*scala-asm*"') do set "_SCALA_ASM=%_LIB_DIR%\%%f"
52-
for /f "delims=" %%f in ('dir /a-d /b "%_LIB_DIR%\*scala-library*"') do set "_SCALA_LIB=%_LIB_DIR%\%%f"
53-
for /f "delims=" %%f in ('dir /a-d /b "%_LIB_DIR%\*compiler-interface*"') do set "_SBT_INTF=%_LIB_DIR%\%%f"
54-
for /f "delims=" %%f in ('dir /a-d /b "%_LIB_DIR%\*jline-reader-3*"') do set "_JLINE_READER=%_LIB_DIR%\%%f"
55-
for /f "delims=" %%f in ('dir /a-d /b "%_LIB_DIR%\*jline-terminal-3*"') do set "_JLINE_TERMINAL=%_LIB_DIR%\%%f"
56-
for /f "delims=" %%f in ('dir /a-d /b "%_LIB_DIR%\*jline-terminal-jna-3*"') do set "_JLINE_TERMINAL_JNA=%_LIB_DIR%\%%f"
57-
for /f "delims=" %%f in ('dir /a-d /b "%_LIB_DIR%\*jna-5*"') do set "_JNA=%_LIB_DIR%\%%f"

dist/bin/scalac

100644100755
File mode changed.

dist/bin/scalac.bat

Lines changed: 20 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -88,29 +88,10 @@ goto :eof
8888

8989
@rem output parameter: _JVM_CP_ARGS
9090
:compilerJavaClasspathArgs
91-
@rem echo scala3-compiler: %_SCALA3_COMP%
92-
@rem echo scala3-interface: %_SCALA3_INTF%
93-
@rem echo scala3-library: %_SCALA3_LIB%
94-
@rem echo tasty-core: %_TASTY_CORE%
95-
@rem echo scala-asm: %_SCALA_ASM%
96-
@rem echo scala-lib: %_SCALA_LIB%
97-
@rem echo sbt-intface: %_SBT_INTF%
98-
99-
set "__TOOLCHAIN=%_SCALA_LIB%%_PSEP%"
100-
set "__TOOLCHAIN=%__TOOLCHAIN%%_SCALA3_LIB%%_PSEP%"
101-
set "__TOOLCHAIN=%__TOOLCHAIN%%_SCALA_ASM%%_PSEP%"
102-
set "__TOOLCHAIN=%__TOOLCHAIN%%_SBT_INTF%%_PSEP%"
103-
set "__TOOLCHAIN=%__TOOLCHAIN%%_SCALA3_INTF%%_PSEP%"
104-
set "__TOOLCHAIN=%__TOOLCHAIN%%_SCALA3_COMP%%_PSEP%"
105-
set "__TOOLCHAIN=%__TOOLCHAIN%%_TASTY_CORE%%_PSEP%"
106-
set "__TOOLCHAIN=%__TOOLCHAIN%%_SCALA3_STAGING%%_PSEP%"
107-
set "__TOOLCHAIN=%__TOOLCHAIN%%_SCALA3_TASTY_INSPECTOR%%_PSEP%"
108-
109-
@rem # jline
110-
set "__TOOLCHAIN=%__TOOLCHAIN%%_JLINE_READER%%_PSEP%"
111-
set "__TOOLCHAIN=%__TOOLCHAIN%%_JLINE_TERMINAL%%_PSEP%"
112-
set "__TOOLCHAIN=%__TOOLCHAIN%%_JLINE_TERMINAL_JNA%%_PSEP%"
113-
set "__TOOLCHAIN=%__TOOLCHAIN%%_JNA%%_PSEP%"
91+
92+
call :loadClasspathFromFile
93+
94+
set "__TOOLCHAIN=%_CLASS_PATH%"
11495

11596
if defined _SCALA_CPATH (
11697
set "_JVM_CP_ARGS=%__TOOLCHAIN%%_SCALA_CPATH%"
@@ -119,6 +100,22 @@ if defined _SCALA_CPATH (
119100
)
120101
goto :eof
121102

103+
@REM concatentate every line in "%_ETC_DIR%\scala.classpath" with _PSEP
104+
:loadClasspathFromFile
105+
set _CLASS_PATH=
106+
if exist "%_ETC_DIR%\scala.classpath" (
107+
for /f "usebackq delims=" %%i in ("%_ETC_DIR%\scala.classpath") do (
108+
set "_LIB=%_PROG_HOME%\maven2\%%i"
109+
set "_LIB=!_LIB:/=\!"
110+
if not defined _CLASS_PATH (
111+
set "_CLASS_PATH=!_LIB!"
112+
) else (
113+
set "_CLASS_PATH=!_CLASS_PATH!%_PSEP%!_LIB!"
114+
)
115+
)
116+
)
117+
goto :eof
118+
122119
@rem #########################################################################
123120
@rem ## Cleanups
124121

dist/bin/scaladoc

Lines changed: 1 addition & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -53,62 +53,7 @@ addScrip() {
5353
}
5454

5555
classpathArgs () {
56-
CLASS_PATH=""
57-
CLASS_PATH+="$(find_lib "*scaladoc*")$PSEP"
58-
CLASS_PATH+="$(find_lib "*scala3-compiler*")$PSEP"
59-
CLASS_PATH+="$(find_lib "*scala3-interfaces*")$PSEP"
60-
CLASS_PATH+="$(find_lib "*scala3-library*")$PSEP"
61-
CLASS_PATH+="$(find_lib "*tasty-core*")$PSEP"
62-
CLASS_PATH+="$(find_lib "*scala3-tasty-inspector*")$PSEP"
63-
CLASS_PATH+="$(find_lib "*flexmark-0*")$PSEP"
64-
CLASS_PATH+="$(find_lib "*flexmark*")$PSEP"
65-
CLASS_PATH+="$(find_lib "*flexmark-ext-anchorlink*")$PSEP"
66-
CLASS_PATH+="$(find_lib "*flexmark-ext-autolink*")$PSEP"
67-
CLASS_PATH+="$(find_lib "*flexmark-ext-emoji*")$PSEP"
68-
CLASS_PATH+="$(find_lib "*flexmark-ext-gfm-strikethrough*")$PSEP"
69-
CLASS_PATH+="$(find_lib "*flexmark-ext-gfm-tasklist*")$PSEP"
70-
CLASS_PATH+="$(find_lib "*flexmark-ext-wikilink*")$PSEP"
71-
CLASS_PATH+="$(find_lib "*flexmark-ext-yaml-front-matter*")$PSEP"
72-
CLASS_PATH+="$(find_lib "*flexmark-ext-tables*")$PSEP"
73-
CLASS_PATH+="$(find_lib "*flexmark-ext-ins*")$PSEP"
74-
CLASS_PATH+="$(find_lib "*flexmark-ext-superscript*")$PSEP"
75-
CLASS_PATH+="$(find_lib "*flexmark-util*")$PSEP"
76-
CLASS_PATH+="$(find_lib "*flexmark-util-ast*")$PSEP"
77-
CLASS_PATH+="$(find_lib "*flexmark-util-data*")$PSEP"
78-
CLASS_PATH+="$(find_lib "*flexmark-util-dependency*")$PSEP"
79-
CLASS_PATH+="$(find_lib "*flexmark-util-misc*")$PSEP"
80-
CLASS_PATH+="$(find_lib "*flexmark-util-format*")$PSEP"
81-
CLASS_PATH+="$(find_lib "*flexmark-util-sequence*")$PSEP"
82-
CLASS_PATH+="$(find_lib "*flexmark-util-builder*")$PSEP"
83-
CLASS_PATH+="$(find_lib "*flexmark-util-collection*")$PSEP"
84-
CLASS_PATH+="$(find_lib "*flexmark-util-visitor*")$PSEP"
85-
CLASS_PATH+="$(find_lib "*flexmark-util-options*")$PSEP"
86-
CLASS_PATH+="$(find_lib "*flexmark-util-html*")$PSEP"
87-
CLASS_PATH+="$(find_lib "*flexmark-formatter*")$PSEP"
88-
CLASS_PATH+="$(find_lib "*flexmark-ast*")$PSEP"
89-
CLASS_PATH+="$(find_lib "*liqp*")$PSEP"
90-
CLASS_PATH+="$(find_lib "*jsoup*")$PSEP"
91-
CLASS_PATH+="$(find_lib "*jackson-dataformat-yaml*")$PSEP"
92-
CLASS_PATH+="$(find_lib "*jackson-datatype-jsr310*")$PSEP"
93-
CLASS_PATH+="$(find_lib "*strftime4j*")$PSEP"
94-
CLASS_PATH+="$(find_lib "*scala-asm*")$PSEP"
95-
CLASS_PATH+="$(find_lib "*compiler-interface*")$PSEP"
96-
CLASS_PATH+="$(find_lib "*jline-reader*")$PSEP"
97-
CLASS_PATH+="$(find_lib "*jline-terminal-3*")$PSEP"
98-
CLASS_PATH+="$(find_lib "*jline-terminal-jna*")$PSEP"
99-
CLASS_PATH+="$(find_lib "*flexmark-formatter*")$PSEP"
100-
CLASS_PATH+="$(find_lib "*autolink-0.6*")$PSEP"
101-
CLASS_PATH+="$(find_lib "*flexmark-jira-converter*")$PSEP"
102-
CLASS_PATH+="$(find_lib "*antlr4*")$PSEP"
103-
CLASS_PATH+="$(find_lib "*jackson-annotations*")$PSEP"
104-
CLASS_PATH+="$(find_lib "*jackson-core*")$PSEP"
105-
CLASS_PATH+="$(find_lib "*jackson-databind*")$PSEP"
106-
CLASS_PATH+="$(find_lib "*snakeyaml*")$PSEP"
107-
CLASS_PATH+="$(find_lib "*scala-library*")$PSEP"
108-
CLASS_PATH+="$(find_lib "*protobuf-java*")$PSEP"
109-
CLASS_PATH+="$(find_lib "*util-interface*")$PSEP"
110-
CLASS_PATH+="$(find_lib "*jna-5*")$PSEP"
111-
CLASS_PATH+="$(find_lib "*antlr4-runtime*")$PSEP"
56+
CLASS_PATH="$(load_classpath "scaladoc" "$PSEP")"
11257

11358
jvm_cp_args="-classpath \"$CLASS_PATH\""
11459
}

dist/bin/scaladoc.bat

Lines changed: 15 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -105,60 +105,24 @@ goto :eof
105105

106106
@rem output parameter: _CLASS_PATH
107107
:classpathArgs
108-
set "_LIB_DIR=%_PROG_HOME%\lib"
109-
set _CLASS_PATH=
108+
set "_ETC_DIR=%_PROG_HOME%\etc"
110109
@rem keep list in sync with bash script `bin\scaladoc` !
111-
call :updateClasspath "scaladoc"
112-
call :updateClasspath "scala3-compiler"
113-
call :updateClasspath "scala3-interfaces"
114-
call :updateClasspath "scala3-library"
115-
call :updateClasspath "tasty-core"
116-
call :updateClasspath "scala3-tasty-inspector"
117-
call :updateClasspath "flexmark-0"
118-
call :updateClasspath "flexmark-html-parser"
119-
call :updateClasspath "flexmark-ext-anchorlink"
120-
call :updateClasspath "flexmark-ext-autolink"
121-
call :updateClasspath "flexmark-ext-emoji"
122-
call :updateClasspath "flexmark-ext-gfm-strikethrough"
123-
call :updateClasspath "flexmark-ext-gfm-tables"
124-
call :updateClasspath "flexmark-ext-gfm-tasklist"
125-
call :updateClasspath "flexmark-ext-wikilink"
126-
call :updateClasspath "flexmark-ext-yaml-front-matter"
127-
call :updateClasspath "liqp"
128-
call :updateClasspath "jsoup"
129-
call :updateClasspath "jackson-dataformat-yaml"
130-
call :updateClasspath "jackson-datatype-jsr310"
131-
call :updateClasspath "strftime4j"
132-
call :updateClasspath "scala-asm"
133-
call :updateClasspath "compiler-interface"
134-
call :updateClasspath "jline-reader"
135-
call :updateClasspath "jline-terminal-3"
136-
call :updateClasspath "jline-terminal-jna"
137-
call :updateClasspath "flexmark-util"
138-
call :updateClasspath "flexmark-formatter"
139-
call :updateClasspath "autolink-0.6"
140-
call :updateClasspath "flexmark-jira-converter"
141-
call :updateClasspath "antlr4"
142-
call :updateClasspath "jackson-annotations"
143-
call :updateClasspath "jackson-core"
144-
call :updateClasspath "jackson-databind"
145-
call :updateClasspath "snakeyaml"
146-
call :updateClasspath "scala-library"
147-
call :updateClasspath "protobuf-java"
148-
call :updateClasspath "util-interface"
149-
call :updateClasspath "jna-5"
150-
call :updateClasspath "flexmark-ext-tables"
151-
call :updateClasspath "flexmark-ext-ins"
152-
call :updateClasspath "flexmark-ext-superscript"
153-
call :updateClasspath "antlr4-runtime"
110+
call :loadClasspathFromFile
154111
goto :eof
155112

156-
@rem input parameter: %1=pattern for library file
157-
@rem output parameter: _CLASS_PATH
158-
:updateClasspath
159-
set "__PATTERN=%~1"
160-
for /f "delims=" %%f in ('dir /a-d /b "%_LIB_DIR%\*%__PATTERN%*" 2^>NUL') do (
161-
set "_CLASS_PATH=!_CLASS_PATH!%_LIB_DIR%\%%f%_PSEP%"
113+
@REM concatentate every line in "%_ETC_DIR%\scaladoc.classpath" with _PSEP
114+
:loadClasspathFromFile
115+
set _CLASS_PATH=
116+
if exist "%_ETC_DIR%\scaladoc.classpath" (
117+
for /f "usebackq delims=" %%i in ("%_ETC_DIR%\scaladoc.classpath") do (
118+
set "_LIB=%_PROG_HOME%\maven2\%%i"
119+
set "_LIB=!_LIB:/=\!"
120+
if not defined _CLASS_PATH (
121+
set "_CLASS_PATH=!_LIB!"
122+
) else (
123+
set "_CLASS_PATH=!_CLASS_PATH!%_PSEP%!_LIB!"
124+
)
125+
)
162126
)
163127
goto :eof
164128

project/Build.scala

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2127,7 +2127,12 @@ object Build {
21272127
republishRepo := target.value / "republish",
21282128
packResourceDir += (republishRepo.value / "bin" -> "bin"),
21292129
packResourceDir += (republishRepo.value / "maven2" -> "maven2"),
2130-
Compile / pack := (Compile / pack).dependsOn(republish).value,
2130+
packResourceDir += (republishRepo.value / "etc" -> "etc"),
2131+
republishCommandLibs +=
2132+
("scala" -> List("scala3-interfaces", "scala3-compiler", "scala3-library", "tasty-core", "scala3-staging", "scala3-tasty-inspector")),
2133+
republishCommandLibs +=
2134+
("scaladoc" -> List("scala3-interfaces", "scala3-compiler", "scala3-library", "tasty-core", "scala3-tasty-inspector", "scaladoc")),
2135+
Compile / pack := republishPack.value,
21312136
)
21322137

21332138
lazy val dist = project.asDist(Bootstrapped)

0 commit comments

Comments
 (0)