cmake: avoid de-duplication of user's CXXFLAGS
[quassel.git] / scripts / build / macosx_makePackage.sh
1 #!/bin/bash
2
3 myname=$0
4 if [ -s "$myname" ] && [ -x "$myname" ]; then
5     # $myname is already a valid file name
6
7     mypath=$myname
8 else
9     case "$myname" in
10     /*) exit 1;;             # absolute path - do not search PATH
11     *)
12         # Search all directories from the PATH variable. Take
13         # care to interpret leading and trailing ":" as meaning
14         # the current directory; the same is true for "::" within
15         # the PATH.
16
17         # Replace leading : with . in PATH, store in p
18         p=${PATH/#:/.:}
19         # Replace trailing : with .
20         p=${p//%:/:.}
21         # Replace :: with :.:
22         p=${p//::/:.:}
23         # Temporary input field separator, see FAQ #1
24         OFS=$IFS IFS=:
25         # Split the path on colons and loop through each of them
26         for dir in $p; do
27                 [ -f "$dir/$myname" ] || continue # no file
28                 [ -x "$dir/$myname" ] || continue # not executable
29                 mypath=$dir/$myname
30                 break           # only return first matching file
31         done
32         # Restore old input field separator
33         IFS=$OFS
34         ;;
35     esac
36 fi
37
38 if [ ! -f "$mypath" ]; then
39     echo >&2 "cannot find full path name: $myname"
40     exit 1
41 fi
42
43 SCRIPTDIR=$(dirname $mypath)
44 QUASSEL_VERSION=$(git describe)
45 BUILDTYPE=$1
46
47 # check the working dir
48 WORKINGDIR=$2
49 if [[ ! -n $2 ]]; then
50     WORKINGDIR="."
51 fi
52 WORKINGDIR="${WORKINGDIR}/"
53 PACKAGETMPDIR="${WORKINGDIR}PACKAGE_TMP_DIR_${BUILDTYPE}"
54 QUASSEL_DMG="Quassel${BUILDTYPE}_MacOSX-x86_64_${QUASSEL_VERSION}.dmg"
55
56 ADDITIONAL_PLUGINS=",$3"
57 if [[ ! -n $3 ]]; then
58         ADDITIONAL_PLUGINS=""
59 fi
60
61 echo "ADDITIONAL_PLUGINS: ${ADDITIONAL_PLUGINS}"
62
63 mkdir $PACKAGETMPDIR
64 case $BUILDTYPE in
65 "Client")
66         cp -r ${WORKINGDIR}Quassel\ Client.app ${PACKAGETMPDIR}/
67         ${SCRIPTDIR}/macosx_DeployApp.py --plugins=qcocoa,qgenericbearer,qcorewlanbearer,qmacstyle${ADDITIONAL_PLUGINS} "${PACKAGETMPDIR}/Quassel Client.app"
68         ;;
69 "Core")
70         cp ${WORKINGDIR}quasselcore ${PACKAGETMPDIR}/
71         ${SCRIPTDIR}/macosx_DeployApp.py --nobundle --plugins=qsqlite,qsqlpsql${ADDITIONAL_PLUGINS} ${PACKAGETMPDIR}
72         ;;
73 "Mono")
74         cp -r ${WORKINGDIR}Quassel.app ${PACKAGETMPDIR}/
75         ${SCRIPTDIR}/macosx_DeployApp.py --plugins=qsqlite,qsqlpsql,qcocoa,qgenericbearer,qcorewlanbearer,qmacstyle${ADDITIONAL_PLUGINS} "${PACKAGETMPDIR}/Quassel.app"
76         ;;
77 *)
78         echo >&2 "Valid parameters are \"Client\", \"Core\", or \"Mono\"."
79         rmdir ${PACKAGETMPDIR}
80         exit 1
81         ;;
82 esac
83 PACKAGESIZE=$(echo "$(du -ms ${PACKAGETMPDIR} | cut -f1) * 1.1" | bc)
84 hdiutil create -srcfolder ${PACKAGETMPDIR} -format UDBZ -size ${PACKAGESIZE}M -volname "Quassel ${BUILDTYPE} - ${QUASSEL_VERSION}" "${WORKINGDIR}${QUASSEL_DMG}" >/dev/null
85 rm -rf ${PACKAGETMPDIR}