diff options
author | Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> | 2016-09-28 18:04:41 +0200 |
---|---|---|
committer | Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> | 2016-10-04 20:20:39 +0000 |
commit | 57987ad57139be7b29e74d7eb60777b3ebb9e271 (patch) | |
tree | c93872d73171f8dd94e245cb3778e5a76c6dd461 | |
parent | cd8b7fb86517cda1adbfe8fda7beaafddfe5c9bb (diff) |
fix freetype/fontconfig configure system
convert the ugly config.tests/[...]/freetype.pri file into a custom
callback in configure.pri, and reinstate pkg-config use for freetype.
subsequently, use QMAKE_USE for the actual library references.
this fixes in particular cross-builds, as the new configure was not
passing the necessary information to the test any more, so the old .pri
file misbehaved.
Task-number: QTBUG-54911
Change-Id: I5fc9c254334a2675f7db4d54df4c77637e8e2487
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
-rw-r--r-- | config.tests/unix/fontconfig/fontconfig.pro | 1 | ||||
-rw-r--r-- | config.tests/unix/freetype/freetype.pri | 15 | ||||
-rw-r--r-- | config.tests/unix/freetype/freetype.pro | 1 | ||||
-rw-r--r-- | mkspecs/features/qpa/basicunixfontdatabase.prf | 2 | ||||
-rw-r--r-- | mkspecs/features/qpa/genericunixfontdatabase.prf | 2 | ||||
-rw-r--r-- | src/3rdparty/freetype_dependency.pri | 3 | ||||
-rw-r--r-- | src/gui/configure.json | 6 | ||||
-rw-r--r-- | src/gui/configure.pri | 15 | ||||
-rw-r--r-- | src/platformsupport/fontdatabases/fontconfig/fontconfig.pri | 2 |
9 files changed, 22 insertions, 25 deletions
diff --git a/config.tests/unix/fontconfig/fontconfig.pro b/config.tests/unix/fontconfig/fontconfig.pro index 82dcfc80a0..d6fd00aa3c 100644 --- a/config.tests/unix/fontconfig/fontconfig.pro +++ b/config.tests/unix/fontconfig/fontconfig.pro @@ -1,3 +1,2 @@ SOURCES = fontconfig.cpp CONFIG -= qt -include(../../unix/freetype/freetype.pri) diff --git a/config.tests/unix/freetype/freetype.pri b/config.tests/unix/freetype/freetype.pri deleted file mode 100644 index 05299ed2fd..0000000000 --- a/config.tests/unix/freetype/freetype.pri +++ /dev/null @@ -1,15 +0,0 @@ -!cross_compile { - TRY_INCLUDEPATHS = /include /usr/include $$QMAKE_INCDIR $$QMAKE_INCDIR_X11 $$INCLUDEPATH - # LSB doesn't allow using headers from /include or /usr/include - linux-lsb-g++:TRY_INCLUDEPATHS = $$QMAKE_INCDIR $$QMAKE_INCDIR_X11 $$INCLUDEPATH - haiku:TRY_INCLUDEPATHS += /system/develop/headers - for(p, TRY_INCLUDEPATHS) { - p = $$join(p, "", "", "/freetype2") - exists($$p):INCLUDEPATH *= $$p - } -} else { - # If we are cross-compiling, then there is still a remote possibility that - # configure detected font-config & freetype, stored in these variables. - QMAKE_CFLAGS += $$QMAKE_CFLAGS_FONTCONFIG - QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_FONTCONFIG -} diff --git a/config.tests/unix/freetype/freetype.pro b/config.tests/unix/freetype/freetype.pro index 1a9f06909a..525b60121b 100644 --- a/config.tests/unix/freetype/freetype.pro +++ b/config.tests/unix/freetype/freetype.pro @@ -1,3 +1,2 @@ SOURCES = freetype.cpp CONFIG -= qt -include(freetype.pri) diff --git a/mkspecs/features/qpa/basicunixfontdatabase.prf b/mkspecs/features/qpa/basicunixfontdatabase.prf index 80382da214..72449c8f6b 100644 --- a/mkspecs/features/qpa/basicunixfontdatabase.prf +++ b/mkspecs/features/qpa/basicunixfontdatabase.prf @@ -1,3 +1,3 @@ qtConfig(system-freetype) { - LIBS_PRIVATE += -lfreetype + QMAKE_USE_PRIVATE += freetype/linkonly } diff --git a/mkspecs/features/qpa/genericunixfontdatabase.prf b/mkspecs/features/qpa/genericunixfontdatabase.prf index 3680d5ad79..75edabeaa3 100644 --- a/mkspecs/features/qpa/genericunixfontdatabase.prf +++ b/mkspecs/features/qpa/genericunixfontdatabase.prf @@ -1,7 +1,7 @@ CONFIG += qpa/basicunixfontdatabase qtConfig(fontconfig) { DEFINES += Q_FONTCONFIGDATABASE - LIBS_PRIVATE += -lfontconfig + QMAKE_USE_PRIVATE += fontconfig/linkonly } else:!android { fonts.path = $$[QT_INSTALL_LIBS]/fonts fonts.files = $$QT_SOURCE_TREE/lib/fonts/* diff --git a/src/3rdparty/freetype_dependency.pri b/src/3rdparty/freetype_dependency.pri index 012e4af6c3..cf86b66efd 100644 --- a/src/3rdparty/freetype_dependency.pri +++ b/src/3rdparty/freetype_dependency.pri @@ -1,6 +1,5 @@ qtConfig(system-freetype) { - # pull in the proper freetype2 include directory - include($$QT_SOURCE_TREE/config.tests/unix/freetype/freetype.pri) + QMAKE_USE_PRIVATE += freetype/nolink } else: qtConfig(freetype) { INCLUDEPATH += $$PWD/freetype/include LIBS_PRIVATE += -L$$QT_BUILD_TREE/lib -lqtfreetype$$qtPlatformTargetSuffix() diff --git a/src/gui/configure.json b/src/gui/configure.json index 376359ba37..d3e32e6796 100644 --- a/src/gui/configure.json +++ b/src/gui/configure.json @@ -87,10 +87,10 @@ }, "freetype": { "label": "FreeType", - "export": "", "test": "unix/freetype", "sources": [ - "-lfreetype" + { "type": "pkgConfig", "args": "freetype2" }, + { "type": "freetype", "libs": "-lfreetype" } ] }, "fontconfig": { @@ -98,7 +98,7 @@ "test": "unix/fontconfig", "sources": [ { "type": "pkgConfig", "args": "fontconfig freetype2" }, - "-lfontconfig -lfreetype" + { "type": "freetype", "libs": "-lfontconfig -lfreetype" } ] }, "gbm": { diff --git a/src/gui/configure.pri b/src/gui/configure.pri index d79c5a6bba..10e50d3654 100644 --- a/src/gui/configure.pri +++ b/src/gui/configure.pri @@ -1,5 +1,20 @@ # custom tests +defineTest(qtConfLibrary_freetype) { + TRY_INCLUDEPATHS = $$EXTRA_INCLUDEPATH $$QMAKE_INCDIR_X11 + haiku: TRY_INCLUDEPATHS += /system/develop/headers + TRY_INCLUDEPATHS += $$QMAKE_DEFAULT_INCDIR + for (p, TRY_INCLUDEPATHS) { + includedir = $$p/freetype2 + exists($$includedir) { + $${1}.includedir = "$$val_escape(includedir)" + export($${1}.includedir) + return(true) + } + } + return(false) +} + # Check for Direct X SDK (include, lib, and direct shader compiler 'fxc'). # Up to Direct X SDK June 2010 and for MinGW, this is pointed to by the # DXSDK_DIR variable. Starting with Windows Kit 8, it is included in diff --git a/src/platformsupport/fontdatabases/fontconfig/fontconfig.pri b/src/platformsupport/fontdatabases/fontconfig/fontconfig.pri index 63097c33c1..911f0c884d 100644 --- a/src/platformsupport/fontdatabases/fontconfig/fontconfig.pri +++ b/src/platformsupport/fontdatabases/fontconfig/fontconfig.pri @@ -3,4 +3,4 @@ HEADERS += $$PWD/qfontconfigdatabase_p.h \ SOURCES += $$PWD/qfontconfigdatabase.cpp \ $$PWD/qfontenginemultifontconfig.cpp -QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_FONTCONFIG +QMAKE_USE += fontconfig/nolink |