blob: a041f2d520ce4dd147a000d5c239fbbea7e7a0ea (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
JAVA_RELEASE=25
case "$(uname -s)" in
CYGWIN*|MINGW*|MSYS*) SEP=";" ;;
*) SEP=":" ;;
esac
MODULES="api service ui-console ui-desktop"
DEPS_api=""
DEPS_service="api"
DEPS_ui_console="api service"
DEPS_ui_desktop=""
RUNTIME_LIB_DIRS="pico jaxb gson openjfx"
EXECUTABLES="ui-console ui-desktop"
MAINCLASS_ui_console="market.guess.ui.console.App"
MAINCLASS_ui_desktop="market.guess.ui.desktop.Launcher"
JAVA_HOME_DIR=$(java -XshowSettings:properties -version 2>&1 | tr -d '\r' | sed -n 's/^ *java\.home = //p')
case "$(uname -s)" in
CYGWIN*|MINGW*|MSYS*)
JAVA_HOME_DIR=$(cygpath -u "$JAVA_HOME_DIR" 2>/dev/null || echo "$JAVA_HOME_DIR")
;;
esac
JAR="$JAVA_HOME_DIR/bin/jar"
[ -x "$JAR" ] || JAR="$JAVA_HOME_DIR/bin/jar.exe"
if [ ! -x "$JAR" ]; then
echo "Could not locate the 'jar' tool under $JAVA_HOME_DIR" >&2
exit 1
fi
is_shippable_jar() {
case "$1" in *-sources.jar | *-javadoc.jar | lib/jacoco/*) return 1 ;; *) return 0 ;; esac
}
LIBCP=""
for j in lib/*/*.jar; do
is_shippable_jar "$j" || continue
LIBCP="$LIBCP${LIBCP:+$SEP}$j"
done
TMP="${TMPDIR:-/tmp}/gm-build"
mkdir -p "$TMP"
deps_of() {
local v="DEPS_$(echo "$1" | tr '-' '_')"
eval "printf '%s' \"\${$v}\""
}
mainclass_of() {
local v="MAINCLASS_$(echo "$1" | tr '-' '_')"
eval "printf '%s' \"\${$v}\""
}
# JAR manifest lines are capped at 72 bytes; a raw "Key: value" line trips
# `line too long` once enough jars are on the Class-Path (openjfx pushed us
# over it). Fold per spec: continuation lines start with a single space.
write_manifest_attr() {
local file="$1" line="$2: $3"
: >"$file"
while [ "${#line}" -gt 72 ]; do
printf '%s\n' "${line:0:72}" >>"$file"
line=" ${line:72}"
done
printf '%s\n\n' "$line" >>"$file"
}
module_cp() {
local cp=""
for d in "$@"; do cp="$cp${cp:+$SEP}build/classes/$d"; done
printf '%s' "$cp"
}
|