summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>2016-09-28 18:04:41 +0200
committerOswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>2016-10-04 20:20:39 +0000
commit57987ad57139be7b29e74d7eb60777b3ebb9e271 (patch)
treec93872d73171f8dd94e245cb3778e5a76c6dd461
parentcd8b7fb86517cda1adbfe8fda7beaafddfe5c9bb (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.pro1
-rw-r--r--config.tests/unix/freetype/freetype.pri15
-rw-r--r--config.tests/unix/freetype/freetype.pro1
-rw-r--r--mkspecs/features/qpa/basicunixfontdatabase.prf2
-rw-r--r--mkspecs/features/qpa/genericunixfontdatabase.prf2
-rw-r--r--src/3rdparty/freetype_dependency.pri3
-rw-r--r--src/gui/configure.json6
-rw-r--r--src/gui/configure.pri15
-rw-r--r--src/platformsupport/fontdatabases/fontconfig/fontconfig.pri2
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