353 tar -C "$TMP" -c -z -f "$BUNDLE_ARCHIVE" "$ISABELLE_NAME" || exit 2 |
358 tar -C "$TMP" -c -z -f "$BUNDLE_ARCHIVE" "$ISABELLE_NAME" || exit 2 |
354 |
359 |
355 |
360 |
356 # platform-specific setup (outside archive) |
361 # platform-specific setup (outside archive) |
357 |
362 |
358 if [ "$ISABELLE_PLATFORM_FAMILY" = linux -a "$PLATFORM_FAMILY" != macos -o "$ISABELLE_PLATFORM_FAMILY" = macos ] |
363 case "$PLATFORM_FAM" in |
359 then |
364 linux) |
360 case "$PLATFORM_FAM" in |
365 echo "application for $PLATFORM_FAMILY" |
361 linux) |
366 ln -s "${ISABELLE_NAME}_linux.tar.gz" "${ARCHIVE_DIR}/${ISABELLE_NAME}_app.tar.gz" |
362 echo "application for $PLATFORM_FAMILY" |
367 ;; |
363 ln -s "${ISABELLE_NAME}_linux.tar.gz" "${ARCHIVE_DIR}/${ISABELLE_NAME}_app.tar.gz" |
368 macos) |
364 ;; |
369 echo "application for $PLATFORM_FAMILY" |
365 macos) |
370 ( |
|
371 cd "$TMP" |
|
372 |
|
373 APP_TEMPLATE="$ISABELLE_HOME/Admin/MacOS" |
|
374 APP="dmg/${ISABELLE_NAME}.app" |
|
375 |
|
376 mkdir -p "dmg/.background" |
|
377 cp "$APP_TEMPLATE/dmg/background.png" "dmg/.background/" |
|
378 cp "$APP_TEMPLATE/dmg/DS_Store" "dmg/.DS_Store" |
|
379 ln -s /Applications "dmg/." |
|
380 |
|
381 for NAME in Java MacOS PlugIns Resources |
|
382 do |
|
383 mkdir -p "$APP/Contents/$NAME" |
|
384 done |
|
385 |
|
386 ( |
|
387 init_component "$JEDIT_HOME" |
|
388 |
|
389 cat "$APP_TEMPLATE/Info.plist-part1" |
|
390 |
|
391 declare -a OPTIONS=() |
|
392 eval "OPTIONS=($ISABELLE_JAVA_SYSTEM_OPTIONS $JEDIT_JAVA_SYSTEM_OPTIONS $JEDIT_JAVA_OPTIONS64)" |
|
393 for OPT in "${OPTIONS[@]}" |
|
394 do |
|
395 echo "<string>$OPT</string>" |
|
396 done |
|
397 echo "<string>-Disabelle.jedit_server={ISABELLE_NAME}</string>" |
|
398 echo "<string>-Dapple.awt.application.name={ISABELLE_NAME}</string>" |
|
399 |
|
400 cat "$APP_TEMPLATE/Info.plist-part2" |
|
401 ) | perl -p -e "s,{ISABELLE_NAME},${ISABELLE_NAME},g;" > "$APP/Contents/Info.plist" |
|
402 |
|
403 for ENTRY in "${DISTRIBITION_CLASSPATH[@]}" |
|
404 do |
|
405 ln -sf "../Resources/${ISABELLE_NAME}/$ENTRY" "$APP/Contents/Java" |
|
406 done |
|
407 |
|
408 cp -R "$APP_TEMPLATE/Resources/." "$APP/Contents/Resources/." |
|
409 |
|
410 ln -sf "../Resources/${ISABELLE_NAME}/contrib/jdk/x86_64-darwin" \ |
|
411 "$APP/Contents/PlugIns/bundled.jdk" |
|
412 |
|
413 cp macos_app/JavaAppLauncher "$APP/Contents/MacOS/." && \ |
|
414 chmod +x "$APP/Contents/MacOS/JavaAppLauncher" |
|
415 |
|
416 mv "$ISABELLE_NAME" "$APP/Contents/Resources/." |
|
417 ln -sf "../../Info.plist" "$APP/Contents/Resources/$ISABELLE_NAME/${ISABELLE_NAME}.plist" |
|
418 ln -sf "Contents/Resources/$ISABELLE_NAME" "$APP/Isabelle" |
|
419 |
|
420 rm -f "${ARCHIVE_DIR}/${ISABELLE_NAME}.dmg" |
|
421 tar -C dmg -czf "${ARCHIVE_DIR}/${ISABELLE_NAME}_dmg.tar.gz" . |
|
422 |
|
423 if [ -n "$REMOTE_MAC" ] |
|
424 then |
|
425 echo "$REMOTE_MAC: dmg for $PLATFORM_FAMILY" |
|
426 isabelle remote_dmg -V Isabelle "$REMOTE_MAC" \ |
|
427 "${ARCHIVE_DIR}/${ISABELLE_NAME}_dmg.tar.gz" "${ARCHIVE_DIR}/${ISABELLE_NAME}.dmg" |
|
428 fi |
|
429 ) |
|
430 ;; |
|
431 windows) |
|
432 ( |
|
433 if [ "$PLATFORM_FAMILY" = windows ]; then |
|
434 PLATFORM_SUFFIX="-win32" |
|
435 else |
|
436 PLATFORM_SUFFIX="-win64" |
|
437 fi |
|
438 |
|
439 cd "$TMP" |
|
440 rm -f "${ARCHIVE_DIR}/${ISABELLE_NAME}.7z" |
|
441 7z -y -bd a "$TMP/${ISABELLE_NAME}.7z" "$ISABELLE_NAME" || exit 2 |
|
442 |
366 echo "application for $PLATFORM_FAMILY" |
443 echo "application for $PLATFORM_FAMILY" |
367 ( |
444 ( |
368 cd "$TMP" |
445 cat "windows_app/7zsd_All.sfx" |
369 |
446 cat "$ISABELLE_HOME/Admin/Windows/Installer/sfx.txt" | \ |
370 APP_TEMPLATE="$ISABELLE_HOME/Admin/MacOS" |
447 perl -p -e "s,{ISABELLE_NAME},${ISABELLE_NAME},g;" |
371 APP="dmg/${ISABELLE_NAME}.app" |
448 cat "$TMP/${ISABELLE_NAME}.7z" |
372 |
449 ) > "${ARCHIVE_DIR}/${ISABELLE_NAME}${PLATFORM_SUFFIX}.exe" |
373 mkdir -p "dmg/.background" |
450 chmod +x "${ARCHIVE_DIR}/${ISABELLE_NAME}${PLATFORM_SUFFIX}.exe" |
374 cp "$APP_TEMPLATE/dmg/background.png" "dmg/.background/" |
451 ) |
375 cp "$APP_TEMPLATE/dmg/DS_Store" "dmg/.DS_Store" |
452 ;; |
376 ln -s /Applications "dmg/." |
453 *) |
377 |
454 ;; |
378 for NAME in Java MacOS PlugIns Resources |
455 esac |
379 do |
|
380 mkdir -p "$APP/Contents/$NAME" |
|
381 done |
|
382 |
|
383 ( |
|
384 cat "$APP_TEMPLATE/Info.plist-part1" |
|
385 |
|
386 declare -a OPTIONS=() |
|
387 eval "OPTIONS=($ISABELLE_JAVA_SYSTEM_OPTIONS $JEDIT_JAVA_SYSTEM_OPTIONS $JEDIT_JAVA_OPTIONS64)" |
|
388 for OPT in "${OPTIONS[@]}" |
|
389 do |
|
390 echo "<string>$OPT</string>" |
|
391 done |
|
392 echo "<string>-Disabelle.jedit_server={ISABELLE_NAME}</string>" |
|
393 echo "<string>-Dapple.awt.application.name={ISABELLE_NAME}</string>" |
|
394 |
|
395 cat "$APP_TEMPLATE/Info.plist-part2" |
|
396 ) | perl -p -e "s,{ISABELLE_NAME},${ISABELLE_NAME},g;" > "$APP/Contents/Info.plist" |
|
397 |
|
398 for ENTRY in "${DISTRIBITION_CLASSPATH[@]}" |
|
399 do |
|
400 ln -sf "../Resources/${ISABELLE_NAME}/$ENTRY" "$APP/Contents/Java" |
|
401 done |
|
402 |
|
403 cp -R "$APP_TEMPLATE/Resources/." "$APP/Contents/Resources/." |
|
404 |
|
405 ln -sf "../Resources/${ISABELLE_NAME}/contrib/jdk/x86_64-darwin" \ |
|
406 "$APP/Contents/PlugIns/bundled.jdk" |
|
407 |
|
408 cp macos_app/JavaAppLauncher "$APP/Contents/MacOS/." && \ |
|
409 chmod +x "$APP/Contents/MacOS/JavaAppLauncher" |
|
410 |
|
411 mv "$ISABELLE_NAME" "$APP/Contents/Resources/." |
|
412 ln -sf "../../Info.plist" "$APP/Contents/Resources/$ISABELLE_NAME/${ISABELLE_NAME}.plist" |
|
413 ln -sf "Contents/Resources/$ISABELLE_NAME" "$APP/Isabelle" |
|
414 |
|
415 rm -f "${ARCHIVE_DIR}/${ISABELLE_NAME}.dmg" |
|
416 |
|
417 cd dmg |
|
418 hdiutil create -srcfolder . -volname Isabelle "${ARCHIVE_DIR}/${ISABELLE_NAME}.dmg" |
|
419 ) |
|
420 ;; |
|
421 windows) |
|
422 ( |
|
423 if [ "$PLATFORM_FAMILY" = windows ]; then |
|
424 PLATFORM_SUFFIX="-win32" |
|
425 else |
|
426 PLATFORM_SUFFIX="-win64" |
|
427 fi |
|
428 |
|
429 cd "$TMP" |
|
430 rm -f "${ARCHIVE_DIR}/${ISABELLE_NAME}.7z" |
|
431 7z -y -bd a "$TMP/${ISABELLE_NAME}.7z" "$ISABELLE_NAME" || exit 2 |
|
432 |
|
433 echo "application for $PLATFORM_FAMILY" |
|
434 ( |
|
435 cat "windows_app/7zsd_All.sfx" |
|
436 cat "$ISABELLE_HOME/Admin/Windows/Installer/sfx.txt" | \ |
|
437 perl -p -e "s,{ISABELLE_NAME},${ISABELLE_NAME},g;" |
|
438 cat "$TMP/${ISABELLE_NAME}.7z" |
|
439 ) > "${ARCHIVE_DIR}/${ISABELLE_NAME}${PLATFORM_SUFFIX}.exe" |
|
440 chmod +x "${ARCHIVE_DIR}/${ISABELLE_NAME}${PLATFORM_SUFFIX}.exe" |
|
441 ) |
|
442 ;; |
|
443 *) |
|
444 ;; |
|
445 esac |
|
446 else |
|
447 echo "### Cannot build application for $PLATFORM_FAMILY on $ISABELLE_PLATFORM_FAMILY" |
|
448 fi |
|
449 |
456 |
450 |
457 |
451 # clean up |
458 # clean up |
452 rm -rf "$TMP" |
459 rm -rf "$TMP" |