[Clam-devel] Designer plugins on macosx bundles

David García Garzón dgarcia at iua.upf.edu
Fri Jan 26 07:56:07 PST 2007


Hi, all.

We want to distribute standalone macosx[1] binaries in a bundle containing 
Qt 4 Designer and another with our own application, the Prototyper. Both use a 
designer plugin with our custom audio widgets. More details on the project 
and on why we need that, at the end, i'll try to get to the core.
[1] http://clam.iua.upf.edu/download/mac/cvssnapshots/

Following the documentation[2], we got the 'Prototyper' bundle to use the 
plugin. Just by placing it on the Contents/plugins directory (not 
Contents/plugins/designer/ which surprised me, coming from Linux and Windows 
Qt development) and adding the code:
    QDir dir(QApplication::applicationDirPath()+"/../plugins");
    loader.addPluginPath( dir.absolutePath() );
We also moved all the recursive dependencies and rewrited library references 
using this generic script [2]. The resulting bundle works really nicely.

[1] http://doc.trolltech.com/4.2/deployment-mac.html
[2] 
http://iua-share.upf.edu/svn/clam/trunk/CLAM/scons/sconstools/addDependentLibsToBundle.py

So here is the problem we need help for:
We also need to distribute a different bundle for Qt Designer, with the 
plugin, so that users can design their own interfaces to be loaded by the 
former app. But we don't want to modify the designer official source and thus 
the previous cited code can not be inserted. So, we should rely on other 
plugin location mechanisms.

We tried different mechanism without no success at all:
- Just placing it on Designer.app/Contents/plugins (and doing the library name 
reallocation as we did for Prototyper)
- Placing it on Designer.app/Contents/plugins/designer
- According to [1], we tried both locations using a qt.conf file on 
Designer.app/Contents/Resources/ containing
	[Paths]
	Plugins=plugins
 This would be even not needed believing what [2] says: by default it already 
should looks for plugins at Contents/plugins but of course this is not 
happening.
- Defining the env var QT_PLUGIN_PATH pointing to the 
Designer.app/Content/plugins with absolute path, relative to the shell 
location, to the Content and relative to the binary.
- Renaming de designer binary to avoid collision and move the plugins to 
Designer.app/Content/MacOSX/designer/

The combinatorial is so high that we could have miss some mix of conditions. 
To avoid variables related to the plugin building we used the arthur plugin 
instead ours and got the same sad results.

So, we are stuck and if anyone in the list could give us some hint it would be 
very wellcome.

David.

PS: Our project is a visual development environment for audio applications, 
which is part of the CLAM framework [1]. The idea be able to design the 
processing core with a patching tool, then build the interface with Qt 
Designer using custom audio widgets and run the whole thing without writing a 
single line of code[2]. We have this working on Linux and Windows and now we 
are porting that to MacOSX, a platform we are not very proficient.

[1] http://clam.iua.upf.edu
[2] http://iua-share.upf.edu/wikis/clam/index.php/Network_Editor_tutorial




-- 
David García Garzón
(Work) dgarcia at iua dot upf anotherdot es
(Home) vokimon at telefonica adot net
http://www.iua.upf.edu/~dgarcia




More information about the clam-devel mailing list