Fix framework include paths in .pc files
The macOS framework build of Qt copies headers to each framework instead of a centralized include location. Update the .pc file generator to match this behavior. Add two include paths to the .pc files: -Ipath/to/lib/foo.framework/Headers This makes #include <FooHeader> work. -Fpath/to/lib This makes #include <Foo/FooHeader> work. Task-number: QTBUG-35256 Change-Id: I013ce161c904fe6b7bbb03e33c163d32fdda0647 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
This commit is contained in:
parent
3b4211ec47
commit
0e844eff19
@ -271,8 +271,13 @@ load(qt_targets)
|
||||
QMAKE_PKGCONFIG_LIBDIR = $$[QT_HOST_LIBS]
|
||||
else: \
|
||||
QMAKE_PKGCONFIG_LIBDIR = $$[QT_INSTALL_LIBS/raw]
|
||||
QMAKE_PKGCONFIG_INCDIR = $$[QT_INSTALL_HEADERS/raw]
|
||||
QMAKE_PKGCONFIG_CFLAGS = -D$$MODULE_DEFINE -I${includedir}/$$MODULE_INCNAME
|
||||
lib_bundle {
|
||||
QMAKE_PKGCONFIG_INCDIR = $$[QT_INSTALL_LIBS/raw]/$${MODULE_INCNAME}.framework/Headers
|
||||
QMAKE_PKGCONFIG_CFLAGS = -D$$MODULE_DEFINE
|
||||
} else {
|
||||
QMAKE_PKGCONFIG_INCDIR = $$[QT_INSTALL_HEADERS/raw]
|
||||
QMAKE_PKGCONFIG_CFLAGS = -D$$MODULE_DEFINE -I${includedir}/$$MODULE_INCNAME
|
||||
}
|
||||
QMAKE_PKGCONFIG_NAME = $$replace(TARGET, ^Qt, "Qt$$QT_MAJOR_VERSION ")
|
||||
QMAKE_PKGCONFIG_FILE = $$replace(TARGET, ^Qt, Qt$$QT_MAJOR_VERSION)
|
||||
for(i, MODULE_DEPENDS): \
|
||||
|
@ -3328,6 +3328,10 @@ MakefileGenerator::writePkgConfigFile()
|
||||
;
|
||||
if (!project->values("QMAKE_DEFAULT_INCDIRS").contains(includeDir))
|
||||
t << "-I${includedir}";
|
||||
if (target_mode == TARG_MAC_MODE && project->isActiveConfig("lib_bundle")
|
||||
&& libDir != QLatin1String("/Library/Frameworks")) {
|
||||
t << " -F${libdir}";
|
||||
}
|
||||
t << endl;
|
||||
|
||||
// requires
|
||||
|
Loading…
x
Reference in New Issue
Block a user