Search code examples
macosqtqmakeqt5

QMake and application bundle


I'm getting back into using Qt (5.0.1) after a few years away.

I'm having some trouble using QMAKE_BUNDLE_DATA to distribute dylibs and hopefully plugins in my OSX application bundle.

Here's what the relevant part of my application .pro file looks like:

macx {
        dylibs.path = $$DESTDIR_TARGET/Contents/Frameworks
        dylibs.files = $$DESTDIR/../lib/*
        QMAKE_BUNDLE_DATA += dylibs

        plugins.path = $$DESTDIR_TARGET/Contents/Plugins
        plugins.files = $$DESTDIR/../plugins/*
        QMAKE_BUNDLE_DATA += plugins
}

INSTALLS += target

I've verified that $$DESTDIR is pointing to the correct place and that files exist in that directory. I'm not great with Makefiles, but from what I understand, qmake is generating targets like:

../../../build/apps/MyApp.app/Contents/Frameworks/*:

These targets aren't referenced in the all target. Any ideas what I'm doing wrong?


Solution

  • I gave up on QMAKE_BUNDLE_DATA, from what I can tell it doesn't work for app_bundle targets.

    Instead I'm using INSTALLS and make install to generate the app bundle then triggering a call to macdeployqt to finish things off.

    It isn't ideal, but it does the trick.