Qt-interest Archive, January 2007
Designer plugins on macosx bundles
Message 1 in thread
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
--
[ signature omitted ]
Message 2 in thread
I'd like to insist on this question.
Is there a known bug on where mac osx qt/designer (4.2) looks for plugins?
It does not seem to do what the doc says
http://doc.trolltech.com/4.2/deployment-mac.html
Thanks
Pau
David GarcÃa GarzÃn wrote:
> 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
>
>
>
>
>
--
[ signature omitted ]