1
0
mirror of https://github.com/qTox/qTox.git synced 2024-03-22 14:00:36 +08:00

fix(build): correct macOS deployment

This commit is contained in:
vit9696 2017-01-29 13:03:26 -08:00
parent 5c5dce4d33
commit 8912e9e016
6 changed files with 160 additions and 136 deletions

View File

@ -5,8 +5,6 @@
################################################################################ ################################################################################
if(APPLE) if(APPLE)
set(MACOSX_BUNDLE_SHORT_VERSION_STRING 1.4.1)
set(SHORT_VERSION ${MACOSX_BUNDLE_SHORT_VERSION_STRING})
set_target_properties(${PROJECT_NAME} PROPERTIES set_target_properties(${PROJECT_NAME} PROPERTIES
MACOSX_BUNDLE_INFO_PLIST "${CMAKE_SOURCE_DIR}/osx/info.plist") MACOSX_BUNDLE_INFO_PLIST "${CMAKE_SOURCE_DIR}/osx/info.plist")
@ -22,8 +20,15 @@ if(APPLE)
execute_process(COMMAND ${MACDEPLOYQT_PATH}/macdeployqt ${BUNDLE_PATH} -no-strip) execute_process(COMMAND ${MACDEPLOYQT_PATH}/macdeployqt ${BUNDLE_PATH} -no-strip)
message(STATUS \"Updating library paths\") message(STATUS \"Updating library paths\")
execute_process(COMMAND ${CMAKE_SOURCE_DIR}/osx/macfixrpath ${BUNDLE_PATH}) execute_process(COMMAND ${CMAKE_SOURCE_DIR}/osx/macfixrpath ${BUNDLE_PATH})
" COMPONENT Runtime
)
install(FILES img/icons/qtox.icns DESTINATION ${BUNDLE_PATH}/Contents/Resources/)
install(FILES img/icons/qtox_profile.icns DESTINATION ${BUNDLE_PATH}/Contents/Resources/)
install(CODE "
message(STATUS \"Creating dmg image\") message(STATUS \"Creating dmg image\")
execute_process(COMMAND hdiutil create -volname ${PROJECT_NAME} -srcfolder ${BUNDLE_PATH} -ov -format UDZO ${PROJECT_NAME}.dmg) execute_process(COMMAND ${CMAKE_SOURCE_DIR}/osx/createdmg ${CMAKE_SOURCE_DIR} ${BUNDLE_PATH})
" COMPONENT Runtime " COMPONENT Runtime
) )
else() else()

Binary file not shown.

36
osx/createdmg Executable file
View File

@ -0,0 +1,36 @@
#!/bin/bash
QTOX_DIR="$1"
pushd "$2" &> /dev/null
BUNDLE_PATH="$(pwd)"
popd &>/dev/null
pushd "$BUNDLE_PATH/../" &> /dev/null
BUILD_DIR="$(pwd)"
popd &>/dev/null
DMG_DIR="$BUILD_DIR/dmg.tmp"
APP_VER=$(defaults read "$BUNDLE_PATH/Contents/Info.plist" CFBundleVersion)
if [ ! -d "$BUNDLE_PATH" ]; then
echo "Please pass path to qTox.app as an argument!"
exit 1
fi
rm -rf "$DMG_DIR"
rm -f "$BUILD_DIR/qTox.dmg"
mkdir "$DMG_DIR"
cp -r "$BUNDLE_PATH" "$DMG_DIR/"
pushd "$DMG_DIR" &> /dev/null
ln -s /Applications "./Install to Applications"
mkdir .background
cp -f $QTOX_DIR/osx/background-DMG/qTox-DMG-bak.tiff .background/backgroundImage.tiff
cp -f $QTOX_DIR/osx/DS_Store-DMG ./.DS_Store
cp -f $QTOX_DIR/LICENSE ./LICENSE
cp -f $QTOX_DIR/README.md ./README.md
popd &>/dev/null
hdiutil create -volname "qTox $APP_VER" -srcfolder "$DMG_DIR/" -format UDZO "$BUILD_DIR/qTox.dmg"

View File

@ -2,40 +2,8 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"> <plist version="1.0">
<dict> <dict>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
<key>CFBundleIconFile</key>
<string>qtox.icns</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleSignature</key>
<string>toxq</string>
<key>CFBundleExecutable</key>
<string>qtox</string>
<key>CFBundleDisplayName</key> <key>CFBundleDisplayName</key>
<string>qTox</string> <string>qTox</string>
<key>CFBundleName</key>
<string>qTox</string>
<key>CFBundleVersion</key>
<key>CFBundleShortVersionString</key>
<string>@SHORT_VERSION@</string>
<key>CFBundleIdentifier</key>
<string>chat.tox.qtox</string>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLName</key>
<string>Tox URL</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
<key>CFBundleURLSchemes</key>
<array>
<string>tox</string>
</array>
<key>CFBundleURLIconFile</key>
<string>qtox_profile</string>
</dict>
</array>
<key>CFBundleDocumentTypes</key> <key>CFBundleDocumentTypes</key>
<array> <array>
<dict> <dict>
@ -43,16 +11,16 @@
<array> <array>
<string>tox</string> <string>tox</string>
</array> </array>
<key>CFBundleTypeName</key>
<string>Tox profile</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleTypeIconFile</key> <key>CFBundleTypeIconFile</key>
<string>qtox_profile</string> <string>qtox_profile</string>
<key>CFBundleTypeMIMETypes</key> <key>CFBundleTypeMIMETypes</key>
<array> <array>
<string>application/x-tox.profile</string> <string>application/x-tox.profile</string>
</array> </array>
<key>CFBundleTypeName</key>
<string>Tox profile</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>LSHandlerRank</key> <key>LSHandlerRank</key>
<string>Owner</string> <string>Owner</string>
<key>LSItemContentTypes</key> <key>LSItemContentTypes</key>
@ -61,28 +29,12 @@
</array> </array>
</dict> </dict>
</array> </array>
<key>UTImportedTypeDeclarations</key> <key>CFBundleExecutable</key>
<array> <string>qtox</string>
<dict> <key>CFBundleIconFile</key>
<key>UTTypeConformsTo</key> <string>qtox.icns</string>
<array> <key>CFBundleIdentifier</key>
<string>public.data</string> <string>chat.tox.qtox</string>
</array>
<key>UTTypeIdentifier</key>
<string>public.tox</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>com.apple.ostype</key>
<string>TOX</string>
<key>public.filename-extension</key>
<array>
<string>tox</string>
</array>
<key>public.mime-type</key>
<string>tox/x-profile</string>
</dict>
</dict>
</array>
<key>CFBundleLocalizations</key> <key>CFBundleLocalizations</key>
<array> <array>
<string>en_US</string> <string>en_US</string>
@ -108,5 +60,54 @@
<string>uk_UA</string> <string>uk_UA</string>
<string>zh_CH</string> <string>zh_CH</string>
</array> </array>
<key>CFBundleName</key>
<string>qTox</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.7.0</string>
<key>CFBundleSignature</key>
<string>toxq</string>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
<key>CFBundleURLIconFile</key>
<string>qtox_profile</string>
<key>CFBundleURLName</key>
<string>Tox URL</string>
<key>CFBundleURLSchemes</key>
<array>
<string>tox</string>
</array>
</dict>
</array>
<key>CFBundleVersion</key>
<string>1.7.0</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
<key>UTImportedTypeDeclarations</key>
<array>
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>public.data</string>
</array>
<key>UTTypeIdentifier</key>
<string>public.tox</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>com.apple.ostype</key>
<string>TOX</string>
<key>public.filename-extension</key>
<array>
<string>tox</string>
</array>
<key>public.mime-type</key>
<string>tox/x-profile</string>
</dict>
</dict>
</array>
</dict> </dict>
</plist> </plist>

View File

@ -40,8 +40,6 @@ QT_DIR="/usr/local/Cellar/qt5" # Folder name of QT install
QT_VER=($(ls ${QT_DIR} | sed -n -e 's/^\([0-9]*\.([0-9]*\.([0-9]*\).*/\1/' -e '1p;$p')) QT_VER=($(ls ${QT_DIR} | sed -n -e 's/^\([0-9]*\.([0-9]*\.([0-9]*\).*/\1/' -e '1p;$p'))
QT_DIR_VER="${QT_DIR}/${QT_VER[1]}" QT_DIR_VER="${QT_DIR}/${QT_VER[1]}"
MACDEPLOYQT="${QT_DIR_VER}/bin/macdeployqt" # Don't change
TOXCORE_DIR="${MAIN_DIR}/toxcore" # Change to Git location TOXCORE_DIR="${MAIN_DIR}/toxcore" # Change to Git location
LIB_INSTALL_PREFIX="${QTOX_DIR}/libs" LIB_INSTALL_PREFIX="${QTOX_DIR}/libs"
@ -52,7 +50,6 @@ LIB_INSTALL_PREFIX="${QTOX_DIR}/libs"
BUILD_DIR="${MAIN_DIR}/qTox-Mac_Build${SUBGIT}" BUILD_DIR="${MAIN_DIR}/qTox-Mac_Build${SUBGIT}"
DEPLOY_DIR="${MAIN_DIR}/qTox-Mac_Deployed${SUBGIT}" DEPLOY_DIR="${MAIN_DIR}/qTox-Mac_Deployed${SUBGIT}"
# helper function to "pretty-print" # helper function to "pretty-print"
fcho() { fcho() {
local msg="$1"; shift local msg="$1"; shift
@ -114,7 +111,7 @@ install() {
if [[ $TRAVIS != true ]] if [[ $TRAVIS != true ]]
then then
sleep 3 sleep 3
brew install git wget libtool autoconf automake brew install git wget libtool autoconf automake pkgconfig
fi fi
brew install check libvpx opus libsodium brew install check libvpx opus libsodium
@ -243,10 +240,8 @@ deploy() {
exit 0 exit 0
fi fi
mkdir $DEPLOY_DIR mkdir $DEPLOY_DIR
make install
cp -r $BUILD_DIR/qTox.app $DEPLOY_DIR/qTox.app cp -r $BUILD_DIR/qTox.app $DEPLOY_DIR/qTox.app
cd $DEPLOY_DIR
fcho "Now working in ${PWD}"
$MACDEPLOYQT qTox.app
} }
bootstrap() { bootstrap() {
@ -265,14 +260,7 @@ bootstrap() {
dmgmake() { dmgmake() {
fcho "------------------------------" fcho "------------------------------"
fcho "Starting DMG creation" fcho "Starting DMG creation"
cd $DEPLOY_DIR cp $BUILD_DIR/qTox.dmg $QTOX_DIR/
ln -s /Applications "./Install to Applications"
cp -r -f $QTOX_DIR/osx/background-DMG ./.background
cp -f $QTOX_DIR/osx/DS_Store-DMG ./.DS_Store
cp -f $QTOX_DIR/LICENSE ./LICENSE
cp -f $QTOX_DIR/README.md ./README.md
cd $QTOX_DIR
hdiutil create -volname qTox${SUBGIT} -srcfolder $DEPLOY_DIR -format UDZO qTox${SUBGIT}.dmg
} }
helpme() { helpme() {

View File

@ -35,17 +35,11 @@ set -eu -o pipefail
# uses `get_version()` # uses `get_version()`
source "../tools/lib/git.source" source "../tools/lib/git.source"
# append version to .plist file(s) after the right line # append version to .plist file(s) after the right line
append_version() { update_version() {
local after_line=' <key>CFBundleVersion' ver=$(get_version)
local append=" <string>$(get_version)<\/string>" defaults write "$(pwd)/info.plist" CFBundleVersion $ver
defaults write "$(pwd)/info.plist" CFBundleShortVersionString $ver
for plist in *.plist plutil -convert xml1 info.plist
do
git checkout "$plist"
sed -i"" -e "/$after_line/a\\
$append" "$plist"
done
} }
append_version update_version