bilinear raw conversion very fast and with openmp
This commit is contained in:
98
tools/osx/make-app-bundle
Executable file
98
tools/osx/make-app-bundle
Executable file
@@ -0,0 +1,98 @@
|
||||
#!/bin/bash
|
||||
# Function checkLink:
|
||||
# args: $1 - file
|
||||
#
|
||||
# Will loop through all dynamic links for $file, and update each to be relative.
|
||||
function checkLink {
|
||||
#echo "checkLink called with $1 $2"
|
||||
local FILE=$1
|
||||
|
||||
otool -L $FILE | grep -v "${APP}" | grep -v '/usr/lib' | grep -v '/System/' | grep -v "@executable_path" | cut -f 1 -d ' ' | while read X
|
||||
do
|
||||
local NAME=${LIB}/`basename "$X"`
|
||||
if [ ! -f "${NAME}" ]
|
||||
then
|
||||
cp $X "${NAME}"
|
||||
|
||||
#Recursively update the linkage of libraries
|
||||
checkLink "${NAME}"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
APP=RawTherapee.app
|
||||
CONTENTS=${APP}/Contents
|
||||
RESOURCES=${CONTENTS}/Resources
|
||||
MACOS=${CONTENTS}/MacOS
|
||||
BIN=${MACOS}/bin
|
||||
ETC=${MACOS}/etc
|
||||
LIB=${MACOS}/lib
|
||||
SHARE=${MACOS}/share
|
||||
RELEASE=release
|
||||
DMG=${RELEASE}/rawtherapee_osx105_`date "+%Y-%m-%d"`_release-3.0-a1+`hg log | head -1 | cut -f 4 -d ' ' | sed 's/:/-/g'`.dmg
|
||||
EXECUTABLE=rt
|
||||
|
||||
#Find where MacPorts is installed. We take a known binary (cmake), which is in <MacPorts>/bin, and
|
||||
# go up a level to get the main install folder.
|
||||
MACPORTS_PREFIX=`which cmake`
|
||||
MACPORTS_PREFIX=`dirname $MACPORTS_PREFIX`
|
||||
MACPORTS_PREFIX=`dirname $MACPORTS_PREFIX`
|
||||
|
||||
if [ ! -d ${RELEASE} ]; then
|
||||
echo "Please run this from the root of the project; i.e. './tools/osx/make-app-bundle'."
|
||||
exit
|
||||
fi
|
||||
|
||||
if [ -d "${APP}" ]; then
|
||||
echo "Removing old application..."
|
||||
rm -rf "${APP}"
|
||||
fi
|
||||
echo "Removing any old disk images..."
|
||||
rm ${RELEASE}/rawtherapee*.dmg
|
||||
|
||||
echo "Making application directory structure..."
|
||||
mkdir -p "${RESOURCES}"
|
||||
mkdir -p "${ETC}"
|
||||
mkdir -p "${LIB}"
|
||||
mkdir -p "${SHARE}/mime"
|
||||
|
||||
#Copy over non-explicitly linked libraries
|
||||
echo "Copying libraries from ${MACPORTS_PREFIX}..."
|
||||
cp -R ${MACPORTS_PREFIX}/lib/pango ${LIB}
|
||||
cp -R ${MACPORTS_PREFIX}/lib/gtk-2.0 ${LIB}
|
||||
|
||||
#Copy over mimes (if a mime is copied, and nobody hears, is it really copied?)
|
||||
echo "Copying shared files from ${MACPORTS_PREFIX}..."
|
||||
cp -R ${MACPORTS_PREFIX}/share/mime/* ${SHARE}/mime
|
||||
|
||||
#Copy over etc files, and modify as needed
|
||||
echo "Copying configuration files from ${MACPORTS_PREFIX} and modifying for standalone app bundle..."
|
||||
cp -R $MACPORTS_PREFIX/etc/gtk-2.0 ${ETC}
|
||||
cp -R $MACPORTS_PREFIX/etc/pango ${ETC}
|
||||
ESCAPED_MACPORTS_PREFIX=`echo ${MACPORTS_PREFIX} | sed -e 's/\\//\\\\\\//g'`
|
||||
sed -i .bak -e "s/${ESCAPED_MACPORTS_PREFIX}/@executable_path/g" ${ETC}/gtk-2.0/gdk-pixbuf.loaders ${ETC}/pango/pango.modules
|
||||
echo -e "[Pango]\nModuleFiles = /tmp/${EXECUTABLE}_pango.modules" > ${ETC}/pango/pangorc
|
||||
|
||||
|
||||
#Copy over the release files
|
||||
echo "Copying release files..."
|
||||
cp -R release/* ${MACOS}
|
||||
|
||||
#Copy application-specific stuff like icons and startup script
|
||||
echo "Creating required application bundle files..."
|
||||
cp ./tools/osx/Info.plist ${CONTENTS}
|
||||
cp tools/osx/Icons.icns ${RESOURCES}
|
||||
cp tools/osx/start ${MACOS}
|
||||
|
||||
#Copy and relink the explicitly defined libraries
|
||||
echo "Recursively copying libraries referenced by executable..."
|
||||
checkLink "${MACOS}/${EXECUTABLE}"
|
||||
|
||||
|
||||
#Make a .dmg for distribution and delete the .app
|
||||
echo "Creating distribution .dmg..."
|
||||
hdiutil create -srcdir ${APP} ${DMG}
|
||||
echo "Cleaning up..."
|
||||
rm -rf ${APP}
|
||||
|
||||
echo "All done!"
|
Reference in New Issue
Block a user