Add KDE Connect qml file directory for macOS package
Needs ReviewPublic

Authored by Inoki on Aug 14 2019, 7:30 AM.

Details

Reviewers
vonreth
Group Reviewers
KDE Connect
Summary

macdeployqt needs to find and link relevant libs imported by qml.

There are 4 components which are using qml:

  1. KDE Connect qml application
  2. KDE Connect sms application
  3. Presenter plugin
  4. KDE Connect sftp browser

But 1 and 2 are linked with libkdeconnectcore, thus they are indirectly linked to qca-qt5. So, qmldir of 1 and 2 will be added after KDE Connect getting rid of qca-qt5 :)

Diff Detail

Repository
R877 Craft Blueprints for KDE
Lint
Lint Skipped
Unit
Unit Tests Skipped
Inoki requested review of this revision.Aug 14 2019, 7:30 AM
Inoki created this revision.

So libkdeconnectcore links the lib and not the framework?

Inoki added a comment.EditedAug 14 2019, 9:12 AM

So libkdeconnectcore links the lib and not the framework?

Yes, Craft copied qca-qt5 from qca-qt5.framework/ into Framekworks. And add this in libkdeconnectcore:
@executable_path/../Frameworks/qca-qt5 (compatibility version 2.0.0, current version 2.2.0)

And after macdeployqt, some libs in Frameworks/ are "fixed" with qca-qt5.framework/Versions/2.2.0/qca-qt5 when 1 or 2 are applied.

➜  Frameworks otool -L *.dylib | grep qca-qt5
	@executable_path/../Frameworks/qca-qt5 (compatibility version 2.0.0, current version 2.2.0)
	@executable_path/../Frameworks/qca-qt5.framework/Versions/2.2.0/qca-qt5 (compatibility version 2.0.0, current version 2.2.0)
	@executable_path/../Frameworks/qca-qt5 (compatibility version 2.0.0, current version 2.2.0)
	@executable_path/../Frameworks/qca-qt5.framework/Versions/2.2.0/qca-qt5 (compatibility version 2.0.0, current version 2.2.0)
	@executable_path/../Frameworks/qca-qt5 (compatibility version 2.0.0, current version 2.2.0)
	@executable_path/../Frameworks/qca-qt5 (compatibility version 2.0.0, current version 2.2.0)
Inoki added a comment.Aug 14 2019, 9:38 AM

I found 2 libs which are changed and recovery them in command line, it works:

➜  Frameworks install_name_tool -change @executable_path/../Frameworks/qca-qt5.framework/Versions/2.2.0/qca-qt5 @executable_path/../Frameworks/qca-qt5 libkdeconnectcore.1.dylib
➜  Frameworks install_name_tool -change @executable_path/../Frameworks/qca-qt5.framework/Versions/2.2.0/qca-qt5 @executable_path/../Frameworks/qca-qt5 libkdeconnectinterfaces.1.dyli