Admin/lib/Tools/makedist_bundle
changeset 60994 b1e324a0677c
parent 60031 9cecf02bf65b
child 60996 25e8efae71d7
--- a/Admin/lib/Tools/makedist_bundle	Thu Aug 20 21:14:58 2015 +0200
+++ b/Admin/lib/Tools/makedist_bundle	Fri Aug 21 15:02:42 2015 +0200
@@ -222,34 +222,47 @@
       "$ISABELLE_TARGET/src/Tools/jEdit/dist/properties/jEdit.props"
 
     (
-      cat "$ISABELLE_HOME/Admin/Windows/WinRun4J/Isabelle.ini"
-
+      echo -e "# Java runtime options"
       declare -a JAVA_ARGS=()
       eval "JAVA_ARGS=($ISABELLE_JAVA_SYSTEM_OPTIONS $JEDIT_JAVA_OPTIONS $JEDIT_SYSTEM_OPTIONS)"
-      A=2
       for ARG in "${JAVA_ARGS[@]}"
       do
-        echo -e "vmarg.$A=$ARG\r"
-        A=$[ $A + 1 ]
+        echo -e "$ARG\r"
       done
+    ) > "$ISABELLE_TARGET/${ISABELLE_NAME}.l4j.ini"
+
+    (
+      cd "$TMP"
+
+      APP_TEMPLATE="$ISABELLE_HOME/Admin/Windows/launch4j"
 
-      A=1
-      for ENTRY in "${DISTRIBITION_CLASSPATH[@]}"
-      do
-        ENTRY=$(echo "$ENTRY" | perl -p -e 's,/,\\\\,g;')
-        echo -e "classpath.$A=$ENTRY\r"
-        A=$[ $A + 1 ]
-      done
-    ) > "$ISABELLE_TARGET/${ISABELLE_NAME}.ini"
+      (
+        for ENTRY in "${DISTRIBITION_CLASSPATH[@]}"
+        do
+          ENTRY=$(echo "$ENTRY" | perl -p -e 's,/,\\\\,g;')
+          echo "    <cp>$ENTRY</cp>"
+        done
+      ) > exe_classpath
+      EXE_CLASSPATH="$(cat exe_classpath)"
 
-    cp "$TMP/windows_app/Isabelle.exe" "$ISABELLE_TARGET/${ISABELLE_NAME}.exe"
-    cp "$ISABELLE_HOME/Admin/Windows/WinRun4J/manifest.xml" "$ISABELLE_TARGET/${ISABELLE_NAME}.exe.manifest"
-    cp "$ISABELLE_HOME/Admin/Windows/Cygwin/Cygwin-Setup.bat" \
-      "$ISABELLE_HOME/Admin/Windows/Cygwin/Cygwin-Terminal.bat" "$ISABELLE_TARGET"
+      perl -p \
+        -e "s,{OUTFILE},$ISABELLE_TARGET/${ISABELLE_NAME}.exe,g;" \
+        -e "s,{ICON},$APP_TEMPLATE/isabelle_transparent.ico,g;" \
+        -e "s,{SPLASH},$APP_TEMPLATE/isabelle.bmp,g;" \
+        -e "s,{CLASSPATH},$EXE_CLASSPATH,g;" \
+        "$APP_TEMPLATE/isabelle.xml" > isabelle.xml
+
+      "windows_app/launch4j-${ISABELLE_PLATFORM_FAMILY}/launch4j" isabelle.xml
+
+      cp "$APP_TEMPLATE/manifest.xml" "$ISABELLE_TARGET/${ISABELLE_NAME}.exe.manifest"
+    )
 
     (
       cd "$ISABELLE_TARGET"
 
+      cp "$ISABELLE_HOME/Admin/Windows/Cygwin/Cygwin-Setup.bat" \
+        "$ISABELLE_HOME/Admin/Windows/Cygwin/Cygwin-Terminal.bat" .
+
       for NAME in postinstall rebaseall
       do
         cp -a "$ISABELLE_HOME/Admin/Windows/Cygwin/isabelle/$NAME" \