Expanding on my previous benchmarks regarding embedding libraries in app 
bundles, see the following script... on my old, slow machine I've observed it 
completing in < 10 seconds to copy both debug and release versions of the 
libraries listed below. Only two processes need to be forked, too. One instance 
of rsync for libraries/frameworks and another instance for plugins.

Incremental builds (the more important part) are virtually instantaneous (< 100 
ms).

Might be worth it to consider using rsync to implement this in qmake/qbs. Ossi 
mentioned QMAKE_BUNDLE_DATA but I'm not sure if there's a good way to exclude 
headers and such using that. Might be worth it to have a dedicated variable for 
bundled libraries (and plugins?), plus we get rsync's performance 
optimizations. Then we don't need macdeployqt, or at least most of it. :)

#!/bin/sh

if [ "$1" != "debug" ] ; then
    DEBUG=--exclude\ '*_debug'
fi

if [ -z "$QT_INSTALL_LIBS" ] ; then
    QT_INSTALL_LIBS=/Library/Frameworks
fi

# rsync is sensitive to trailing slashes
# the source directories MUST have them
rsync -a \
    --exclude '.DS_Store' \
    --exclude 'Headers' \
    --exclude '*.prl' \
    --exclude '*.dSYM' \
    $DEBUG \
    $QT_INSTALL_LIBS/QtCore.framework \
    $QT_INSTALL_LIBS/QtGui.framework \
    $QT_INSTALL_LIBS/QtNetwork.framework \
    $QT_INSTALL_LIBS/QtOpenGL.framework \
    $QT_INSTALL_LIBS/QtSql.framework \
    $QT_INSTALL_LIBS/QtSvg.framework \
    $QT_INSTALL_LIBS/QtWebKit.framework \
    $QT_INSTALL_LIBS/QtXml.framework \
    $PWD

-- 
Jake Petroules - jake.petroules at petroules.com
Chief Technology Officer - Petroules Corporation

_______________________________________________
Development mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/development

Reply via email to