Proper MacOS bundling

This commit is contained in:
Matt Pharoah
2021-06-21 16:59:30 -04:00
parent 08708a61e3
commit b6a72c1028
6 changed files with 111 additions and 10 deletions

90
app.plist Normal file
View File

@@ -0,0 +1,90 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleExecutable</key>
<string>parallel-launcher</string>
<key>CFBundleDisplayName</key>
<string>Parallel Launcher</string>
<key>CFBundleVersion</key>
<string>@FULL_VERSION@</string>
<key>CFBundleShortVersionString</key>
<string>@FULL_VERSION@</string>
<key>CFBundleIconFile</key>
<string>@ICON@</string>
<key>CFBundleIdentifier</key>
<string>ca.mpharoah.parallel-launcher</string>
<key>CFBundleDevelopmentRegion</key>
<string>en-CA</string>
<key>CFBundleLocalizations</key>
<array>
<string>en</string>
<string>it</string>
</array>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleSignature</key>
<string>PRLL</string>
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>z64</string>
<string>n64</string>
<string>v64</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>@ICON@</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>application/x-n64-rom</string>
</array>
<key>CFBundleTypeName</key>
<string>Nintendo64 ROM</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
<key>LSHandlerRank</key>
<string>Default</string>
</dict>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>bps</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>@ICON@</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>application/x-bps-patch</string>
</array>
<key>CFBundleTypeName</key>
<string>ROM Binary Patch</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
<key>LSHandlerRank</key>
<string>Default</string>
</dict>
</array>
</dict>
</plist>

16
app.pro
View File

@@ -27,16 +27,19 @@ FORMS += src/ui/designer/*.ui src/rhdc/ui/designer/*.ui
RESOURCES = data/resources.qrc
TRANSLATIONS = lang/parallel-launcher.en_us.ts lang/parallel-launcher.it.ts lang/parallel-launcher.es.ts lang/parallel-launcher.eo.ts
macx {
CONFIG += c++17
DEFINES += BOOST_FILESYSTEM_DYN_LINK _LIBCPP_DISABLE_AVAILABILITY
LIBS += -L./lib
}
macx|win32 {
SOURCES += src/windows-mac-updater/*.cpp
HEADERS += src/windows-mac-updater/*.hpp
FORMS += src/windows-mac-updater/*.ui
VERSION = 4.2.0
}
macx {
CONFIG += c++17
DEFINES += BOOST_FILESYSTEM_DYN_LINK _LIBCPP_DISABLE_AVAILABILITY
LIBS += -L./lib
ICON = appicon.icns
QMAKE_INFO_PLIST = app.plist
}
win32 {
@@ -62,7 +65,6 @@ win32 {
LIBS += -L$${WIN_DIR}/lib -lkernel32 -lOle32 -lSDL2 -lAdvapi32 -lsqlite3
INCLUDEPATH += $${WIN_DIR}/include
VERSION = 4.2.0
RC_ICONS = "data\\appicon.ico"
RC_LANG = "EN-CA"
QMAKE_TARGET_COMPANY = "Matt Pharoah"

BIN
appicon.icns Normal file

Binary file not shown.

View File

@@ -1,3 +0,0 @@
#!/bin/bash
cp ./lib/*.dylib ./parallel-launcher.app/Contents/MacOS
cp parallel-launcher-lsjs ./parallel-launcher.app/Contents/MacOS

10
osx-bundle.sh Executable file
View File

@@ -0,0 +1,10 @@
#!/bin/bash
cp parallel-launcher-lsjs ./parallel-launcher.app/Contents/MacOS
~/Qt/5.12.5/clang_64/bin/macdeployqt parallel-launcher.app -libpath=./lib -always-overwrite
ln -s ./parallel-launcher.app/Contents/Frameworks/libSDL2-2.0.0.dylib ./parallel-launcher.app/Contents/MacOS/libSDL2-2.0.0.dylib
ln -s ./parallel-launcher.app/Contents/Frameworks/libSDL2-2.0.0.dylib ./parallel-launcher.app/Contents/MacOS/libSDL2.dylib
lrelease app.pro
mkdir ./parallel-launcher.app/Contents/Resources/translations
cp ./lang/*.qm ./parallel-launcher.app/Contents/Resources/translations

View File

@@ -149,6 +149,8 @@ int main( int argc, char **argv ) {
fs::path( "/usr/share/parallel-launcher/" ),
fs::path( "/usr/local/share/parallel-launcher/" ),
BaseDir::program() / "lang"
#elif __APPLE__
BaseDir::program().parent_path() / "Resources" / "translations"
#else
BaseDir::program() / "translations"
#endif