author | wenzelm |
Fri, 28 Jun 2013 14:05:12 +0200 | |
changeset 52471 | ff0e0bb81597 |
parent 52445 | 18a720984855 |
child 52539 | 7658f8d7b2dc |
permissions | -rwxr-xr-x |
34333 | 1 |
#!/usr/bin/env bash |
2 |
# |
|
34664 | 3 |
# Author: Makarius |
4 |
# |
|
5 |
# DESCRIPTION: Isabelle/jEdit interface wrapper |
|
6 |
||
34333 | 7 |
|
43285 | 8 |
## sources |
9 |
||
43320 | 10 |
declare -a SOURCES=( |
50450
358b6020f8b6
generalized notion of active area, where sendback is just one application;
wenzelm
parents:
50433
diff
changeset
|
11 |
"src/active.scala" |
43285 | 12 |
"src/dockable.scala" |
13 |
"src/document_model.scala" |
|
14 |
"src/document_view.scala" |
|
52445 | 15 |
"src/documentation_dockable.scala" |
50542
58bd88159f8f
fold handling within Pretty_Text_Area, based on formal document content, which is static here;
wenzelm
parents:
50450
diff
changeset
|
16 |
"src/fold_handling.scala" |
49570 | 17 |
"src/graphview_dockable.scala" |
43285 | 18 |
"src/html_panel.scala" |
48921
5d8d409b897e
support for direct hyperlinks, without the Hyperlinks plugin;
wenzelm
parents:
48791
diff
changeset
|
19 |
"src/hyperlink.scala" |
49726 | 20 |
"src/info_dockable.scala" |
50208 | 21 |
"src/isabelle.scala" |
43285 | 22 |
"src/isabelle_encoding.scala" |
49246 | 23 |
"src/isabelle_logic.scala" |
43285 | 24 |
"src/isabelle_options.scala" |
25 |
"src/isabelle_sidekick.scala" |
|
49406 | 26 |
"src/jedit_lib.scala" |
49600 | 27 |
"src/jedit_main.scala" |
50202 | 28 |
"src/jedit_options.scala" |
44577
96b6388d06c4
separate module for jEdit primitives for loading theory files;
wenzelm
parents:
44565
diff
changeset
|
29 |
"src/jedit_thy_load.scala" |
50433
9131dadb2bf7
basic monitor panel, using the powerful jfreechart library;
wenzelm
parents:
50416
diff
changeset
|
30 |
"src/monitor_dockable.scala" |
51071
b7e7557e80b5
some native Mac OS X support, notably quit_handler (important for dialog on unsaved changes);
wenzelm
parents:
50795
diff
changeset
|
31 |
"src/osx_adapter.scala" |
43285 | 32 |
"src/output_dockable.scala" |
33 |
"src/plugin.scala" |
|
49398
0fa4389c04f9
alternative output panel, based on Pretty_Text_Area, based on JEditEmbeddedTextArea;
wenzelm
parents:
49246
diff
changeset
|
34 |
"src/pretty_text_area.scala" |
49702 | 35 |
"src/pretty_tooltip.scala" |
43285 | 36 |
"src/protocol_dockable.scala" |
37 |
"src/raw_output_dockable.scala" |
|
48014
63021e59cbf0
separate README dockable, which allows to make it more prominent first and remove it later;
wenzelm
parents:
47995
diff
changeset
|
38 |
"src/readme_dockable.scala" |
50202 | 39 |
"src/rendering.scala" |
49411 | 40 |
"src/rich_text_area.scala" |
43285 | 41 |
"src/scala_console.scala" |
50143
4ff5d795ed08
dockable with buttons for symbols, grouped and sorted in tabs according to ~~/etc/symbols;
immler
parents:
50120
diff
changeset
|
42 |
"src/symbols_dockable.scala" |
48021
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
48014
diff
changeset
|
43 |
"src/syslog_dockable.scala" |
46572 | 44 |
"src/text_overview.scala" |
50299 | 45 |
"src/theories_dockable.scala" |
51533 | 46 |
"src/timing_dockable.scala" |
43414 | 47 |
"src/token_markup.scala" |
43285 | 48 |
) |
49 |
||
43320 | 50 |
declare -a RESOURCES=( |
43286 | 51 |
"src/actions.xml" |
52 |
"src/dockables.xml" |
|
53 |
"src/Isabelle.props" |
|
50306 | 54 |
"src/jEdit.props" |
43286 | 55 |
"src/services.xml" |
43285 | 56 |
) |
57 |
||
58 |
||
34333 | 59 |
## diagnostics |
60 |
||
34664 | 61 |
PRG="$(basename "$0")" |
62 |
||
43284
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
63 |
function usage() |
34333 | 64 |
{ |
65 |
echo |
|
34664 | 66 |
echo "Usage: isabelle $PRG [OPTIONS] [FILES ...]" |
34333 | 67 |
echo |
68 |
echo " Options are:" |
|
69 |
echo " -J OPTION add JVM runtime option" |
|
34409 | 70 |
echo " (default JEDIT_JAVA_OPTIONS=$JEDIT_JAVA_OPTIONS)" |
43285 | 71 |
echo " -b build only" |
48791 | 72 |
echo " -d DIR include session directory" |
43285 | 73 |
echo " -f fresh build" |
34333 | 74 |
echo " -j OPTION add jEdit runtime option" |
75 |
echo " (default JEDIT_OPTIONS=$JEDIT_OPTIONS)" |
|
50403
87868964733c
more uniform default logic, using settings, options, args etc.;
wenzelm
parents:
50373
diff
changeset
|
76 |
echo " -l NAME logic session name" |
34333 | 77 |
echo " -m MODE add print mode for output" |
50405
366c4a602500
clarified build_dialog: regular up-to-date check (extra cost of approx. 5s startup for HOL);
wenzelm
parents:
50403
diff
changeset
|
78 |
echo " -n no build dialog for session image on startup" |
50373 | 79 |
echo " -s system build mode for session image" |
34333 | 80 |
echo |
50550 | 81 |
echo "Start jEdit with Isabelle plugin setup and open theory FILES" |
50114 | 82 |
echo "(default \"$USER_HOME/Scratch.thy\")." |
34333 | 83 |
echo |
84 |
exit 1 |
|
85 |
} |
|
86 |
||
43284
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
87 |
function fail() |
34333 | 88 |
{ |
89 |
echo "$1" >&2 |
|
90 |
exit 2 |
|
91 |
} |
|
92 |
||
43284
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
93 |
function failed() |
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
94 |
{ |
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
95 |
fail "Failed!" |
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
96 |
} |
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
97 |
|
34333 | 98 |
|
99 |
## process command line |
|
100 |
||
101 |
# options |
|
102 |
||
50546 | 103 |
declare -a BUILD_DIALOG_OPTIONS=(-L jedit_logic) |
50373 | 104 |
|
43285 | 105 |
BUILD_ONLY=false |
106 |
BUILD_JARS="jars" |
|
48791 | 107 |
JEDIT_SESSION_DIRS="" |
50403
87868964733c
more uniform default logic, using settings, options, args etc.;
wenzelm
parents:
50373
diff
changeset
|
108 |
JEDIT_LOGIC="" |
34333 | 109 |
JEDIT_PRINT_MODE="" |
50405
366c4a602500
clarified build_dialog: regular up-to-date check (extra cost of approx. 5s startup for HOL);
wenzelm
parents:
50403
diff
changeset
|
110 |
NO_BUILD="false" |
34333 | 111 |
|
43284
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
112 |
function getoptions() |
34780 | 113 |
{ |
114 |
OPTIND=1 |
|
50405
366c4a602500
clarified build_dialog: regular up-to-date check (extra cost of approx. 5s startup for HOL);
wenzelm
parents:
50403
diff
changeset
|
115 |
while getopts "J:bd:fj:l:m:ns" OPT |
34780 | 116 |
do |
117 |
case "$OPT" in |
|
118 |
J) |
|
119 |
JAVA_ARGS["${#JAVA_ARGS[@]}"]="$OPTARG" |
|
120 |
;; |
|
43285 | 121 |
b) |
122 |
BUILD_ONLY=true |
|
123 |
;; |
|
48791 | 124 |
d) |
125 |
if [ -z "$JEDIT_SESSION_DIRS" ]; then |
|
126 |
JEDIT_SESSION_DIRS="$OPTARG" |
|
127 |
else |
|
128 |
JEDIT_SESSION_DIRS="$JEDIT_SESSION_DIRS:$OPTARG" |
|
129 |
fi |
|
50373 | 130 |
BUILD_DIALOG_OPTIONS["${#BUILD_DIALOG_OPTIONS[@]}"]="-d" |
131 |
BUILD_DIALOG_OPTIONS["${#BUILD_DIALOG_OPTIONS[@]}"]="$OPTARG" |
|
48791 | 132 |
;; |
43285 | 133 |
f) |
134 |
BUILD_JARS="jars_fresh" |
|
135 |
;; |
|
34780 | 136 |
j) |
137 |
ARGS["${#ARGS[@]}"]="$OPTARG" |
|
138 |
;; |
|
139 |
l) |
|
50546 | 140 |
BUILD_DIALOG_OPTIONS["${#BUILD_DIALOG_OPTIONS[@]}"]="-l" |
141 |
BUILD_DIALOG_OPTIONS["${#BUILD_DIALOG_OPTIONS[@]}"]="$OPTARG" |
|
34780 | 142 |
JEDIT_LOGIC="$OPTARG" |
143 |
;; |
|
144 |
m) |
|
145 |
if [ -z "$JEDIT_PRINT_MODE" ]; then |
|
146 |
JEDIT_PRINT_MODE="$OPTARG" |
|
147 |
else |
|
148 |
JEDIT_PRINT_MODE="$JEDIT_PRINT_MODE,$OPTARG" |
|
149 |
fi |
|
150 |
;; |
|
50405
366c4a602500
clarified build_dialog: regular up-to-date check (extra cost of approx. 5s startup for HOL);
wenzelm
parents:
50403
diff
changeset
|
151 |
n) |
366c4a602500
clarified build_dialog: regular up-to-date check (extra cost of approx. 5s startup for HOL);
wenzelm
parents:
50403
diff
changeset
|
152 |
NO_BUILD="true" |
366c4a602500
clarified build_dialog: regular up-to-date check (extra cost of approx. 5s startup for HOL);
wenzelm
parents:
50403
diff
changeset
|
153 |
;; |
50373 | 154 |
s) |
155 |
BUILD_DIALOG_OPTIONS["${#BUILD_DIALOG_OPTIONS[@]}"]="-s" |
|
156 |
;; |
|
34780 | 157 |
\?) |
158 |
usage |
|
159 |
;; |
|
160 |
esac |
|
161 |
done |
|
162 |
} |
|
34581
abab3a577e10
slightly more robust treatment of options via arrays;
wenzelm
parents:
34412
diff
changeset
|
163 |
|
38257
f0fd14a9c11f
clarified JEDIT_JAVA_OPTIONS vs. JEDIT_SYSTEM_OPTIONS -- discontinued JEDIT_APPLE_PROPERTIES;
wenzelm
parents:
34881
diff
changeset
|
164 |
declare -a JAVA_ARGS; eval "JAVA_ARGS=($JEDIT_JAVA_OPTIONS $JEDIT_SYSTEM_OPTIONS)" |
34843
eb8806a2e348
define scala.home, for more robust startup of Scala tools, notably the compiler;
wenzelm
parents:
34790
diff
changeset
|
165 |
[ -n "$SCALA_HOME" ] && JAVA_ARGS["${#JAVA_ARGS[@]}"]="-Dscala.home=$SCALA_HOME" |
eb8806a2e348
define scala.home, for more robust startup of Scala tools, notably the compiler;
wenzelm
parents:
34790
diff
changeset
|
166 |
|
34780 | 167 |
declare -a ARGS; eval "ARGS=($JEDIT_OPTIONS)" |
34333 | 168 |
|
34780 | 169 |
declare -a OPTIONS; eval "OPTIONS=($ISABELLE_JEDIT_OPTIONS)" |
170 |
getoptions "${OPTIONS[@]}" |
|
171 |
||
172 |
getoptions "$@" |
|
34333 | 173 |
shift $(($OPTIND - 1)) |
174 |
||
175 |
||
176 |
# args |
|
177 |
||
44485
2f0a34fc4d2d
back to tradition Scratch.thy default -- execution wrt. perspective overcomes the main problems of 226563829580;
wenzelm
parents:
43695
diff
changeset
|
178 |
if [ "$#" -eq 0 ]; then |
50120 | 179 |
ARGS["${#ARGS[@]}"]="$(jvmpath "$USER_HOME/Scratch.thy")" |
44485
2f0a34fc4d2d
back to tradition Scratch.thy default -- execution wrt. perspective overcomes the main problems of 226563829580;
wenzelm
parents:
43695
diff
changeset
|
180 |
else |
2f0a34fc4d2d
back to tradition Scratch.thy default -- execution wrt. perspective overcomes the main problems of 226563829580;
wenzelm
parents:
43695
diff
changeset
|
181 |
while [ "$#" -gt 0 ]; do |
2f0a34fc4d2d
back to tradition Scratch.thy default -- execution wrt. perspective overcomes the main problems of 226563829580;
wenzelm
parents:
43695
diff
changeset
|
182 |
ARGS["${#ARGS[@]}"]="$(jvmpath "$1")" |
2f0a34fc4d2d
back to tradition Scratch.thy default -- execution wrt. perspective overcomes the main problems of 226563829580;
wenzelm
parents:
43695
diff
changeset
|
183 |
shift |
2f0a34fc4d2d
back to tradition Scratch.thy default -- execution wrt. perspective overcomes the main problems of 226563829580;
wenzelm
parents:
43695
diff
changeset
|
184 |
done |
2f0a34fc4d2d
back to tradition Scratch.thy default -- execution wrt. perspective overcomes the main problems of 226563829580;
wenzelm
parents:
43695
diff
changeset
|
185 |
fi |
34333 | 186 |
|
187 |
||
43284
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
188 |
## dependencies |
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
189 |
|
49953 | 190 |
if [ -e "$ISABELLE_HOME/Admin/build" ]; then |
50782 | 191 |
"$ISABELLE_TOOL" browser -b || exit $? |
49953 | 192 |
if [ "$BUILD_JARS" = jars_fresh ]; then |
193 |
"$ISABELLE_TOOL" graphview -b -f || exit $? |
|
194 |
else |
|
49566
66cbf8bb4693
basic integration of graphview into document model;
wenzelm
parents:
49494
diff
changeset
|
195 |
"$ISABELLE_HOME/Admin/build" "$BUILD_JARS" || exit $? |
49953 | 196 |
"$ISABELLE_TOOL" graphview -b || exit $? |
197 |
fi |
|
198 |
fi |
|
43413 | 199 |
|
43523 | 200 |
PURE_JAR="$ISABELLE_HOME/lib/classes/ext/Pure.jar" |
49566
66cbf8bb4693
basic integration of graphview into document model;
wenzelm
parents:
49494
diff
changeset
|
201 |
GRAPHVIEW_JAR="$ISABELLE_HOME/lib/classes/ext/Graphview.jar" |
43413 | 202 |
|
43285 | 203 |
pushd "$JEDIT_HOME" >/dev/null || failed |
43284
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
204 |
|
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
205 |
JEDIT_JAR="$ISABELLE_JEDIT_BUILD_HOME/contrib/$ISABELLE_JEDIT_BUILD_VERSION/jedit.jar" |
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
206 |
|
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
207 |
JEDIT_JARS=( |
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
208 |
"$ISABELLE_JEDIT_BUILD_HOME/contrib/Console.jar" |
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
209 |
"$ISABELLE_JEDIT_BUILD_HOME/contrib/ErrorList.jar" |
50729 | 210 |
"$ISABELLE_JEDIT_BUILD_HOME/contrib/Highlight.jar" |
43284
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
211 |
"$ISABELLE_JEDIT_BUILD_HOME/contrib/SideKick.jar" |
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
212 |
"$ISABELLE_JEDIT_BUILD_HOME/contrib/cobra.jar" |
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
213 |
"$ISABELLE_JEDIT_BUILD_HOME/contrib/js.jar" |
52471
ff0e0bb81597
support for idea-icons (using ideaIC-129.354/platform/icons/src from IntelliJ IDEA Community Edition 12.1.2);
wenzelm
parents:
52445
diff
changeset
|
214 |
"$ISABELLE_JEDIT_BUILD_HOME/contrib/idea-icons.jar" |
43284
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
215 |
) |
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
216 |
|
50433
9131dadb2bf7
basic monitor panel, using the powerful jfreechart library;
wenzelm
parents:
50416
diff
changeset
|
217 |
declare -a JFREECHART_JARS=() |
9131dadb2bf7
basic monitor panel, using the powerful jfreechart library;
wenzelm
parents:
50416
diff
changeset
|
218 |
for NAME in $JFREECHART_JAR_NAMES |
9131dadb2bf7
basic monitor panel, using the powerful jfreechart library;
wenzelm
parents:
50416
diff
changeset
|
219 |
do |
9131dadb2bf7
basic monitor panel, using the powerful jfreechart library;
wenzelm
parents:
50416
diff
changeset
|
220 |
JFREECHART_JARS["${#JFREECHART_JARS[@]}"]="$JFREECHART_HOME/lib/$NAME" |
9131dadb2bf7
basic monitor panel, using the powerful jfreechart library;
wenzelm
parents:
50416
diff
changeset
|
221 |
done |
9131dadb2bf7
basic monitor panel, using the powerful jfreechart library;
wenzelm
parents:
50416
diff
changeset
|
222 |
|
43284
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
223 |
|
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
224 |
# target |
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
225 |
|
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
226 |
TARGET="dist/jars/Isabelle-jEdit.jar" |
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
227 |
|
43384 | 228 |
declare -a UPDATED=() |
229 |
||
43285 | 230 |
if [ "$BUILD_JARS" = jars_fresh ]; then |
231 |
OUTDATED=true |
|
232 |
else |
|
233 |
OUTDATED=false |
|
43368
0dc67b3cf8a5
check source dependencies only if jedit_build component is available;
wenzelm
parents:
43320
diff
changeset
|
234 |
if [ ! -e "$TARGET" ]; then |
0dc67b3cf8a5
check source dependencies only if jedit_build component is available;
wenzelm
parents:
43320
diff
changeset
|
235 |
OUTDATED=true |
43384 | 236 |
else |
237 |
if [ -n "$ISABELLE_JEDIT_BUILD_HOME" ]; then |
|
49566
66cbf8bb4693
basic integration of graphview into document model;
wenzelm
parents:
49494
diff
changeset
|
238 |
declare -a DEPS=( |
51504 | 239 |
"$JEDIT_JAR" "${JEDIT_JARS[@]}" "${JFREECHART_JARS[@]}" "$XZ_JAVA_HOME/lib/xz.jar" |
49566
66cbf8bb4693
basic integration of graphview into document model;
wenzelm
parents:
49494
diff
changeset
|
240 |
"$PURE_JAR" "$GRAPHVIEW_JAR" "${SOURCES[@]}" "${RESOURCES[@]}" |
66cbf8bb4693
basic integration of graphview into document model;
wenzelm
parents:
49494
diff
changeset
|
241 |
) |
47666
cf5fe7eb6793
pretend jedit is up-to-date if this is not a repository -- avoid accidental build attempts after touching files etc.;
wenzelm
parents:
47115
diff
changeset
|
242 |
elif [ -e "$ISABELLE_HOME/Admin/build" ]; then |
49566
66cbf8bb4693
basic integration of graphview into document model;
wenzelm
parents:
49494
diff
changeset
|
243 |
declare -a DEPS=("$PURE_JAR" "$GRAPHVIEW_JAR" "${SOURCES[@]}" "${RESOURCES[@]}") |
43384 | 244 |
else |
47666
cf5fe7eb6793
pretend jedit is up-to-date if this is not a repository -- avoid accidental build attempts after touching files etc.;
wenzelm
parents:
47115
diff
changeset
|
245 |
declare -a DEPS=() |
43384 | 246 |
fi |
247 |
for DEP in "${DEPS[@]}" |
|
43368
0dc67b3cf8a5
check source dependencies only if jedit_build component is available;
wenzelm
parents:
43320
diff
changeset
|
248 |
do |
43384 | 249 |
[ ! -e "$DEP" ] && fail "Missing file: $DEP" |
250 |
[ "$DEP" -nt "$TARGET" ] && { |
|
251 |
OUTDATED=true |
|
252 |
UPDATED["${#UPDATED[@]}"]="$DEP" |
|
253 |
} |
|
43368
0dc67b3cf8a5
check source dependencies only if jedit_build component is available;
wenzelm
parents:
43320
diff
changeset
|
254 |
done |
0dc67b3cf8a5
check source dependencies only if jedit_build component is available;
wenzelm
parents:
43320
diff
changeset
|
255 |
fi |
43285 | 256 |
fi |
43284
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
257 |
|
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
258 |
|
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
259 |
# build |
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
260 |
|
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
261 |
if [ "$OUTDATED" = true ] |
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
262 |
then |
43405 | 263 |
echo "### Building Isabelle/jEdit ..." |
264 |
||
43384 | 265 |
[ "${#UPDATED[@]}" -gt 0 ] && { |
43405 | 266 |
echo "Changed files:" |
43384 | 267 |
for FILE in "${UPDATED[@]}" |
268 |
do |
|
269 |
echo " $FILE" |
|
270 |
done |
|
271 |
} |
|
272 |
||
43284
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
273 |
[ -z "$ISABELLE_JEDIT_BUILD_HOME" ] && \ |
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
274 |
fail "Unknown ISABELLE_JEDIT_BUILD_HOME -- missing auxiliary component" |
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
275 |
|
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
276 |
rm -rf dist || failed |
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
277 |
mkdir -p dist dist/classes || failed |
43287 | 278 |
|
46502
3d43d4d4d071
more uniform / portable representation of the idea of "copy_dir" (NB: cp -f dereferences symlinks on GNU/Linux, but does not on old-school Unixen including BSD/Mac OS X);
wenzelm
parents:
45665
diff
changeset
|
279 |
cp -p -R -f "$ISABELLE_JEDIT_BUILD_HOME/contrib/$ISABELLE_JEDIT_BUILD_VERSION/." dist/. |
3d43d4d4d071
more uniform / portable representation of the idea of "copy_dir" (NB: cp -f dereferences symlinks on GNU/Linux, but does not on old-school Unixen including BSD/Mac OS X);
wenzelm
parents:
45665
diff
changeset
|
280 |
cp -p -R -f "${RESOURCES[@]}" dist/classes/. |
43287 | 281 |
cp src/jEdit.props dist/properties/. |
46502
3d43d4d4d071
more uniform / portable representation of the idea of "copy_dir" (NB: cp -f dereferences symlinks on GNU/Linux, but does not on old-school Unixen including BSD/Mac OS X);
wenzelm
parents:
45665
diff
changeset
|
282 |
cp -p -R -f src/modes/. dist/modes/. |
43284
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
283 |
|
43391 | 284 |
perl -i -e 'while (<>) { |
285 |
if (m/NAME="javacc"/) { |
|
286 |
print qq,<MODE NAME="isabelle" FILE="isabelle.xml" FILE_NAME_GLOB="*.thy"/>\n\n,; |
|
48366 | 287 |
print qq,<MODE NAME="isabelle-options" FILE="isabelle-options.xml"/>\n\n,; |
48575 | 288 |
print qq,<MODE NAME="isabelle-root" FILE="isabelle-root.xml" FILE_NAME_GLOB="ROOT"/>\n\n,; } |
43284
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
289 |
print; }' dist/modes/catalog |
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
290 |
|
47995
72f52cd7c633
include scala-compiler.jar in basic Isabelle/Scala environment, to make Isabelle/jEdit console work with scala-2.10.0-M3;
wenzelm
parents:
47849
diff
changeset
|
291 |
cp -p -R -f "${JEDIT_JARS[@]}" dist/jars/. || failed |
43284
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
292 |
( |
51504 | 293 |
for JAR in "$JEDIT_JAR" "${JEDIT_JARS[@]}" "${JFREECHART_JARS[@]}" "$XZ_JAVA_HOME/lib/xz.jar" \ |
294 |
"$PURE_JAR" "$GRAPHVIEW_JAR" "$SCALA_HOME/lib/scala-compiler.jar" |
|
43284
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
295 |
do |
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
296 |
CLASSPATH="$CLASSPATH:$JAR" |
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
297 |
done |
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
298 |
CLASSPATH="$(jvmpath "$CLASSPATH")" |
47009 | 299 |
exec "$SCALA_HOME/bin/scalac" $ISABELLE_SCALA_BUILD_OPTIONS -d dist/classes "${SOURCES[@]}" |
43284
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
300 |
) || fail "Failed to compile sources" |
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
301 |
|
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
302 |
cd dist/classes |
47115
1a05adae1cc9
more robust command invocation via ISABELLE_JDK_HOME or SCALA_HOME (NB: bash exec requires genuine executable, not function);
wenzelm
parents:
47113
diff
changeset
|
303 |
isabelle_jdk jar cf "../jars/Isabelle-jEdit.jar" * || failed |
43284
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
304 |
cd ../.. |
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
305 |
rm -rf dist/classes |
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
306 |
fi |
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
307 |
|
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
308 |
popd >/dev/null |
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
309 |
|
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
310 |
|
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
311 |
## main |
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
wenzelm
parents:
41380
diff
changeset
|
312 |
|
50795
69810ebe120f
refrain from writing to JEDIT_SETTINGS in BUILD_ONLY mode -- relevant for makedist;
wenzelm
parents:
50782
diff
changeset
|
313 |
if [ "$BUILD_ONLY" = false ]; then |
69810ebe120f
refrain from writing to JEDIT_SETTINGS in BUILD_ONLY mode -- relevant for makedist;
wenzelm
parents:
50782
diff
changeset
|
314 |
mkdir -p "$JEDIT_SETTINGS/DockableWindowManager" |
34880 | 315 |
|
50795
69810ebe120f
refrain from writing to JEDIT_SETTINGS in BUILD_ONLY mode -- relevant for makedist;
wenzelm
parents:
50782
diff
changeset
|
316 |
if [ ! -e "$JEDIT_SETTINGS/perspective.xml" ]; then |
69810ebe120f
refrain from writing to JEDIT_SETTINGS in BUILD_ONLY mode -- relevant for makedist;
wenzelm
parents:
50782
diff
changeset
|
317 |
cat > "$JEDIT_SETTINGS/DockableWindowManager/perspective-view0.xml" <<EOF |
48014
63021e59cbf0
separate README dockable, which allows to make it more prominent first and remove it later;
wenzelm
parents:
47995
diff
changeset
|
318 |
<DOCKING LEFT="" TOP="" RIGHT="" BOTTOM="isabelle-readme" LEFT_POS="0" TOP_POS="0" RIGHT_POS="250" BOTTOM_POS="250" /> |
34880 | 319 |
EOF |
320 |
cat > "$JEDIT_SETTINGS/perspective.xml" <<EOF |
|
321 |
<?xml version="1.0" encoding="UTF-8" ?> |
|
322 |
<!DOCTYPE PERSPECTIVE SYSTEM "perspective.dtd"> |
|
323 |
<PERSPECTIVE> |
|
324 |
<VIEW PLAIN="FALSE"> |
|
325 |
<GEOMETRY X="0" Y="35" WIDTH="1072" HEIGHT="787" EXT_STATE="0" /> |
|
326 |
</VIEW> |
|
327 |
</PERSPECTIVE> |
|
328 |
EOF |
|
50795
69810ebe120f
refrain from writing to JEDIT_SETTINGS in BUILD_ONLY mode -- relevant for makedist;
wenzelm
parents:
50782
diff
changeset
|
329 |
fi |
34880 | 330 |
|
50416
2e1b47e22fc6
more rigorous "build only" mode: avoid build dialog of logic image and its potential need for GUI display;
wenzelm
parents:
50405
diff
changeset
|
331 |
if [ "$NO_BUILD" = false ]; then |
50546 | 332 |
"$ISABELLE_TOOL" build_dialog "${BUILD_DIALOG_OPTIONS[@]}" |
50416
2e1b47e22fc6
more rigorous "build only" mode: avoid build dialog of logic image and its potential need for GUI display;
wenzelm
parents:
50405
diff
changeset
|
333 |
RC="$?" |
2e1b47e22fc6
more rigorous "build only" mode: avoid build dialog of logic image and its potential need for GUI display;
wenzelm
parents:
50405
diff
changeset
|
334 |
[ "$RC" = 0 ] || exit "$RC" |
2e1b47e22fc6
more rigorous "build only" mode: avoid build dialog of logic image and its potential need for GUI display;
wenzelm
parents:
50405
diff
changeset
|
335 |
fi |
2e1b47e22fc6
more rigorous "build only" mode: avoid build dialog of logic image and its potential need for GUI display;
wenzelm
parents:
50405
diff
changeset
|
336 |
|
48791 | 337 |
export JEDIT_SESSION_DIRS JEDIT_LOGIC JEDIT_PRINT_MODE |
34333 | 338 |
|
43285 | 339 |
exec "$ISABELLE_TOOL" java "${JAVA_ARGS[@]}" \ |
340 |
-jar "$(jvmpath "$JEDIT_HOME/dist/jedit.jar")" \ |
|
341 |
"-settings=$(jvmpath "$JEDIT_SETTINGS")" "${ARGS[@]}" |
|
50416
2e1b47e22fc6
more rigorous "build only" mode: avoid build dialog of logic image and its potential need for GUI display;
wenzelm
parents:
50405
diff
changeset
|
342 |
fi |