build libqtxdg and private/qicon_p.h

https://github.com/lxde/libqtxdg/issues/89

In the search results I see a ubuntu package that shows the path
/usr/include/qt5/QtGui/5.2.1/QtGui/private/qicon_p.h

I have /usr/include/qt5/QtGui/
but no /5.6.0 or any other folder…


from the linked issue:

Looking at the make output:
-I/usr/include/qt5/QtGui/5.6.0 -I/usr/include/qt5/QtGui/5.6.0/QtGui
-I/usr/include/qt5/QtCore/5.6.0 -I/usr/include/qt5/QtCore/5.6.0/QtCore -

I have usr/include/qt5/QtCore and /QtGui but they don’t have a 5.6.0 folder in them.

and the reply: “But you should have. That’s something wrong with your Qt deployment.”

Hi
They should use pkgconfig to to check the relevant development pc file for all the libs, flags etc. Sounds like you need to patch the files…

eg /usr/lib64/pkgconfig/Qt5Core.pc;


prefix=/usr
exec_prefix=${prefix}
libdir=${prefix}/lib64
includedir=${prefix}/include/qt5

host_bins=${prefix}/lib64/qt5/bin
qt_config=minimal-config small-config medium-config large-config full-config release_tools gtk2 gtkstyle fontconfig libudev evdev tslib xkbcommon-evdev libinput xlib xrender xcb-plugin xcb-render xcb-glx xcb-xlib xcb-sm accessibility-atspi-bridge linuxfb kms c++11 accessibility egl egl_x11 eglfs opengl shared qpa reduce_exports reduce_relocations clock-gettime clock-monotonic posix_fallocate mremap getaddrinfo ipv6ifname getifaddrs inotify eventfd threadsafe-cloexec system-jpeg system-png png system-freetype system-harfbuzz system-zlib mtdev nis cups iconv glib dbus dbus-linked openssl-linked xcb xinput2 alsa pulseaudio icu concurrent audio-backend release

Name: Qt5 Core
Description: Qt Core module
Version: 5.6.0
Libs: -lQt5Core 
Libs.private: -L/usr/lib64 -lpthread -lz -licui18n -licuuc -licudata -lpcre16 -lm -ldl -lgthread-2.0 -pthread -lglib-2.0 -lrt  
Cflags: -I${includedir}/QtCore -I${includedir}

You need to install libQt5Gui-private-headers-devel, that contains the private libQt5Gui5 headers (/usr/include/qt5/QtGui/private/qicon_p.h e.g.).

But if the application has the include paths really hardcoded to /usr/include/qt5/xxx/$version/, that won’t help either obviously.

Thanks :-]

Regardless of the aforementioned…
I just ran
find /usr -name *qicon_p.h
but it didn’t find anything.

Ah hello again wolfi… let me try that.

Actually that package produces:
/usr/include/qt5/QtGui/5.6.0/QtGui/private/qicon_p.h

So problem solved :smiley:

Thanks again!

Ah yes.
The private headers actually all install to /usr/include/qt/xxx/$version/, while the public headers are in /usr/include/qt5/xxx/ directly.

I suppose that’s because the private headers are highly specific to the particular Qt version. As they are private (and not supposed to be used by applications), they can radically change from one version to the next (even minor) without notice.