From b7624b7003540258036babd0fff5c71e52b956d1 Mon Sep 17 00:00:00 2001 From: Ries van Twisk Date: Sat, 28 Dec 2019 14:42:48 +0100 Subject: Cleanup bundle generation --- cmake/opentrack-hier.cmake | 8 +++---- cmake/opentrack-platform.cmake | 18 +++++++--------- macosx/Info.plist | 4 ++-- macosx/make-app-bundle.sh | 48 ++++++++++++++++++++++++------------------ macosx/opentrack.sh | 6 ------ opentrack/main-window.cpp | 2 +- 6 files changed, 42 insertions(+), 44 deletions(-) delete mode 100755 macosx/opentrack.sh diff --git a/cmake/opentrack-hier.cmake b/cmake/opentrack-hier.cmake index 8e9e3db8..13f876a5 100644 --- a/cmake/opentrack-hier.cmake +++ b/cmake/opentrack-hier.cmake @@ -10,7 +10,7 @@ include_guard(GLOBAL) if(APPLE) - set(opentrack-hier-pfx "${CMAKE_INSTALL_PREFIX}/opentrack.app/Contents/MacOS/Plugins") + set(opentrack-hier-pfx "Plugins") set(opentrack-hier-path "/Plugins/") # MUST HAVE A TRAILING BACKSLASH, Used in APP set(opentrack-hier-doc "/") # MUST HAVE A TRAILING BACKSLASH set(opentrack-hier-bin "${CMAKE_INSTALL_PREFIX}") @@ -18,14 +18,12 @@ if(APPLE) set(opentrack-doc-src-pfx "./source-code") set(opentrack-i18n-pfx "opentrack.app/Contents/Resources") # used during install set(opentrack-i18n-path "../Resources/i18n") # used in application - set(opentrack-install-rpath "../Frameworks") - set(opentrack-hier-str RUNTIME DESTINATION ${opentrack-hier-pfx} LIBRARY DESTINATION ${opentrack-hier-pfx}) + set(opentrack-install-rpath "${CMAKE_INSTALL_PREFIX}/Library") elseif(WIN32) set(opentrack-hier-pfx "modules") set(opentrack-hier-path "/${opentrack-hier-pfx}/") # MUST HAVE A TRAILING BACKSLASH set(opentrack-hier-doc "/doc/") # MUST HAVE A TRAILING BACKSLASH set(opentrack-hier-bin ".") - set(opentrack-hier-str RUNTIME DESTINATION ${opentrack-hier-pfx} LIBRARY DESTINATION ${opentrack-hier-pfx}) set(opentrack-doc-pfx "./doc") set(opentrack-doc-src-pfx "./source-code") set(opentrack-i18n-pfx "./i18n") @@ -37,13 +35,13 @@ else() set(opentrack-hier-path "/../${opentrack-hier-pfx}/") # MUST HAVE A TRAILING BACKSLASH set(opentrack-hier-doc "/share/doc/opentrack/") # MUST HAVE A TRAILING BACKSLASH set(opentrack-hier-bin "bin") - set(opentrack-hier-str RUNTIME DESTINATION ${opentrack-hier-pfx} LIBRARY DESTINATION ${opentrack-hier-pfx}) set(opentrack-doc-pfx "./share/doc/opentrack") set(opentrack-doc-src-pfx "./share/doc/opentrack/source-code") set(opentrack-install-rpath "${CMAKE_INSTALL_PREFIX}/${opentrack-hier-pfx}") set(opentrack-i18n-pfx "./share/opentrack/i18n") set(opentrack-i18n-path "../share/opentrack/i18n") endif() +set(opentrack-hier-str RUNTIME DESTINATION ${opentrack-hier-pfx} LIBRARY DESTINATION ${opentrack-hier-pfx}) function(otr_escape_string var str) string(REGEX REPLACE "([^_A-Za-z0-9./:-])" "\\\\\\1" str "${str}") diff --git a/cmake/opentrack-platform.cmake b/cmake/opentrack-platform.cmake index bb7fb1f8..23c18d52 100644 --- a/cmake/opentrack-platform.cmake +++ b/cmake/opentrack-platform.cmake @@ -43,16 +43,14 @@ set(CMAKE_CXX_STANDARD_DEFAULT 17) set(CMAKE_CXX_STANDARD_REQUIRED TRUE) set(CMAKE_CXX_EXTENSIONS FALSE) -if (NOT APPLE) - set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) - set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) - set(CMAKE_SKIP_INSTALL_RPATH FALSE) - set(CMAKE_SKIP_RPATH FALSE) -else() - set(CMAKE_SKIP_BUILD_RPATH FALSE) - set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) - set(CMAKE_MACOSX_RPATH OFF) -endif() +set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) +set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) +set(CMAKE_SKIP_INSTALL_RPATH FALSE) +set(CMAKE_SKIP_RPATH FALSE) +set(CMAKE_INCLUDE_CURRENT_DIR ON) +set(CMAKE_AUTOMOC OFF) +set(CMAKE_POSITION_INDEPENDENT_CODE TRUE) + set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_AUTOMOC OFF) set(CMAKE_POSITION_INDEPENDENT_CODE TRUE) diff --git a/macosx/Info.plist b/macosx/Info.plist index 64572bf3..3fd8b614 100644 --- a/macosx/Info.plist +++ b/macosx/Info.plist @@ -1,11 +1,11 @@ - + CFBundleDevelopmentRegion en CFBundleExecutable - opentrack.sh + opentrack CFBundleIdentifier com.github.opentrack CFBundleName diff --git a/macosx/make-app-bundle.sh b/macosx/make-app-bundle.sh index fc78f428..b124d4a1 100755 --- a/macosx/make-app-bundle.sh +++ b/macosx/make-app-bundle.sh @@ -13,42 +13,49 @@ APPNAME=opentrack #macosx directory dir="$1" -test -n "$dir" || exit 1 +test -n "$dir" # install directory install="$2" -test -n "$install" || exit 1 +test -n "$install" version="$3" -test -n "$version" || exit 1 +test -n "$version" tmp="$(mktemp -d "/tmp/$APPNAME-tmp.XXXXXXX")" -test $? -eq 0 || exit 1 +test $? -eq 0 -# Add framework and other libraries -macdeployqt "$install/$APPNAME.app" -libpath="$install/Library" -# Fixup dylib linker issues -sh "$dir/install-fail-tool" "$install/$APPNAME.app/Contents/Frameworks" +# Add rpath for application so it can find the libraries +#install_name_tool -add_rpath @executable_path/../Frameworks "$install/$APPNAME.app/Contents/MacOS/$APPNAME" # Copy our own plist and set correct version cp "$dir/Info.plist" "$install/$APPNAME.app/Contents/" +sed -i '' -e "s#@OPENTRACK-VERSION@#$version#g" "$install/$APPNAME.app/Contents/Info.plist" + +# Copy PkgInfo cp "$dir/PkgInfo" "$install/$APPNAME.app/Contents/" -cp "$dir/opentrack.sh" "$install/$APPNAME.app/Contents/MacOS/" -sed -i '' -e "s#@OPENTRACK-VERSION@#$version#g" "$install/$APPNAME.app/Contents/Info.plist" || exit 1 -# Create an 512 resolution size (for retina displays mostly) +# Copy plugins +mkdir -p "$install/$APPNAME.app/Contents/MacOS/Plugins" +cp -r "$install/Plugins" "$install/$APPNAME.app/Contents/MacOS/" + +# Add framework and other libraries and fixup other libraries +macdeployqt "$install/$APPNAME.app" -libpath="$install/Library" +sh "$dir/install-fail-tool" "$install/$APPNAME.app/Contents/Frameworks" + +# Create an 512 resolution size for the icon (for retina displays mostly) #gm convert -size 512x512 "$dir/../gui/images/opentrack.png" "$tmp/opentrack.png" convert "$dir/../gui/images/opentrack.png" -filter triangle -resize 512x512 "$tmp/opentrack.png" # Build iconset -mkdir "$tmp/$APPNAME.iconset" || exit 1 -sips -z 16 16 "$tmp/opentrack.png" --out "$tmp/$APPNAME.iconset/icon_16x16.png" || exit 1 -sips -z 32 32 "$tmp/opentrack.png" --out "$tmp/$APPNAME.iconset/icon_16x16@2x.png" || exit 1 -sips -z 32 32 "$tmp/opentrack.png" --out "$tmp/$APPNAME.iconset/icon_32x32.png" || exit 1 -sips -z 64 64 "$tmp/opentrack.png" --out "$tmp/$APPNAME.iconset/icon_32x32@2x.png" || exit 1 -sips -z 128 128 "$tmp/opentrack.png" --out "$tmp/$APPNAME.iconset/icon_128x128.png" || exit 1 -sips -z 256 256 "$tmp/opentrack.png" --out "$tmp/$APPNAME.iconset/icon_128x128@2x.png" || exit 1 -sips -z 512 512 "$tmp/opentrack.png" --out "$tmp/$APPNAME.iconset/icon_256x256@2x.png" || exit 1 -sips -z 512 512 "$tmp/opentrack.png" --out "$tmp/$APPNAME.iconset/icon_512x512.png" || exit 1 +mkdir "$tmp/$APPNAME.iconset" +sips -z 16 16 "$tmp/opentrack.png" --out "$tmp/$APPNAME.iconset/icon_16x16.png" +sips -z 32 32 "$tmp/opentrack.png" --out "$tmp/$APPNAME.iconset/icon_16x16@2x.png" +sips -z 32 32 "$tmp/opentrack.png" --out "$tmp/$APPNAME.iconset/icon_32x32.png" +sips -z 64 64 "$tmp/opentrack.png" --out "$tmp/$APPNAME.iconset/icon_32x32@2x.png" +sips -z 128 128 "$tmp/opentrack.png" --out "$tmp/$APPNAME.iconset/icon_128x128.png" +sips -z 256 256 "$tmp/opentrack.png" --out "$tmp/$APPNAME.iconset/icon_128x128@2x.png" +sips -z 512 512 "$tmp/opentrack.png" --out "$tmp/$APPNAME.iconset/icon_256x256@2x.png" +sips -z 512 512 "$tmp/opentrack.png" --out "$tmp/$APPNAME.iconset/icon_512x512.png" iconutil -c icns -o "$install/$APPNAME.app/Contents/Resources/$APPNAME.icns" "$tmp/$APPNAME.iconset" rm -rf "$tmp" @@ -66,6 +73,7 @@ create-dmg \ --app-drop-link 420 180 \ --hide-extension "$APPNAME.app" \ --add-folder "Document" "$install/doc" 20 40 \ + --no-internet-enable \ --add-folder "source-code" "$install/source-code" 220 40 \ --add-folder "Xplane-Plugin" "$install/xplane" 420 40 \ "$version.dmg" \ diff --git a/macosx/opentrack.sh b/macosx/opentrack.sh deleted file mode 100755 index 788afe96..00000000 --- a/macosx/opentrack.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh - -cd -- "$(dirname -- "$0")" && -exec ./opentrack -platformpluginpath "$(pwd)" "$@" - -exit 1 diff --git a/opentrack/main-window.cpp b/opentrack/main-window.cpp index cd715216..9bacff6e 100644 --- a/opentrack/main-window.cpp +++ b/opentrack/main-window.cpp @@ -34,7 +34,7 @@ main_window::main_window() : State(OPENTRACK_BASE_PATH + OPENTRACK_LIBRARY_PATH) { ui.setupUi(this); -#if !defined _WIN32 && !defined __APPLE__ +#if !defined _WIN32 annoy_if_root(); #endif -- cgit v1.2.3