#!/bin/bash # Usage: # - mac_packager.sh path_to_plugins1 path_to_plugins2... # To build a stand-alone mac version of the application, do the following: # 1. build medInria # 2. build medInria-plugins as well as your desired own plugins # 3. chmod u+x mac_pacakger.sh # 4. run mac_pacakger.sh with each argument being a script to package your plugins, e.g. : ./mac_packager.sh ${Plugins_Build_Dir}/mac_visages_plugins_packager.sh # The bundle medInria.app will contain all plugins and will be standalone, packaged into MedINRIA.dmg in the install dir cd @PROJECT_BINARY_DIR@ \rm -fr TmpInstall mkdir -p TmpInstall/medInria.app/Contents/Resources cp -r @medInria_ROOT@/bin/medInria.app/Contents/MacOS TmpInstall/medInria.app/Contents cp @medInria_ROOT@/bin/medInria.app/Contents/Info.plist TmpInstall/medInria.app/Contents cp @medInria_ROOT@/bin/medInria.app/Contents/Resources/medInria.icns TmpInstall/medInria.app/Contents/Resources cd TmpInstall @Qt5_DIR@/../../../bin/macdeployqt medInria.app -appstore-compliant #Run sub-packagers injectDirs='' for i in $*; do echo $i injectDirs="$injectDirs -inject-dir=$i" done mkdir python_plugins injectDirs="$injectDirs -inject-dir=@PROJECT_BINARY_DIR@/TmpInstall/python_plugins" python_libs='' for python_lib in @medInria_ROOT@/bin/python_plugins/*; do lib=${python_lib##*/} libname=${lib%.so} cp $python_lib python_plugins/$libname.dylib python_libs="$python_libs $libname" done @dtk_ROOT@/bin/dtkDeploy medInria.app $injectDirs &>/dev/null mkdir medInria.app/Contents/Plugins/python if [ -n "${python_libs}" ] then for python_lib in $python_libs; do mv medInria.app/Contents/Plugins/$python_lib.dylib medInria.app/Contents/Plugins/python/$python_lib.so done fi @CMAKE_COMMAND@ --install @pyncpp_ROOT@ --prefix . --component Runtime mkdir medInria.app/Contents/Resources/lib mv lib/python@PYTHON_VERSION_MAJOR@.@PYTHON_VERSION_MINOR@ medInria.app/Contents/Resources/lib #Run fancy packaging apple script \cp -f @medInria_SOURCE_DIR@/utils/osx_packaging/BaseMedinriaPackage.sparseimage.gz @PROJECT_BINARY_DIR@/MedinriaPackage.sparseimage.gz cd @PROJECT_BINARY_DIR@ gunzip -f MedinriaPackage.sparseimage.gz devName=`hdiutil attach -readwrite -noverify -noautoopen MedinriaPackage.sparseimage | egrep '^/dev/' | sed 1q | awk '{print $1}'` diskutil rename "medInria base" "medInria @MEDINRIA_SUPERBUILD_VERSION@" \cp -rf @PROJECT_BINARY_DIR@/TmpInstall/medInria.app /Volumes/"medInria @MEDINRIA_SUPERBUILD_VERSION@"/ sync hdiutil detach $devName hdiutil convert MedinriaPackage.sparseimage -format UDZO -imagekey zlib-level=9 -o "medInria-@MEDINRIA_SUPERBUILD_VERSION@.dmg" 1>/dev/null 2>/dev/null \rm -fr MedinriaPackage.sparseimage @PROJECT_BINARY_DIR@/TmpInstall \mv medInria-@MEDINRIA_SUPERBUILD_VERSION@.dmg @CMAKE_BINARY_DIR@