blob: d3e88d9919a62ef1391d459cae9adeec98a72964 [file] [log] [blame]
#!/bin/sh
### make_bund.sh A simple script to create a mac bundle ####
### Author: Carmelo Piccione (carmelo.piccione+projectM@gmail.com) ###
# Path to installed qt framework on your machine
PATH_TO_QT=/Developer/SDKs/MacOSX10.4u.sdk/Library/Frameworks/
BUILD_PATH=/Users/struktured/projects/projectm_trunk/src
PROJECTM_QT_BUILD_PATH=${BUILD_PATH}/projectM-qt/libprojectM-qt.1.dylib
# the version of qt to bundle
QT_VERSION=4
# The bundle top level directory
APP=projectM-jack.app
## [0] Clean
rm -rf ${APP}
## [1] Create framework directory
mkdir ${APP}
mkdir ${APP}/Contents
mkdir ${APP}/Contents/Frameworks
mkdir ${APP}/Contents/Plugins
mkdir ${APP}/Contents/MacOs
cp projectM-jack ${APP}/Contents/MAcOs/
cp -f ${PROJECTM_QT_BUILD_PATH} ${APP}/Contents/Plugins/libprojectM-qt.dylib
## [2] Copy each qt framework into the bundle
cp -Rf ${PATH_TO_QT}/QtCore.framework ${APP}/Contents/Frameworks
cp -Rf ${PATH_TO_QT}/QtGui.framework ${APP}/Contents/Frameworks
cp -Rf ${PATH_TO_QT}/QtXml.framework ${APP}/Contents/Frameworks
cp -Rf ${PATH_TO_QT}/QtOpenGL.framework ${APP}/Contents/Frameworks
## [3] Change id of each qt framework to specialized one for this bundle
install_name_tool -id @executable_path/../Frameworks/QtCore.framework/Versions/${QT_VERSION}/QtCore ${APP}/Contents/Frameworks/QtCore.framework/Versions/${QT_VERSION}/QtCore
install_name_tool -id @executable_path/../Frameworks/QtGui.framework/Versions/${QT_VERSION}/QtGui ${APP}/Contents/Frameworks/QtGui.framework/Versions/${QT_VERSION}/QtGui
install_name_tool -id @executable_path/../Frameworks/QtXml.framework/Versions/${QT_VERSION}/QtXml ${APP}/Contents/Frameworks/QtXml.framework/Versions/${QT_VERSION}/QtXml
install_name_tool -id @executable_path/../Frameworks/QtOpenGL.framework/Versions/${QT_VERSION}/QtOpenGL ${APP}/Contents/Frameworks/QtOpenGL.framework/Versions/${QT_VERSION}/QtOpenGL
install_name_tool -id @executable_path/../Plugins/libprojectM-qt.dylib ${APP}/Contents/Plugins/libprojectM-qt.dylib
## [4] Change reference ids in projectM-jack to the local referred to id's
install_name_tool -change QtCore.framework/Versions/${QT_VERSION}/QtCore @executable_path/../Frameworks/QtCore.framework/Versions/${QT_VERSION}/QtCore ${APP}/Contents/MacOs/projectM-jack
install_name_tool -change QtGui.framework/Versions/${QT_VERSION}/QtGui @executable_path/../Frameworks/QtGui.framework/Versions/${QT_VERSION}/QtGui ${APP}/Contents/MacOs/projectM-jack
install_name_tool -change QtXml.framework/Versions/${QT_VERSION}/QtXml @executable_path/../Frameworks/QtXml.framework/Versions/${QT_VERSION}/QtXml ${APP}/Contents/MacOs/projectM-jack
install_name_tool -change QtOpenGL.framework/Versions/${QT_VERSION}/QtOpenGL @executable_path/../Frameworks/QtOpenGL.framework/Versions/${QT_VERSION}/QtOpenGL ${APP}/Contents/MacOs/projectM-jack
install_name_tool -change ${PROJECTM_QT_BUILD_PATH} @executable_path/../Plugins/libprojectM-qt.dylib ${APP}/Contents/MacOs/projectM-jack
# [4b] Change projectM-qt library reference to bundle version
## [5] Change references from one qt lib to another qt lib from system to local
install_name_tool -change QtCore.framework/Versions/${QT_VERSION}/QtCore @executable_path/../Frameworks/QtCore.framework/Versions/${QT_VERSION}/QtCore ${APP}/Contents/Frameworks/QtGui.framework/Versions/${QT_VERSION}/QtGui
install_name_tool -change QtCore.framework/Versions/${QT_VERSION}/QtCore @executable_path/../Frameworks/QtCore.framework/Versions/${QT_VERSION}/QtCore ${APP}/Contents/Frameworks/QtXml.framework/Versions/${QT_VERSION}/QtXml
install_name_tool -change QtCore.framework/Versions/${QT_VERSION}/QtCore @executable_path/../Frameworks/QtCore.framework/Versions/${QT_VERSION}/QtCore ${APP}/Contents/Frameworks/QtOpenGL.framework/Versions/${QT_VERSION}/QtOpenGL
install_name_tool -change QtGui.framework/Versions/${QT_VERSION}/QtGui @executable_path/../Frameworks/QtGui.framework/Versions/${QT_VERSION}/QtGui ${APP}/Contents/Frameworks/QtOpenGL.framework/Versions/${QT_VERSION}/QtOpenGL
install_name_tool -change QtCore.framework/Versions/${QT_VERSION}/QtCore @executable_path/../Frameworks/QtCore.framework/Versions/${QT_VERSION}/QtCore ${APP}/Contents/Plugins/libprojectM-qt.dylib
install_name_tool -change QtGui.framework/Versions/${QT_VERSION}/QtGui @executable_path/../Frameworks/QtGui.framework/Versions/${QT_VERSION}/QtGui ${APP}/Contents/Plugins/libprojectM-qt.dylib
install_name_tool -change QtXml.framework/Versions/${QT_VERSION}/QtXml @executable_path/../Frameworks/QtXml.framework/Versions/${QT_VERSION}/QtXml ${APP}/Contents/Plugins/libprojectM-qt.dylib
install_name_tool -change QtOpenGL.framework/Versions/${QT_VERSION}/QtOpenGL @executable_path/../Frameworks/QtOpenGL.framework/Versions/${QT_VERSION}/QtOpenGL ${APP}/Contents/Plugins/libprojectM-qt.dylib