From dee63753dc78306b6750fe1323ff72109a52d94c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaakko=20Ker=C3=A4nen?= Date: Tue, 29 Apr 2014 18:32:29 +0300 Subject: [PATCH] OS X|qmake: Deploy Open Asset Import Library to app bundle --- doomsday/dep_assimp.pri | 9 +++++++++ doomsday/libgui/libgui.pro | 7 ++++--- doomsday/postbuild/bundleapp.sh | 1 + 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/doomsday/dep_assimp.pri b/doomsday/dep_assimp.pri index a685a766e4..5708d8d567 100644 --- a/doomsday/dep_assimp.pri +++ b/doomsday/dep_assimp.pri @@ -60,3 +60,12 @@ INCLUDEPATH += $$aiIncDir QMAKE_CFLAGS += $$aiOpts QMAKE_CXXFLAGS += $$aiOpts LIBS += $$aiLibs + +macx { + defineTest(linkBinaryToBundledAssimp) { + # 1: binary + # 2: relative path to Frameworks + doPostLink(install_name_tool -change "$$ASSIMP_DIR/lib/libassimp.3.dylib" \ + "@executable_path/$${2}/Frameworks/libassimp.3.dylib" "$$1") + } +} diff --git a/doomsday/libgui/libgui.pro b/doomsday/libgui/libgui.pro index 63e5f73c00..8a2d72990b 100644 --- a/doomsday/libgui/libgui.pro +++ b/doomsday/libgui/libgui.pro @@ -220,9 +220,10 @@ macx { doPostLink("install_name_tool -id @executable_path/../Frameworks/libdeng_gui.1.dylib libdeng_gui.1.dylib") - # Update the library included in the main app bundle. - doPostLink("mkdir -p ../client/Doomsday.app/Contents/Frameworks") - doPostLink("cp -fRp libdeng_gui*dylib ../client/Doomsday.app/Contents/Frameworks") + # Prepare Assimp for deployment. + doPostLink("cp -fRp $$ASSIMP_DIR/lib/libassimp*dylib .") + doPostLink("install_name_tool -id @executable_path/../Frameworks/libassimp.3.dylib libassimp.3.dylib") + linkBinaryToBundledAssimp(libdeng_gui.1.dylib, ..) } else { INSTALLS += target diff --git a/doomsday/postbuild/bundleapp.sh b/doomsday/postbuild/bundleapp.sh index 6f575cec57..8b4b95b0a8 100755 --- a/doomsday/postbuild/bundleapp.sh +++ b/doomsday/postbuild/bundleapp.sh @@ -26,6 +26,7 @@ echo "Copying shared libraries..." $CP $BUILDDIR/../libdeng2/libdeng2*dylib $APPDIR/Frameworks $CP $BUILDDIR/../libdeng1/libdeng1*dylib $APPDIR/Frameworks $CP $BUILDDIR/../libgui/libdeng_gui*dylib $APPDIR/Frameworks +$CP $BUILDDIR/../libgui/libassimp*dylib $APPDIR/Frameworks $CP $BUILDDIR/../libappfw/libdeng_appfw*dylib $APPDIR/Frameworks $CP $BUILDDIR/../libshell/libdeng_shell*dylib $APPDIR/Frameworks