From 8912e9e016d7591eb1a1d1f782c90bd8da7b16c6 Mon Sep 17 00:00:00 2001 From: vit9696 Date: Sun, 29 Jan 2017 13:03:26 -0800 Subject: [PATCH] fix(build): correct macOS deployment --- cmake/Installation.cmake | 11 +- osx/DS_Store-DMG | Bin 14340 -> 8196 bytes osx/createdmg | 36 ++++++ osx/info.plist | 207 +++++++++++++++--------------- osx/qTox-Mac-Deployer-ULTIMATE.sh | 18 +-- osx/update-plist-version.sh | 18 +-- 6 files changed, 157 insertions(+), 133 deletions(-) create mode 100755 osx/createdmg diff --git a/cmake/Installation.cmake b/cmake/Installation.cmake index 24fe0d787..1a52c08bf 100644 --- a/cmake/Installation.cmake +++ b/cmake/Installation.cmake @@ -5,8 +5,6 @@ ################################################################################ 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 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) message(STATUS \"Updating library paths\") 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\") - 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 ) else() diff --git a/osx/DS_Store-DMG b/osx/DS_Store-DMG index 5351701a2b589d6d1f256a6a19e2c850316c6c76..5785953b255311a86fe6c50b9bd6dd363b692245 100644 GIT binary patch literal 8196 zcmeHM-EJF26#h02C22|;k_d9qi{%C+TJ1VewaQ+(iLEq(03ueXREe_QT{}y>yN(aq5 zN)iV}roGr4-^L)#(x{Q;3FoDX;uuKIxYWv(4_uQ9PA3j>*o^|2sNj>Y^o6cRQ ztX+)Q`Lmm!-M@)fC|O-^_`z|jo1LcNUgEbRCy$%Wk?Ox0tGRR~v^|E*E_-k7O}k(;q}m+>yv(SVNt$7rF845vsDVh;(W zEktmTBSw?2>v#iKae_Lv`Yf@VoV&|b#wy-&$D+A2gJBJ8?qSwGO`@JVN)uSOeirLx z&()Xq{Xo2%MbG=c{Yw0SD^KQcRQGpx{Iu|U^(g5)8u@d=L>!$Lk@b`PyTCt;if$P8 zj{hJ5i}v5_thz@1dH?%wI5&yN-!CX}UT~ck8ixagJ`?y)eTySS|#r zqLG$(R%V>Fy>=E1D}q!kolB;=MOsyH!1WyPBxXFL(F-iz{Axg8}%l=&56&}mt*l?#fS8_gBm_!2DM3TJmk6EAJbkKqV6yT<4x;NcwfY) z^n6e5V~s0K5KdZ%d?q4{1v5i~z-1v&Qh_(b{lCTkfHhw|sBSa9 zzFSXaBEHeuY+tYm5_$v0r3pLvrI%b@$H|9(7;A(LWz&!sY@TPmI G5%?1dzb@hc literal 14340 zcmeHNeQaCR6+g#uTDx(ZmyfP(D8!JiEo+?E@kg9=S{x^#&1gy2q-{b=(`WlRHF5k> zKj#Cwq7;pqRge@0oYgp;H6xexS#WaR7NdG zxr#E;3dBbfSv>(z{$fI3Fxqag5wH=k5wH=k5wH_LRVY=?a8DH2ZxoFJM!8jvF=cF z+U|^zNo2B_!Zj|p+wF1>D{BrP4g~z+MsKh!c%;#LI2sH#dPA+zBS(}+T&@c)4R>xI z8b5OE>v!CF*WLGgx43sYqpH=o-Az(DQ{ZA#7MtCJb$-MzS)KS~p2F1~W7zGb-r5 zcg3o;-j9B)In?%vrz@4J>Y7@Q=Sl)QSIDF@T7K6QBR-@WNiCPksfe8%*kBW2CcDg^jYgeREyi zex7-oY83j$wH#^nb2)tnX*I-sov9S-oD91$KgJB5WWlFgGb?)@C>{Nufm_9>Xu-EqDjsg?HmU_yGP8PvR;35k7`b z;HWQ!p6DU5u;uZ&l^`OHq?8_ z+ZAo}-?rLcz;EDXVX^;!_i+hU;A*^>EY*jt*nyqcjXii7_Ti_n9|y=%_u~OfU=mX} zhB_V+*7|9@4rlNvUQgC~Bi@8JDW#qCr!!Po*c!Zbq<&9Gl`P}NR00yY9R0yY9R0yYBY z2?AxL2gUy-5&7S(H}~^DB42g*a5O?OxIe)0cw4Zo(Hrpx&mE6HdfG&M(Rlo)CK8$C zq>N#lQx+00DV1}g@7Wk(^_psWnZIaQsY$5G(UCl#Do}i^=i}K4il1v|TYJaU5em99 zs))Gf#^=Srxg_+io@EsRcWSBqvrPkZGBZcK7_%j>X}P^4`An)Woi?<>UV`*Lx;P|(MQ)O=pejcD;}gp~eqHA#VbL&qQecU||8`5E4OZfavF7Y6_4|EZ{OlesH07E7LZ;r{6iX?qh}s}@K$Tk zSxNxQrL4w-hQ`$Pn?U5(pxaUo2Tio5|+`awl%IAE^023+`Le54J>co&4((QA$kF7@d{oG zU1?=*vKlSt+pZ?LZEiY)@9raP0hXM8-6JIT^$#|s#`qxbUrxs!K6xh9S#9x|*t)$| zU6$oL^(if9q3Q^opmr10)Mpb!^GQBw1CHZC(tcf0`Sx7~ov^fnV3+t>%C3Mq@DvgA zK_A5|gM?^`B8w5ivzB7EP7wof^yQVYQIiEJT{XS`upjn*mmm1|GH$&aQ^o zUULnzac#$|eK+0zfOnPRXy|yg@z(mS@h!8_uUs&==sas6r{}bW*pO^r0YQbV7PCDRNo;POw9KiX zPtUbJYVeVL%szj=qUqkJd(G!PC+KSmtH(O>SuUq?q8~I#P>6m}(lMf$S0pd}bc`Nw zP7W`?4f3l@Inhpekfabz{~}cp(JkAniC!n^8lppz_7XiV=@`*BOB$a7co)p15G|*I znKwzM)B%d%+VTHl@xS@;jzMJvO@k}>{hmJRS;`zou(Jbs$VTF z#Hx?VI?H3Z1uAc#d<*3}Df2j1xbxJ&QQjt2Q|8Z&q@GBXvMeo-3~wbhpc^2a$!hJ* z&2wBj`J$qJ0Q~~l;yfo`OYqjTj`?Yl)|N<5TU#*XYYBu}eZiJci!a_9iTmQgu27&m z)D`II?6P!Hg zlr8*%$4!K-`s=4@ASJ7Q^5J8mZpnCsc>hY-No+zx#`feJD-tC<)GZQq0o%}9a=ubL z30kp^;*LUfYfhLs8s_^rEB}ipd1JCL?Tq*%U6IRLebH!;Fb#&ozIddi+jm(s&>imz zgrni^9t+c>JP%2lk16ZOIP$%`muXs0I@B6$3H#f^VSmK$PbXVjl96ya(H2UF6Ivh| zZVPL4Nu-M|dLdzY?H2!L`qt2-j*n+GzWNL`mrCd#==fWT!uCHl0a{X|<19UlRRT5^bH+v8OI2*6g^KHurTDci-TOuj#J z-=*LH@$v> kX2%tN5sNZyCF+YYP34SP5=H61|3g4~|F`3R`}_Yt0nfOF?EnA( diff --git a/osx/createdmg b/osx/createdmg new file mode 100755 index 000000000..6f1829eb1 --- /dev/null +++ b/osx/createdmg @@ -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" diff --git a/osx/info.plist b/osx/info.plist index 7a9c70820..123c794ce 100644 --- a/osx/info.plist +++ b/osx/info.plist @@ -1,112 +1,113 @@ - - NSPrincipalClass - NSApplication - CFBundleIconFile - qtox.icns - CFBundlePackageType - APPL - CFBundleSignature - toxq - CFBundleExecutable - qtox - CFBundleDisplayName - qTox - CFBundleName - qTox - CFBundleVersion - CFBundleShortVersionString - @SHORT_VERSION@ - CFBundleIdentifier - chat.tox.qtox - CFBundleURLTypes - - - CFBundleURLName - Tox URL - CFBundleTypeRole - Viewer - CFBundleURLSchemes - - tox - - CFBundleURLIconFile - qtox_profile - - - CFBundleDocumentTypes - + + CFBundleDisplayName + qTox + CFBundleDocumentTypes + + + CFBundleTypeExtensions + + tox + + CFBundleTypeIconFile + qtox_profile + CFBundleTypeMIMETypes + + application/x-tox.profile + + CFBundleTypeName + Tox profile + CFBundleTypeRole + Editor + LSHandlerRank + Owner + LSItemContentTypes + + public.tox + + + + CFBundleExecutable + qtox + CFBundleIconFile + qtox.icns + CFBundleIdentifier + chat.tox.qtox + CFBundleLocalizations + + en_US + bg_BG + cs + de_DE + el + es_MX + fi_FI + fr_FR + hr_HR + hu_HU + it_IT + lt_LT + nl_NL + nb_NO + pl_PL + pt_BR + ru_RU + sl + sv + tr_TR + uk_UA + zh_CH + + CFBundleName + qTox + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.7.0 + CFBundleSignature + toxq + CFBundleURLTypes + + + CFBundleTypeRole + Viewer + CFBundleURLIconFile + qtox_profile + CFBundleURLName + Tox URL + CFBundleURLSchemes + + tox + + + + CFBundleVersion + 1.7.0 + NSPrincipalClass + NSApplication + UTImportedTypeDeclarations + + + UTTypeConformsTo + + public.data + + UTTypeIdentifier + public.tox + UTTypeTagSpecification - CFBundleTypeExtensions + com.apple.ostype + TOX + public.filename-extension tox - CFBundleTypeName - Tox profile - CFBundleTypeRole - Editor - CFBundleTypeIconFile - qtox_profile - CFBundleTypeMIMETypes - - application/x-tox.profile - - LSHandlerRank - Owner - LSItemContentTypes - - public.tox - - - - UTImportedTypeDeclarations - - - UTTypeConformsTo - - public.data - - UTTypeIdentifier - public.tox - UTTypeTagSpecification - - com.apple.ostype - TOX - public.filename-extension - - tox - - public.mime-type - tox/x-profile - + public.mime-type + tox/x-profile - - CFBundleLocalizations - - en_US - bg_BG - cs - de_DE - el - es_MX - fi_FI - fr_FR - hr_HR - hu_HU - it_IT - lt_LT - nl_NL - nb_NO - pl_PL - pt_BR - ru_RU - sl - sv - tr_TR - uk_UA - zh_CH - - + + + diff --git a/osx/qTox-Mac-Deployer-ULTIMATE.sh b/osx/qTox-Mac-Deployer-ULTIMATE.sh index d599b4ab3..5a41cf0ff 100755 --- a/osx/qTox-Mac-Deployer-ULTIMATE.sh +++ b/osx/qTox-Mac-Deployer-ULTIMATE.sh @@ -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_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 LIB_INSTALL_PREFIX="${QTOX_DIR}/libs" @@ -52,7 +50,6 @@ LIB_INSTALL_PREFIX="${QTOX_DIR}/libs" BUILD_DIR="${MAIN_DIR}/qTox-Mac_Build${SUBGIT}" DEPLOY_DIR="${MAIN_DIR}/qTox-Mac_Deployed${SUBGIT}" - # helper function to "pretty-print" fcho() { local msg="$1"; shift @@ -114,7 +111,7 @@ install() { if [[ $TRAVIS != true ]] then sleep 3 - brew install git wget libtool autoconf automake + brew install git wget libtool autoconf automake pkgconfig fi brew install check libvpx opus libsodium @@ -243,10 +240,8 @@ deploy() { exit 0 fi mkdir $DEPLOY_DIR + make install cp -r $BUILD_DIR/qTox.app $DEPLOY_DIR/qTox.app - cd $DEPLOY_DIR - fcho "Now working in ${PWD}" - $MACDEPLOYQT qTox.app } bootstrap() { @@ -265,14 +260,7 @@ bootstrap() { dmgmake() { fcho "------------------------------" fcho "Starting DMG creation" - cd $DEPLOY_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 + cp $BUILD_DIR/qTox.dmg $QTOX_DIR/ } helpme() { diff --git a/osx/update-plist-version.sh b/osx/update-plist-version.sh index e7f5d0d98..b031bf2c5 100755 --- a/osx/update-plist-version.sh +++ b/osx/update-plist-version.sh @@ -35,17 +35,11 @@ set -eu -o pipefail # uses `get_version()` source "../tools/lib/git.source" - # append version to .plist file(s) after the right line -append_version() { - local after_line=' CFBundleVersion' - local append=" $(get_version)<\/string>" - - for plist in *.plist - do - git checkout "$plist" - sed -i"" -e "/$after_line/a\\ -$append" "$plist" - done +update_version() { + ver=$(get_version) + defaults write "$(pwd)/info.plist" CFBundleVersion $ver + defaults write "$(pwd)/info.plist" CFBundleShortVersionString $ver + plutil -convert xml1 info.plist } -append_version +update_version