Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

features should be installed into /usr/lib/qt5/mkspecs/features #5

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

jmlich
Copy link

@jmlich jmlich commented Jul 6, 2023

It seems the *.prf files are currently installed into /usr/share/qt5/mkspecs/features, but in my opinion it should be in /usr/lib/qt5/mkspec/features.

The dark side is that CONFIG += iodata-qt5 silently fails - doesn't update LIBS variable and doesn't complain about missing config file

root.pro Outdated Show resolved Hide resolved
root.pro Outdated
@@ -2,7 +2,11 @@ TEMPLATE = subdirs

SUBDIRS = src tests type-to-cxx

prf.path = $$[QT_INSTALL_DATA]/mkspecs/features
greaterThan(QT_MAJOR_VERSION, 4) {
prf.path = $$[QT_HOST_DATA]/mkspecs/features
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why? Generally all the mkspecs are in the existing path.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not sure where are defined paths to include mkspec features. In my case, in in Manjaro, the path /usr/share wasn't working, but /usr/lib did. I must admit that I wasn't able to find relevant documentation. Then I have tried to some examples on github. It seems the other projects are using QT_HOST_DATA variable. In one of projects I have found with greaterThan(QT_MAJOR_VERSION, 4). My conclusion was, that the QT_INSTALL_DATA is there because of compatibility with previous version Qt. Obviously, I am not sure about it anymore.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Where mkspecs are installed is set at build time. For example for Qt6 it is done by defining INSTALL_MKSPECSDIR.
For our Qt that directory will be in /usr/share because we install the contents for archdatadir into "%{_datadir}/qt5" while all others install into %{_libdir}/qt5

So the bug is inside our Qt5 package why it didn't came up earlier. The right QMake variable in this case is QT_INSTALL_ARCHDATA.

Docs can be found here:
https://doc.qt.io/qt-5/qmake-environment-reference.html

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also please correct the commit message. It is not about /usr/lib but about QT_INSTALL_ARCHDATA, /usr/lib is just the path on some of the hosts but not all.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wasn't able to find the right value in documentation. I was following implementation in other project, which was obviously wrong. Thanks for finding out. The commit was updated accordingly.

@jmlich
Copy link
Author

jmlich commented Nov 27, 2023

updated to 0.19.14

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants