[Qbs] How to pass information to custom module via Depends ?

Christian Kandeler christian.kandeler at qt.io
Wed Feb 15 10:24:13 CET 2017

On 02/15/2017 02:51 AM, Glenn Coombs wrote:
> I have created a custom module to help wrap a dependency on the
> Qt5GStreamerUi library.  To use it I add a line like this:
>     Depends { name: "Qt5GStreamerUi" }
> to any project that needs to link against Qt5GStreamerUi.  It works fine
> but I would like to make the module more generic so that I can add a
> dependency on any library that pkg-config knows about.  I can't work out
> how to pass the name of the library through to the custom module.  I want
> to be able to write something like this:
>     Depends { name: "PkgConfig"; packageName = "Qt5GStreamerUi" }
> where PkgConfig would be the renamed and modified version of my existing
> Qt5GStreamerUi module.  Is there a way to do this ?

Depends { name: "PkgConfig" }
PkgConfig.packageName: "Qt5GStreamerUi"

Of course, this is not a viable general-purpose solution, as it limits
the PkgConfig module to one package per product.

Making the package name a list has a bunch of other problems. Also, in
the general case, you'd like to be able to find your library even if
there is no pkg-config (e.g. have fallback values for the library name
and look for it in well-known places), so usually you'll want a
dedicated named module. Perhaps a noninstantiable PkgConfig module item
would be the right solution; the concrete modules would then derive from it.

Either way, pkg-config is important enough to warrant a dedicated JIRA
task to discuss how to do it right. Feel free to open one.


More information about the Qbs mailing list