| author | wenzelm | 
| Wed, 09 Jan 2013 14:01:50 +0100 | |
| changeset 50782 | a26f7cf81d2f | 
| parent 50729 | a3ec244186cd | 
| child 50795 | 69810ebe120f | 
| 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"  | 
|
| 
50542
 
58bd88159f8f
fold handling within Pretty_Text_Area, based on formal document content, which is static here;
 
wenzelm 
parents: 
50450 
diff
changeset
 | 
15  | 
"src/fold_handling.scala"  | 
| 49570 | 16  | 
"src/graphview_dockable.scala"  | 
| 43285 | 17  | 
"src/html_panel.scala"  | 
| 
48921
 
5d8d409b897e
support for direct hyperlinks, without the Hyperlinks plugin;
 
wenzelm 
parents: 
48791 
diff
changeset
 | 
18  | 
"src/hyperlink.scala"  | 
| 49726 | 19  | 
"src/info_dockable.scala"  | 
| 50208 | 20  | 
"src/isabelle.scala"  | 
| 43285 | 21  | 
"src/isabelle_encoding.scala"  | 
| 49246 | 22  | 
"src/isabelle_logic.scala"  | 
| 43285 | 23  | 
"src/isabelle_options.scala"  | 
24  | 
"src/isabelle_sidekick.scala"  | 
|
| 49406 | 25  | 
"src/jedit_lib.scala"  | 
| 49600 | 26  | 
"src/jedit_main.scala"  | 
| 50202 | 27  | 
"src/jedit_options.scala"  | 
| 
44577
 
96b6388d06c4
separate module for jEdit primitives for loading theory files;
 
wenzelm 
parents: 
44565 
diff
changeset
 | 
28  | 
"src/jedit_thy_load.scala"  | 
| 
50433
 
9131dadb2bf7
basic monitor panel, using the powerful jfreechart library;
 
wenzelm 
parents: 
50416 
diff
changeset
 | 
29  | 
"src/monitor_dockable.scala"  | 
| 43285 | 30  | 
"src/output_dockable.scala"  | 
31  | 
"src/plugin.scala"  | 
|
| 
49398
 
0fa4389c04f9
alternative output panel, based on Pretty_Text_Area, based on JEditEmbeddedTextArea;
 
wenzelm 
parents: 
49246 
diff
changeset
 | 
32  | 
"src/pretty_text_area.scala"  | 
| 49702 | 33  | 
"src/pretty_tooltip.scala"  | 
| 43285 | 34  | 
"src/protocol_dockable.scala"  | 
35  | 
"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
 | 
36  | 
"src/readme_dockable.scala"  | 
| 50202 | 37  | 
"src/rendering.scala"  | 
| 49411 | 38  | 
"src/rich_text_area.scala"  | 
| 43285 | 39  | 
"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
 | 
40  | 
"src/symbols_dockable.scala"  | 
| 
48021
 
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
 
wenzelm 
parents: 
48014 
diff
changeset
 | 
41  | 
"src/syslog_dockable.scala"  | 
| 46572 | 42  | 
"src/text_overview.scala"  | 
| 50299 | 43  | 
"src/theories_dockable.scala"  | 
| 43414 | 44  | 
"src/token_markup.scala"  | 
| 43285 | 45  | 
)  | 
46  | 
||
| 43320 | 47  | 
declare -a RESOURCES=(  | 
| 43286 | 48  | 
"src/actions.xml"  | 
49  | 
"src/dockables.xml"  | 
|
50  | 
"src/Isabelle.props"  | 
|
| 50306 | 51  | 
"src/jEdit.props"  | 
| 43286 | 52  | 
"src/services.xml"  | 
| 43285 | 53  | 
)  | 
54  | 
||
55  | 
||
| 34333 | 56  | 
## diagnostics  | 
57  | 
||
| 34664 | 58  | 
PRG="$(basename "$0")"  | 
59  | 
||
| 
43284
 
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
 
wenzelm 
parents: 
41380 
diff
changeset
 | 
60  | 
function usage()  | 
| 34333 | 61  | 
{
 | 
62  | 
echo  | 
|
| 34664 | 63  | 
echo "Usage: isabelle $PRG [OPTIONS] [FILES ...]"  | 
| 34333 | 64  | 
echo  | 
65  | 
echo " Options are:"  | 
|
66  | 
echo " -J OPTION add JVM runtime option"  | 
|
| 34409 | 67  | 
echo " (default JEDIT_JAVA_OPTIONS=$JEDIT_JAVA_OPTIONS)"  | 
| 43285 | 68  | 
echo " -b build only"  | 
| 48791 | 69  | 
echo " -d DIR include session directory"  | 
| 43285 | 70  | 
echo " -f fresh build"  | 
| 34333 | 71  | 
echo " -j OPTION add jEdit runtime option"  | 
72  | 
echo " (default JEDIT_OPTIONS=$JEDIT_OPTIONS)"  | 
|
| 
50403
 
87868964733c
more uniform default logic, using settings, options, args etc.;
 
wenzelm 
parents: 
50373 
diff
changeset
 | 
73  | 
echo " -l NAME logic session name"  | 
| 34333 | 74  | 
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
 | 
75  | 
echo " -n no build dialog for session image on startup"  | 
| 50373 | 76  | 
echo " -s system build mode for session image"  | 
| 34333 | 77  | 
echo  | 
| 50550 | 78  | 
echo "Start jEdit with Isabelle plugin setup and open theory FILES"  | 
| 50114 | 79  | 
echo "(default \"$USER_HOME/Scratch.thy\")."  | 
| 34333 | 80  | 
echo  | 
81  | 
exit 1  | 
|
82  | 
}  | 
|
83  | 
||
| 
43284
 
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
 
wenzelm 
parents: 
41380 
diff
changeset
 | 
84  | 
function fail()  | 
| 34333 | 85  | 
{
 | 
86  | 
echo "$1" >&2  | 
|
87  | 
exit 2  | 
|
88  | 
}  | 
|
89  | 
||
| 
43284
 
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
 
wenzelm 
parents: 
41380 
diff
changeset
 | 
90  | 
function failed()  | 
| 
 
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
 
wenzelm 
parents: 
41380 
diff
changeset
 | 
91  | 
{
 | 
| 
 
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
 
wenzelm 
parents: 
41380 
diff
changeset
 | 
92  | 
fail "Failed!"  | 
| 
 
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
 
wenzelm 
parents: 
41380 
diff
changeset
 | 
93  | 
}  | 
| 
 
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
 
wenzelm 
parents: 
41380 
diff
changeset
 | 
94  | 
|
| 34333 | 95  | 
|
96  | 
## process command line  | 
|
97  | 
||
98  | 
# options  | 
|
99  | 
||
| 50546 | 100  | 
declare -a BUILD_DIALOG_OPTIONS=(-L jedit_logic)  | 
| 50373 | 101  | 
|
| 43285 | 102  | 
BUILD_ONLY=false  | 
103  | 
BUILD_JARS="jars"  | 
|
| 48791 | 104  | 
JEDIT_SESSION_DIRS=""  | 
| 
50403
 
87868964733c
more uniform default logic, using settings, options, args etc.;
 
wenzelm 
parents: 
50373 
diff
changeset
 | 
105  | 
JEDIT_LOGIC=""  | 
| 34333 | 106  | 
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
 | 
107  | 
NO_BUILD="false"  | 
| 34333 | 108  | 
|
| 
43284
 
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
 
wenzelm 
parents: 
41380 
diff
changeset
 | 
109  | 
function getoptions()  | 
| 34780 | 110  | 
{
 | 
111  | 
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
 | 
112  | 
while getopts "J:bd:fj:l:m:ns" OPT  | 
| 34780 | 113  | 
do  | 
114  | 
case "$OPT" in  | 
|
115  | 
J)  | 
|
116  | 
        JAVA_ARGS["${#JAVA_ARGS[@]}"]="$OPTARG"
 | 
|
117  | 
;;  | 
|
| 43285 | 118  | 
b)  | 
119  | 
BUILD_ONLY=true  | 
|
120  | 
;;  | 
|
| 48791 | 121  | 
d)  | 
122  | 
if [ -z "$JEDIT_SESSION_DIRS" ]; then  | 
|
123  | 
JEDIT_SESSION_DIRS="$OPTARG"  | 
|
124  | 
else  | 
|
125  | 
JEDIT_SESSION_DIRS="$JEDIT_SESSION_DIRS:$OPTARG"  | 
|
126  | 
fi  | 
|
| 50373 | 127  | 
        BUILD_DIALOG_OPTIONS["${#BUILD_DIALOG_OPTIONS[@]}"]="-d"
 | 
128  | 
        BUILD_DIALOG_OPTIONS["${#BUILD_DIALOG_OPTIONS[@]}"]="$OPTARG"
 | 
|
| 48791 | 129  | 
;;  | 
| 43285 | 130  | 
f)  | 
131  | 
BUILD_JARS="jars_fresh"  | 
|
132  | 
;;  | 
|
| 34780 | 133  | 
j)  | 
134  | 
        ARGS["${#ARGS[@]}"]="$OPTARG"
 | 
|
135  | 
;;  | 
|
136  | 
l)  | 
|
| 50546 | 137  | 
        BUILD_DIALOG_OPTIONS["${#BUILD_DIALOG_OPTIONS[@]}"]="-l"
 | 
138  | 
        BUILD_DIALOG_OPTIONS["${#BUILD_DIALOG_OPTIONS[@]}"]="$OPTARG"
 | 
|
| 34780 | 139  | 
JEDIT_LOGIC="$OPTARG"  | 
140  | 
;;  | 
|
141  | 
m)  | 
|
142  | 
if [ -z "$JEDIT_PRINT_MODE" ]; then  | 
|
143  | 
JEDIT_PRINT_MODE="$OPTARG"  | 
|
144  | 
else  | 
|
145  | 
JEDIT_PRINT_MODE="$JEDIT_PRINT_MODE,$OPTARG"  | 
|
146  | 
fi  | 
|
147  | 
;;  | 
|
| 
50405
 
366c4a602500
clarified build_dialog: regular up-to-date check (extra cost of approx. 5s startup for HOL);
 
wenzelm 
parents: 
50403 
diff
changeset
 | 
148  | 
n)  | 
| 
 
366c4a602500
clarified build_dialog: regular up-to-date check (extra cost of approx. 5s startup for HOL);
 
wenzelm 
parents: 
50403 
diff
changeset
 | 
149  | 
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
 | 
150  | 
;;  | 
| 50373 | 151  | 
s)  | 
152  | 
        BUILD_DIALOG_OPTIONS["${#BUILD_DIALOG_OPTIONS[@]}"]="-s"
 | 
|
153  | 
;;  | 
|
| 34780 | 154  | 
\?)  | 
155  | 
usage  | 
|
156  | 
;;  | 
|
157  | 
esac  | 
|
158  | 
done  | 
|
159  | 
}  | 
|
| 
34581
 
abab3a577e10
slightly more robust treatment of options via arrays;
 
wenzelm 
parents: 
34412 
diff
changeset
 | 
160  | 
|
| 
38257
 
f0fd14a9c11f
clarified JEDIT_JAVA_OPTIONS vs. JEDIT_SYSTEM_OPTIONS -- discontinued JEDIT_APPLE_PROPERTIES;
 
wenzelm 
parents: 
34881 
diff
changeset
 | 
161  | 
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
 | 
162  | 
[ -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
 | 
163  | 
|
| 34780 | 164  | 
declare -a ARGS; eval "ARGS=($JEDIT_OPTIONS)"  | 
| 34333 | 165  | 
|
| 34780 | 166  | 
declare -a OPTIONS; eval "OPTIONS=($ISABELLE_JEDIT_OPTIONS)"  | 
167  | 
getoptions "${OPTIONS[@]}"
 | 
|
168  | 
||
169  | 
getoptions "$@"  | 
|
| 34333 | 170  | 
shift $(($OPTIND - 1))  | 
171  | 
||
172  | 
||
173  | 
# args  | 
|
174  | 
||
| 
44485
 
2f0a34fc4d2d
back to tradition Scratch.thy default -- execution wrt. perspective overcomes the main problems of 226563829580;
 
wenzelm 
parents: 
43695 
diff
changeset
 | 
175  | 
if [ "$#" -eq 0 ]; then  | 
| 50120 | 176  | 
  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
 | 
177  | 
else  | 
| 
 
2f0a34fc4d2d
back to tradition Scratch.thy default -- execution wrt. perspective overcomes the main problems of 226563829580;
 
wenzelm 
parents: 
43695 
diff
changeset
 | 
178  | 
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
 | 
179  | 
    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
 | 
180  | 
shift  | 
| 
 
2f0a34fc4d2d
back to tradition Scratch.thy default -- execution wrt. perspective overcomes the main problems of 226563829580;
 
wenzelm 
parents: 
43695 
diff
changeset
 | 
181  | 
done  | 
| 
 
2f0a34fc4d2d
back to tradition Scratch.thy default -- execution wrt. perspective overcomes the main problems of 226563829580;
 
wenzelm 
parents: 
43695 
diff
changeset
 | 
182  | 
fi  | 
| 34333 | 183  | 
|
184  | 
||
| 
43284
 
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
 
wenzelm 
parents: 
41380 
diff
changeset
 | 
185  | 
## dependencies  | 
| 
 
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
 
wenzelm 
parents: 
41380 
diff
changeset
 | 
186  | 
|
| 49953 | 187  | 
if [ -e "$ISABELLE_HOME/Admin/build" ]; then  | 
| 50782 | 188  | 
"$ISABELLE_TOOL" browser -b || exit $?  | 
| 49953 | 189  | 
if [ "$BUILD_JARS" = jars_fresh ]; then  | 
190  | 
"$ISABELLE_TOOL" graphview -b -f || exit $?  | 
|
191  | 
else  | 
|
| 
49566
 
66cbf8bb4693
basic integration of graphview into document model;
 
wenzelm 
parents: 
49494 
diff
changeset
 | 
192  | 
"$ISABELLE_HOME/Admin/build" "$BUILD_JARS" || exit $?  | 
| 49953 | 193  | 
"$ISABELLE_TOOL" graphview -b || exit $?  | 
194  | 
fi  | 
|
195  | 
fi  | 
|
| 43413 | 196  | 
|
| 43523 | 197  | 
PURE_JAR="$ISABELLE_HOME/lib/classes/ext/Pure.jar"  | 
| 
49566
 
66cbf8bb4693
basic integration of graphview into document model;
 
wenzelm 
parents: 
49494 
diff
changeset
 | 
198  | 
GRAPHVIEW_JAR="$ISABELLE_HOME/lib/classes/ext/Graphview.jar"  | 
| 43413 | 199  | 
|
| 43285 | 200  | 
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
 | 
201  | 
|
| 
 
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
 
wenzelm 
parents: 
41380 
diff
changeset
 | 
202  | 
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
 | 
203  | 
|
| 
 
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
 
wenzelm 
parents: 
41380 
diff
changeset
 | 
204  | 
JEDIT_JARS=(  | 
| 
 
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
 
wenzelm 
parents: 
41380 
diff
changeset
 | 
205  | 
"$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
 | 
206  | 
"$ISABELLE_JEDIT_BUILD_HOME/contrib/ErrorList.jar"  | 
| 50729 | 207  | 
"$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
 | 
208  | 
"$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
 | 
209  | 
"$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
 | 
210  | 
"$ISABELLE_JEDIT_BUILD_HOME/contrib/js.jar"  | 
| 
 
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
 
wenzelm 
parents: 
41380 
diff
changeset
 | 
211  | 
)  | 
| 
 
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
 
wenzelm 
parents: 
41380 
diff
changeset
 | 
212  | 
|
| 
50433
 
9131dadb2bf7
basic monitor panel, using the powerful jfreechart library;
 
wenzelm 
parents: 
50416 
diff
changeset
 | 
213  | 
declare -a JFREECHART_JARS=()  | 
| 
 
9131dadb2bf7
basic monitor panel, using the powerful jfreechart library;
 
wenzelm 
parents: 
50416 
diff
changeset
 | 
214  | 
for NAME in $JFREECHART_JAR_NAMES  | 
| 
 
9131dadb2bf7
basic monitor panel, using the powerful jfreechart library;
 
wenzelm 
parents: 
50416 
diff
changeset
 | 
215  | 
do  | 
| 
 
9131dadb2bf7
basic monitor panel, using the powerful jfreechart library;
 
wenzelm 
parents: 
50416 
diff
changeset
 | 
216  | 
  JFREECHART_JARS["${#JFREECHART_JARS[@]}"]="$JFREECHART_HOME/lib/$NAME"
 | 
| 
 
9131dadb2bf7
basic monitor panel, using the powerful jfreechart library;
 
wenzelm 
parents: 
50416 
diff
changeset
 | 
217  | 
done  | 
| 
 
9131dadb2bf7
basic monitor panel, using the powerful jfreechart library;
 
wenzelm 
parents: 
50416 
diff
changeset
 | 
218  | 
|
| 
43284
 
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
 
wenzelm 
parents: 
41380 
diff
changeset
 | 
219  | 
|
| 
 
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
 
wenzelm 
parents: 
41380 
diff
changeset
 | 
220  | 
# target  | 
| 
 
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
 
wenzelm 
parents: 
41380 
diff
changeset
 | 
221  | 
|
| 
 
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
 
wenzelm 
parents: 
41380 
diff
changeset
 | 
222  | 
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
 | 
223  | 
|
| 43384 | 224  | 
declare -a UPDATED=()  | 
225  | 
||
| 43285 | 226  | 
if [ "$BUILD_JARS" = jars_fresh ]; then  | 
227  | 
OUTDATED=true  | 
|
228  | 
else  | 
|
229  | 
OUTDATED=false  | 
|
| 
43368
 
0dc67b3cf8a5
check source dependencies only if jedit_build component is available;
 
wenzelm 
parents: 
43320 
diff
changeset
 | 
230  | 
if [ ! -e "$TARGET" ]; then  | 
| 
 
0dc67b3cf8a5
check source dependencies only if jedit_build component is available;
 
wenzelm 
parents: 
43320 
diff
changeset
 | 
231  | 
OUTDATED=true  | 
| 43384 | 232  | 
else  | 
233  | 
if [ -n "$ISABELLE_JEDIT_BUILD_HOME" ]; then  | 
|
| 
49566
 
66cbf8bb4693
basic integration of graphview into document model;
 
wenzelm 
parents: 
49494 
diff
changeset
 | 
234  | 
declare -a DEPS=(  | 
| 
50433
 
9131dadb2bf7
basic monitor panel, using the powerful jfreechart library;
 
wenzelm 
parents: 
50416 
diff
changeset
 | 
235  | 
        "$JEDIT_JAR" "${JEDIT_JARS[@]}" "${JFREECHART_JARS[@]}"
 | 
| 
49566
 
66cbf8bb4693
basic integration of graphview into document model;
 
wenzelm 
parents: 
49494 
diff
changeset
 | 
236  | 
        "$PURE_JAR" "$GRAPHVIEW_JAR" "${SOURCES[@]}" "${RESOURCES[@]}"
 | 
| 
 
66cbf8bb4693
basic integration of graphview into document model;
 
wenzelm 
parents: 
49494 
diff
changeset
 | 
237  | 
)  | 
| 
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
 | 
238  | 
elif [ -e "$ISABELLE_HOME/Admin/build" ]; then  | 
| 
49566
 
66cbf8bb4693
basic integration of graphview into document model;
 
wenzelm 
parents: 
49494 
diff
changeset
 | 
239  | 
      declare -a DEPS=("$PURE_JAR" "$GRAPHVIEW_JAR" "${SOURCES[@]}" "${RESOURCES[@]}")
 | 
| 43384 | 240  | 
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
 | 
241  | 
declare -a DEPS=()  | 
| 43384 | 242  | 
fi  | 
243  | 
    for DEP in "${DEPS[@]}"
 | 
|
| 
43368
 
0dc67b3cf8a5
check source dependencies only if jedit_build component is available;
 
wenzelm 
parents: 
43320 
diff
changeset
 | 
244  | 
do  | 
| 43384 | 245  | 
[ ! -e "$DEP" ] && fail "Missing file: $DEP"  | 
246  | 
      [ "$DEP" -nt "$TARGET" ] && {
 | 
|
247  | 
OUTDATED=true  | 
|
248  | 
        UPDATED["${#UPDATED[@]}"]="$DEP"
 | 
|
249  | 
}  | 
|
| 
43368
 
0dc67b3cf8a5
check source dependencies only if jedit_build component is available;
 
wenzelm 
parents: 
43320 
diff
changeset
 | 
250  | 
done  | 
| 
 
0dc67b3cf8a5
check source dependencies only if jedit_build component is available;
 
wenzelm 
parents: 
43320 
diff
changeset
 | 
251  | 
fi  | 
| 43285 | 252  | 
fi  | 
| 
43284
 
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
 
wenzelm 
parents: 
41380 
diff
changeset
 | 
253  | 
|
| 
 
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
 
wenzelm 
parents: 
41380 
diff
changeset
 | 
254  | 
|
| 
 
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
 
wenzelm 
parents: 
41380 
diff
changeset
 | 
255  | 
# build  | 
| 
 
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
 
wenzelm 
parents: 
41380 
diff
changeset
 | 
256  | 
|
| 
 
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
 
wenzelm 
parents: 
41380 
diff
changeset
 | 
257  | 
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
 | 
258  | 
then  | 
| 43405 | 259  | 
echo "### Building Isabelle/jEdit ..."  | 
260  | 
||
| 43384 | 261  | 
  [ "${#UPDATED[@]}" -gt 0 ] && {
 | 
| 43405 | 262  | 
echo "Changed files:"  | 
| 43384 | 263  | 
    for FILE in "${UPDATED[@]}"
 | 
264  | 
do  | 
|
265  | 
echo " $FILE"  | 
|
266  | 
done  | 
|
267  | 
}  | 
|
268  | 
||
| 
43284
 
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
 
wenzelm 
parents: 
41380 
diff
changeset
 | 
269  | 
[ -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
 | 
270  | 
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
 | 
271  | 
|
| 
 
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
 
wenzelm 
parents: 
41380 
diff
changeset
 | 
272  | 
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
 | 
273  | 
mkdir -p dist dist/classes || failed  | 
| 43287 | 274  | 
|
| 
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
 | 
275  | 
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
 | 
276  | 
  cp -p -R -f "${RESOURCES[@]}" dist/classes/.
 | 
| 43287 | 277  | 
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
 | 
278  | 
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
 | 
279  | 
|
| 43391 | 280  | 
  perl -i -e 'while (<>) {
 | 
281  | 
    if (m/NAME="javacc"/) {
 | 
|
282  | 
print qq,<MODE NAME="isabelle" FILE="isabelle.xml" FILE_NAME_GLOB="*.thy"/>\n\n,;  | 
|
| 48366 | 283  | 
print qq,<MODE NAME="isabelle-options" FILE="isabelle-options.xml"/>\n\n,;  | 
| 48575 | 284  | 
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
 | 
285  | 
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
 | 
286  | 
|
| 
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
 | 
287  | 
  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
 | 
288  | 
(  | 
| 
50433
 
9131dadb2bf7
basic monitor panel, using the powerful jfreechart library;
 
wenzelm 
parents: 
50416 
diff
changeset
 | 
289  | 
    for JAR in "$JEDIT_JAR" "${JEDIT_JARS[@]}" "${JFREECHART_JARS[@]}" "$PURE_JAR" \
 | 
| 
 
9131dadb2bf7
basic monitor panel, using the powerful jfreechart library;
 
wenzelm 
parents: 
50416 
diff
changeset
 | 
290  | 
"$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
 | 
291  | 
do  | 
| 
 
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
 
wenzelm 
parents: 
41380 
diff
changeset
 | 
292  | 
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
 | 
293  | 
done  | 
| 
 
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
 
wenzelm 
parents: 
41380 
diff
changeset
 | 
294  | 
CLASSPATH="$(jvmpath "$CLASSPATH")"  | 
| 47009 | 295  | 
    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
 | 
296  | 
) || 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
 | 
297  | 
|
| 
 
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
 
wenzelm 
parents: 
41380 
diff
changeset
 | 
298  | 
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
 | 
299  | 
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
 | 
300  | 
cd ../..  | 
| 
 
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
 
wenzelm 
parents: 
41380 
diff
changeset
 | 
301  | 
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
 | 
302  | 
fi  | 
| 
 
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
 
wenzelm 
parents: 
41380 
diff
changeset
 | 
303  | 
|
| 
 
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
 
wenzelm 
parents: 
41380 
diff
changeset
 | 
304  | 
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
 | 
305  | 
|
| 
 
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
 
wenzelm 
parents: 
41380 
diff
changeset
 | 
306  | 
|
| 
 
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
 
wenzelm 
parents: 
41380 
diff
changeset
 | 
307  | 
## main  | 
| 
 
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
 
wenzelm 
parents: 
41380 
diff
changeset
 | 
308  | 
|
| 
 
04d473e883df
build jedit as part of regular startup script (in that case depending on jedit_build component);
 
wenzelm 
parents: 
41380 
diff
changeset
 | 
309  | 
# perspective  | 
| 34880 | 310  | 
|
311  | 
mkdir -p "$JEDIT_SETTINGS/DockableWindowManager"  | 
|
312  | 
||
313  | 
if [ ! -e "$JEDIT_SETTINGS/perspective.xml" ]; then  | 
|
314  | 
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
 | 
315  | 
<DOCKING LEFT="" TOP="" RIGHT="" BOTTOM="isabelle-readme" LEFT_POS="0" TOP_POS="0" RIGHT_POS="250" BOTTOM_POS="250" />  | 
| 34880 | 316  | 
EOF  | 
317  | 
cat > "$JEDIT_SETTINGS/perspective.xml" <<EOF  | 
|
318  | 
<?xml version="1.0" encoding="UTF-8" ?>  | 
|
319  | 
<!DOCTYPE PERSPECTIVE SYSTEM "perspective.dtd">  | 
|
320  | 
<PERSPECTIVE>  | 
|
321  | 
<VIEW PLAIN="FALSE">  | 
|
322  | 
<GEOMETRY X="0" Y="35" WIDTH="1072" HEIGHT="787" EXT_STATE="0" />  | 
|
323  | 
</VIEW>  | 
|
324  | 
</PERSPECTIVE>  | 
|
325  | 
EOF  | 
|
326  | 
fi  | 
|
327  | 
||
328  | 
||
| 50373 | 329  | 
# main  | 
| 34333 | 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 [ "$BUILD_ONLY" = false ]; then  | 
| 
 
2e1b47e22fc6
more rigorous "build only" mode: avoid build dialog of logic image and its potential need for GUI display;
 
wenzelm 
parents: 
50405 
diff
changeset
 | 
332  | 
if [ "$NO_BUILD" = false ]; then  | 
| 50546 | 333  | 
    "$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
 | 
334  | 
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  | 
[ "$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
 | 
336  | 
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
 | 
337  | 
|
| 48791 | 338  | 
export JEDIT_SESSION_DIRS JEDIT_LOGIC JEDIT_PRINT_MODE  | 
| 34333 | 339  | 
|
| 43285 | 340  | 
  exec "$ISABELLE_TOOL" java "${JAVA_ARGS[@]}" \
 | 
341  | 
-jar "$(jvmpath "$JEDIT_HOME/dist/jedit.jar")" \  | 
|
342  | 
    "-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
 | 
343  | 
fi  |