[Interest] how do I tell cmake that I need libQt5PositioningQuick.so

Dirk Hohndel dirk at hohndel.org
Tue Jul 10 17:28:29 CEST 2018


> On Jul 10, 2018, at 8:19 AM, Thiago Macieira <thiago.macieira at intel.com> wrote:
> 
> On Tuesday, 10 July 2018 08:00:37 PDT Dirk Hohndel wrote:
>>> On Jul 10, 2018, at 7:23 AM, Thiago Macieira <thiago.macieira at intel.com>
>>> wrote:> 
>>> On Monday, 9 July 2018 23:42:06 PDT Dirk Hohndel wrote:
>>>> When upgrading to Qt 5.11 we ran into an odd problem when packaging our
>>>> app... we seem to be missing a dependency for libQt5PositioningQuick.so
>>>> (or
>>>> QtPositioningQuick.framework on Mac). What's odd is that this worked
>>>> perfectly fine with Qt 5.10 - so nothing from our side has changed.
>>>> 
>>>> I'd love to hear if there's a magic incantation I could tell cmake to
>>>> make
>>>> sure that library is bundled.
>>> 
>>> There should be no magic, not more than for any other module. The cmake
>>> files are autogenerated for all Qt modules, so Qt5PositioningQuick is not
>>> different from any other.
>> 
>> Yet we have to manually copy/bundle that library on Mac, we still haven't
>> figured out how to get it added on Windows or Android...
>> I'm happy to show you a LOT more details :-)
>> But what would help you understand what's going on?
> 
> Well, start with the description of what happened that led you to the 
> conclusion that you needed this module. The only reference I see in the 
> Subsurface source code to QtPositionngQuick seems to be a workaround to this 
> particular issue.
> 
> My wild guess: a new plugin that gets deployed by macdeployqt, which links to 
> this library, but isn't added by macdeployqt.

What happens is that when Subsurface (or Subsurface-mobile) starts, loading the
Map fails (that's QML in both desktop and mobile app). And when you look at the 
error messages, it's because a QML component isn't loaded because it needs
this library.

You can easily see this for yourself. Build from latest master on your Mac, try it.
Everything works. Now revert the one commit that adds the workaround, remove
Subsurface.app (so you don't get the already copied Framework) and build again.
You'll see the failure to load the Map and the corresponding errors in the console
output.

I'm happy to provide those here, but I think you have a much better chance to
figure out what's wrong if you get to play with it yourself :-)

And building Subsurface on the Mac has become super easy lately.

/D


More information about the Interest mailing list