update osx DMG icon tool paths
[ardour.git] / tools / osx_packaging / osx_build
index bab4906f2e08d22c751c335ac7a0417b1c923ca0..f440c50254f9a269401851a38b230e5349845e65 100755 (executable)
@@ -75,8 +75,12 @@ if test -z "$PRODUCT_PKG_DIR" -o -z "$APPNAME"; then
 fi
 
 . ../define_versions.sh
-echo "Version is $release_version / $revision"
-info_string="$version built on `hostname` by `whoami` on `date`"
+echo "Version is $release_version"
+if [ "x$commit" != "x" ] ; then
+    info_string="$release_version ($commit) built on `hostname` by `whoami` on `date`"
+else
+    info_string="$release_version built on `hostname` by `whoami` on `date`"
+fi
 echo "Info string is $info_string"
 
 # setup directory structure
@@ -105,6 +109,7 @@ ExportFormats=$Shared/export
 Templates=$Shared/templates
 PatchFiles=$Shared/patchfiles
 MackieControl=$Shared/mcp
+VFork=$Frameworks/vfork
 
 if [ x$PRINT_SYSDEPS != x ] ; then
 #
@@ -140,6 +145,8 @@ mkdir -p $Templates
 mkdir -p $Frameworks/modules
 mkdir -p $Etc
 mkdir -p $MackieControl
+mkdir -p $PatchFiles
+mkdir -p $VFork
 
 # maybe set variables
 env=""
@@ -177,12 +184,12 @@ env="<key>LSEnvironment</key><dict>$env<key>ARDOUR_BUNDLED</key><string>true</st
 
 # edit plist
 sed -e "s?@ENV@?$env?g" \
-    -e "s?@VERSION@?$release_version/$revision?g" \
+    -e "s?@VERSION@?$release_version?g" \
     -e "s?@INFOSTRING@?$info_string?g" < Info.plist.in > Info.plist
 # and plist strings
 sed -e "s?@APPNAME@?$appname?" \
     -e "s?@ENV@?$env?g" \
-    -e "s?@VERSION@?$release_version/$revision?g" \
+    -e "s?@VERSION@?$release_version?g" \
     -e "s?@INFOSTRING@?$info_string?g" < InfoPlist.strings.in > Resources/InfoPlist.strings || exit 1
 
 # copy static files
@@ -219,21 +226,42 @@ fi
 # copy locale files
 if test x$WITH_NLS != x ; then
     echo "NLS support ..."
-    echo "I hope you remembered to run scons msgupdate!"
+    echo "I hope you remembered to run waf i18n"
     LINGUAS=
-    for file in $BUILD_ROOT/gtk2_ardour/*.mo 
-    do
-       lang=`basename $file | sed 's/\.mo//'`
-       mkdir -p $Locale/$lang/LC_MESSAGES
-       cp $file $Locale/$lang/LC_MESSAGES/gtk2_ardour.mo
-       LINGUAS="$LINGUAS $lang"
-    done
-    for file in $BUILD_ROOT/libs/ardour/*.mo 
-    do
-       lang=`basename $file | sed 's/\.mo//'`
-       mkdir -p $Locale/$lang/LC_MESSAGES
-       cp $file $Locale/$lang/LC_MESSAGES/libardour.mo
+
+    for pkg in gtk2_ardour libs/ardour libs/gtkmm2ext ; do 
+       files=`find ../../$pkg -name "*.mo"`
+       
+            #
+            # the package name is appended with a number so that
+            # it can be parallel installed during a regular install
+            # with older (and newer) versions. it is just the major
+            # number of the release (i.e. leading digits)
+            #
+       
+        vsuffix=`echo $release_version | sed 's/^\([0-9][0-9]*\).*/\1/'`
+       
+       if [ -z "$files" ]; then
+           echo ""
+           echo "!!!! WARNING !!!! - Did not find any .mo files in ../../$pkg"
+           echo ""
+       fi
+       
+       for file in $files 
+       do
+           echo $file
+           lang=`basename $file | sed 's/\.mo//'`
+           mkdir -p $Locale/$lang/LC_MESSAGES
+           cp $file $Locale/$lang/LC_MESSAGES/`basename $pkg`$vsuffix.mo
+           echo copy $file to $Locale/$lang/LC_MESSAGES/`basename $pkg`$vsuffix.mo
+            if echo $LINGUAS | grep $lang >/dev/null 2>&1 ; then
+                :
+            else 
+               LINGUAS="$LINGUAS $lang"
+            fi
+       done
     done
+
     for l in $LINGUAS
     do
       if [ -d $GTKSTACK_ROOT/share/locale/$l ] ; then
@@ -311,7 +339,9 @@ cp $BUILD_ROOT/libs/surfaces/control_protocol/libardourcp*.dylib $Frameworks
 cp $BUILD_ROOT/libs/panners/*/lib*.dylib $Panners
 
 # Backends
-cp $BUILD_ROOT/libs/backends/*/lib*.dylib $Backends
+for backend in jack wavesaudio dummy; do
+    cp $BUILD_ROOT/libs/backends/$backend/lib*.dylib $Backends
+done
 
 # Export Formats/Presets
 for f in $BUILD_ROOT/../export/*.preset $BUILD_ROOT/../export/*.format ; do 
@@ -349,9 +379,17 @@ cp $BUILD_ROOT/libs/vamp-plugins/libardourvampplugins.dylib $Frameworks
 # Suil modules
 cp $ARDOURSTACK_ROOT/lib/suil-0/lib* $Frameworks
 
+# VST scanner app and wrapper script, if they exist
+cp $BUILD_ROOT/libs/fst/ardour-vst-scanner* $Frameworks/ || true
+
+# vfork wrapper
+mkdir -p $Frameworks/vfork
+cp $BUILD_ROOT/libs/vfork/ardour-exec-wrapper $VFork
+
+
 while [ true ] ; do 
     missing=false
-    for file in $APPROOT/MacOS/* $Frameworks/* $Frameworks/modules/* $Panners/*.dylib $Surfaces/*.dylib $Plugins/*.so ; do 
+    for file in $APPROOT/MacOS/* $Frameworks/* $Frameworks/modules/* $Panners/*.dylib $Backends/*.dylib $Surfaces/*.dylib $Plugins/*.so ; do 
        if ! file $file | grep -qs Mach-O ; then
            continue
        fi
@@ -390,19 +428,21 @@ if test x$SAE != x ; then
     cp $BUILD_ROOT/gtk2_ardour/SAE-de-nokeypad.bindings  $Resources
     cp $BUILD_ROOT/gtk2_ardour/SAE-us-keypad.bindings  $Resources
     cp $BUILD_ROOT/gtk2_ardour/SAE-us-nokeypad.bindings  $Resources
-    cp $BUILD_ROOT/ardour_system_sae.rc $Resources/ardour_system.rc
-    echo cp $BUILD_ROOT/ardour_system_sae.rc $Resources/ardour_system.rc
     cp $BUILD_ROOT/instant.xml.sae $Resources/instant.xml
     echo cp $BUILD_ROOT/instant.xml.sae $Resources/instant.xml
 else
-    cp ../../ardour_system.rc $Resources/ardour_system.rc
+    cp ../../system_config $Resources/system_config
     cp ../../instant.xml $Resources/instant.xml
     echo cp ../../instant.xml $Resources/instant.xml
 fi
-cp ../../gtk2_ardour/ardour3_ui_default.conf $Resources
-cp ../../gtk2_ardour/ardour3_ui_default.conf $Resources/ardour3_ui.conf
-cp $BUILD_ROOT/gtk2_ardour/ardour3_ui_light.rc $Resources
-cp $BUILD_ROOT/gtk2_ardour/ardour3_ui_dark.rc $Resources
+cp $BUILD_ROOT/gtk2_ardour/default_ui_config $Resources
+cp $BUILD_ROOT/gtk2_ardour/dark_fonts.rc $Resources
+cp $BUILD_ROOT/gtk2_ardour/dark_styles.rc $Resources
+cp $BUILD_ROOT/gtk2_ardour/light_fonts.rc $Resources
+cp $BUILD_ROOT/gtk2_ardour/light_styles.rc $Resources
+cp $BUILD_ROOT/gtk2_ardour/ui_dark.rc $Resources
+cp $BUILD_ROOT/gtk2_ardour/ui_light.rc $Resources
+cp $BUILD_ROOT/gtk2_ardour/widgets.rc $Resources
 
 cp -r ../../gtk2_ardour/icons $Resources
 cp -r ../../gtk2_ardour/pixmaps $Resources
@@ -417,6 +457,9 @@ for svndir in `find $APPDIR -name .svn -type dir`; do
     rm -rf $svndir
 done
 
+# install bundled LV2s to <app>/Contents/lib/LV2/
+cp -R $BUILD_ROOT/libs/LV2 $Frameworks/
+
 # now fix up the executables
 echo "Fixing up executable dependency names ..."
 executables=$MAIN_EXECUTABLE
@@ -438,7 +481,7 @@ done
 
 echo "Fixing up library names ..."
 # now do the same for all the libraries we include
-for libdir in $Frameworks $Frameworks/modules $Surfaces $Panners ; do
+for libdir in $Frameworks $Frameworks/modules $Surfaces $Panners $Backends ; do
 
     libbase=`basename $libdir`
     
@@ -518,6 +561,7 @@ if test x$WITH_HARVID != x ; then
        echo "installing video tools.."
        HARVID_VERSION=$(curl -s -S http://ardour.org/files/video-tools/harvid_version.txt)
        XJADEO_VERSION=$(curl -s -S http://ardour.org/files/video-tools/xjadeo_version.txt)
+       MULTIARCH=osx
        echo "copying harvid and xjadeo ..."
 
        rsync -Pa \
@@ -545,10 +589,10 @@ fi
 
 echo "Building DMG ..."
 
-# UC_DMG=$APPNAME-${release_version}-${revision}-UC.dmg
-# FINAL_DMG=$APPNAME-${release_version}-${revision}.dmg
-UC_DMG=$APPNAME-$version.dmg
-VOLNAME=$APPNAME-$version
+# UC_DMG=$APPNAME-${release_version}-UC.dmg
+# FINAL_DMG=$APPNAME-${release_version}.dmg
+UC_DMG=$APPNAME-$release_version.dmg
+VOLNAME=$APPNAME-$release_version
 
 # TODO use mktemp
 export TMPDIR=`pwd`
@@ -621,10 +665,10 @@ rm -rf "$MNTPATH"
 echo "setting file icon ..."
 
 cp ${PRODUCT_PKG_DIR}/$Resources/appIcon.icns ${ICNSTMP}.icns
-/usr/bin/sips -i ${ICNSTMP}.icns
-/Developer/Tools/DeRez -only icns ${ICNSTMP}.icns > ${ICNSTMP}.rsrc
-/Developer/Tools/Rez -append ${ICNSTMP}.rsrc -o "$UC_DMG"
-/Developer/Tools/SetFile -a C "$UC_DMG"
+sips -i ${ICNSTMP}.icns
+DeRez -only icns ${ICNSTMP}.icns > ${ICNSTMP}.rsrc
+Rez -append ${ICNSTMP}.rsrc -o "$UC_DMG"
+SetFile -a C "$UC_DMG"
 
 rm ${ICNSTMP}.icns ${ICNSTMP}.rsrc