summaryrefslogtreecommitdiffstats
path: root/src/gui/configure.cmake
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2020-05-29 11:03:49 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2020-06-15 20:58:35 +0200
commitb89d8c406b5809f868f1a06d9ab05096ecb226f3 (patch)
tree6a3d072cc76769daf6914eb1fe906d6b9501fb11 /src/gui/configure.cmake
parentf626c73b28b52ecf3a3fb20592f2134337f89d35 (diff)
Windows font databases: Enable DirectWrite for cmake
- Remove the DirectWrite1,2 features. Windows 10 should have them, only MinGW is missing directwrite3. The feature directwrite now implies DirectWrite2. - Remove the custom defines. - Port over the configure tests from configure.json and add missing ones for DirectWrite(2), DirectWrite3 and Direct2D and Direct2D 1.1, fix the conditions and report them in the summary. Task-number: QTBUG-83255 Fixes: QTBUG-83931 Change-Id: I1fc68997adc715bd5c6d7ec457f58c46e1f81c6a Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'src/gui/configure.cmake')
-rw-r--r--src/gui/configure.cmake83
1 files changed, 68 insertions, 15 deletions
diff --git a/src/gui/configure.cmake b/src/gui/configure.cmake
index 51acfaf6f3..a4554791cf 100644
--- a/src/gui/configure.cmake
+++ b/src/gui/configure.cmake
@@ -532,6 +532,68 @@ xcb_xkb_get_kbd_by_name_replies_key_names_value_list_sizeof(nullptr, 0, 0, 0, 0,
}
")
+# special case begin
+# directwrite (assumes DirectWrite2)
+qt_config_compile_test(directwrite
+ LABEL "WINDOWS directwrite"
+ LIBRARIES
+ dwrite
+ CODE
+"#include <dwrite_2.h>
+int main(int, char **)
+{
+ IUnknown *factory = nullptr;
+ DWriteCreateFactory(DWRITE_FACTORY_TYPE_SHARED, __uuidof(IDWriteFactory2),
+ &factory);
+ return 0;
+}
+")
+
+# directwrite3 (not present in MinGW)
+qt_config_compile_test(directwrite3
+ LABEL "WINDOWS directwrite3"
+ LIBRARIES
+ dwrite
+ CODE
+"#include <dwrite_3.h>
+int main(int, char **)
+{
+ IUnknown *factory = nullptr;
+ DWriteCreateFactory(DWRITE_FACTORY_TYPE_SHARED, __uuidof(IDWriteFactory3),
+ &factory);
+ return 0;
+}
+")
+
+qt_config_compile_test(d2d1
+ LABEL "WINDOWS Direct2D"
+ LIBRARIES
+ d2d1
+ CODE
+"#include <d2d1.h>
+int main(int, char **)
+{
+ void *factory = nullptr;
+ D2D1_FACTORY_OPTIONS options{0};
+ D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, GUID{}, &options, &factory);
+ return 0;
+}
+")
+
+qt_config_compile_test(d2d1_1
+ LABEL "WINDOWS Direct2D 1.1"
+ LIBRARIES
+ d2d1
+ CODE
+"#include <d2d1_1.h>
+int main(int, char **)
+{
+ ID2D1Factory1 *d2dFactory;
+ D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, &d2dFactory);
+ return 0;
+}
+")
+# special case end
#### Features
@@ -549,31 +611,21 @@ qt_feature("directfb" PRIVATE
)
qt_feature("directwrite" PRIVATE
LABEL "DirectWrite"
- CONDITION libs.dwrite OR FIXME
- EMIT_IF WIN32
-)
-qt_feature("directwrite1" PRIVATE
- LABEL "DirectWrite 1"
- CONDITION libs.dwrite_1 OR FIXME
+ CONDITION TEST_directwrite # special case
EMIT_IF WIN32
)
qt_feature("directwrite3" PRIVATE
LABEL "DirectWrite 3"
- CONDITION QT_FEATURE_directwrite1 AND libs.dwrite_3 OR FIXME
- EMIT_IF WIN32
-)
-qt_feature("directwrite2" PRIVATE
- LABEL "DirectWrite 2"
- CONDITION QT_FEATURE_directwrite1 AND libs.dwrite_2 OR FIXME
+ CONDITION QT_FEATURE_directwrite AND TEST_directwrite3 # special case
EMIT_IF WIN32
)
qt_feature("direct2d" PRIVATE
LABEL "Direct 2D"
- CONDITION WIN32 AND libs.d2d1 OR FIXME
+ CONDITION WIN32 AND NOT WINRT AND TEST_d2d1 # special case
)
qt_feature("direct2d1_1" PRIVATE
LABEL "Direct 2D 1.1"
- CONDITION QT_FEATURE_direct2d AND libs.d2d1_1 OR FIXME
+ CONDITION QT_FEATURE_direct2d AND TEST_d2d1_1 # special case
)
qt_feature("evdev" PRIVATE
LABEL "evdev"
@@ -1219,8 +1271,9 @@ qt_configure_end_summary_section() # end of "GL integrations" section
qt_configure_end_summary_section() # end of "XCB" section
qt_configure_add_summary_section(NAME "Windows")
qt_configure_add_summary_entry(ARGS "direct2d")
+qt_configure_add_summary_entry(ARGS "direct2d1_1") ### special case
qt_configure_add_summary_entry(ARGS "directwrite")
-qt_configure_add_summary_entry(ARGS "directwrite2")
+qt_configure_add_summary_entry(ARGS "directwrite3")
qt_configure_end_summary_section() # end of "Windows" section
qt_configure_end_summary_section() # end of "QPA backends" section
qt_configure_add_report_entry(