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>
This commit is contained in:
parent
f626c73b28
commit
b89d8c406b
@ -590,30 +590,15 @@ qt_extend_target(Gui CONDITION QT_FEATURE_direct2d AND QT_FEATURE_directwrite AN
|
||||
qt_extend_target(Gui CONDITION QT_FEATURE_direct2d AND QT_FEATURE_directwrite AND QT_FEATURE_directwrite3 AND WIN32
|
||||
SOURCES
|
||||
text/windows/qwindowsdirectwritefontdatabase.cpp text/windows/qwindowsdirectwritefontdatabase_p.h
|
||||
DEFINES
|
||||
QT_USE_DIRECTWRITE2
|
||||
QT_USE_DIRECTWRITE3
|
||||
LIBRARIES
|
||||
dwrite_3
|
||||
)
|
||||
|
||||
qt_extend_target(Gui CONDITION QT_FEATURE_direct2d AND QT_FEATURE_directwrite AND QT_FEATURE_directwrite2 AND WIN32 AND NOT QT_FEATURE_directwrite3
|
||||
DEFINES
|
||||
QT_USE_DIRECTWRITE2
|
||||
qt_extend_target(Gui CONDITION QT_FEATURE_direct2d AND QT_FEATURE_directwrite AND WIN32 AND NOT QT_FEATURE_directwrite3
|
||||
LIBRARIES
|
||||
dwrite_2
|
||||
)
|
||||
|
||||
qt_extend_target(Gui CONDITION QT_FEATURE_direct2d AND QT_FEATURE_directwrite AND WIN32 AND NOT QT_FEATURE_directwrite2 AND NOT QT_FEATURE_directwrite3
|
||||
LIBRARIES
|
||||
dwrite
|
||||
)
|
||||
|
||||
qt_extend_target(Gui CONDITION WIN32 AND (NOT QT_FEATURE_direct2d OR NOT QT_FEATURE_directwrite)
|
||||
DEFINES
|
||||
QT_NO_DIRECTWRITE
|
||||
)
|
||||
|
||||
qt_extend_target(Gui CONDITION MINGW AND WIN32
|
||||
LIBRARIES
|
||||
uuid
|
||||
@ -684,7 +669,7 @@ qt_extend_target(Gui CONDITION QT_FEATURE_vulkan
|
||||
Vulkan::Vulkan_nolink
|
||||
)
|
||||
|
||||
#### Keys ignored in scope 102:.:vulkan:vulkan/vulkan.pri:QT_FEATURE_vkgen:
|
||||
#### Keys ignored in scope 99:.:vulkan:vulkan/vulkan.pri:QT_FEATURE_vkgen:
|
||||
# QMAKE_EXTRA_COMPILERS = "qvkgen_h" "qvkgen_ph" "qvkgen_pimpl"
|
||||
# QMAKE_QVKGEN_INPUT = "vulkan/vk.xml"
|
||||
# QMAKE_QVKGEN_LICENSE_HEADER = "$$QT_SOURCE_TREE/header.LGPL"
|
||||
@ -700,10 +685,10 @@ qt_extend_target(Gui CONDITION QT_FEATURE_vulkan
|
||||
# qvkgen_pimpl.input = "QMAKE_QVKGEN_INPUT"
|
||||
# qvkgen_pimpl.output = "$$OUT_PWD/vulkan/qvulkanfunctions_p.cpp"
|
||||
|
||||
#### Keys ignored in scope 103:.:vulkan:vulkan/vulkan.pri:QT_FEATURE_vulkan:
|
||||
#### Keys ignored in scope 100:.:vulkan:vulkan/vulkan.pri:QT_FEATURE_vulkan:
|
||||
# qvkgen_h.variable_out = "HEADERS"
|
||||
|
||||
#### Keys ignored in scope 104:.:vulkan:vulkan/vulkan.pri:else:
|
||||
#### Keys ignored in scope 101:.:vulkan:vulkan/vulkan.pri:else:
|
||||
# qvkgen_h.CONFIG = "target_predeps" "no_link"
|
||||
|
||||
qt_extend_target(Gui CONDITION WASM
|
||||
|
1251
src/gui/.prev_configure.cmake
Normal file
1251
src/gui/.prev_configure.cmake
Normal file
File diff suppressed because it is too large
Load Diff
@ -698,28 +698,13 @@ qt_extend_target(Gui CONDITION QT_FEATURE_direct2d AND QT_FEATURE_directwrite AN
|
||||
qt_extend_target(Gui CONDITION QT_FEATURE_direct2d AND QT_FEATURE_directwrite AND QT_FEATURE_directwrite3 AND WIN32
|
||||
SOURCES
|
||||
text/windows/qwindowsdirectwritefontdatabase.cpp text/windows/qwindowsdirectwritefontdatabase_p.h
|
||||
DEFINES
|
||||
QT_USE_DIRECTWRITE2
|
||||
QT_USE_DIRECTWRITE3
|
||||
LIBRARIES
|
||||
dwrite_3
|
||||
dwrite # special case
|
||||
)
|
||||
|
||||
qt_extend_target(Gui CONDITION QT_FEATURE_direct2d AND QT_FEATURE_directwrite AND QT_FEATURE_directwrite2 AND WIN32 AND NOT QT_FEATURE_directwrite3
|
||||
DEFINES
|
||||
QT_USE_DIRECTWRITE2
|
||||
qt_extend_target(Gui CONDITION QT_FEATURE_direct2d AND QT_FEATURE_directwrite AND WIN32 AND NOT QT_FEATURE_directwrite3
|
||||
LIBRARIES
|
||||
dwrite_2
|
||||
)
|
||||
|
||||
qt_extend_target(Gui CONDITION QT_FEATURE_direct2d AND QT_FEATURE_directwrite AND WIN32 AND NOT QT_FEATURE_directwrite2 AND NOT QT_FEATURE_directwrite3
|
||||
LIBRARIES
|
||||
dwrite
|
||||
)
|
||||
|
||||
qt_extend_target(Gui CONDITION WIN32 AND (NOT QT_FEATURE_direct2d OR NOT QT_FEATURE_directwrite)
|
||||
DEFINES
|
||||
QT_NO_DIRECTWRITE
|
||||
dwrite # special case
|
||||
)
|
||||
|
||||
qt_extend_target(Gui CONDITION MINGW AND WIN32
|
||||
@ -848,10 +833,10 @@ add_custom_command(
|
||||
# qvkgen_pimpl.input = "QMAKE_QVKGEN_INPUT"
|
||||
# qvkgen_pimpl.output = "$$OUT_PWD/vulkan/qvulkanfunctions_p.cpp"
|
||||
|
||||
#### Keys ignored in scope 103:.:vulkan:vulkan/vulkan.pri:QT_FEATURE_vulkan:
|
||||
#### Keys ignored in scope 100:.:vulkan:vulkan/vulkan.pri:QT_FEATURE_vulkan:
|
||||
# qvkgen_h.variable_out = "HEADERS"
|
||||
|
||||
#### Keys ignored in scope 104:.:vulkan:vulkan/vulkan.pri:else:
|
||||
#### Keys ignored in scope 101:.:vulkan:vulkan/vulkan.pri:else:
|
||||
# qvkgen_h.CONFIG = "target_predeps" "no_link"
|
||||
|
||||
qt_extend_target(Gui CONDITION WASM
|
||||
|
@ -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(
|
||||
|
@ -96,27 +96,6 @@
|
||||
{ "type": "pkgConfig", "args": "directfb" }
|
||||
]
|
||||
},
|
||||
"dwrite": {
|
||||
"label": "DirectWrite",
|
||||
"test": {
|
||||
"main": [
|
||||
"IDWriteFactory *factory = 0;",
|
||||
"DWriteCreateFactory(DWRITE_FACTORY_TYPE_SHARED, __uuidof(IDWriteFactory),",
|
||||
" (IUnknown **)(&factory));"
|
||||
]
|
||||
},
|
||||
"headers": "dwrite.h",
|
||||
"sources": [
|
||||
"-ldwrite"
|
||||
]
|
||||
},
|
||||
"dwrite_1": {
|
||||
"label": "DirectWrite 1",
|
||||
"headers": "dwrite_1.h",
|
||||
"sources": [
|
||||
"-ldwrite"
|
||||
]
|
||||
},
|
||||
"dwrite_2": {
|
||||
"label": "DirectWrite 2",
|
||||
"test": {
|
||||
@ -1046,25 +1025,13 @@
|
||||
"directwrite": {
|
||||
"label": "DirectWrite",
|
||||
"emitIf": "config.win32",
|
||||
"condition": "libs.dwrite",
|
||||
"output": [ "privateFeature" ]
|
||||
},
|
||||
"directwrite1": {
|
||||
"label": "DirectWrite 1",
|
||||
"emitIf": "config.win32",
|
||||
"condition": "libs.dwrite_1",
|
||||
"condition": "libs.dwrite_2",
|
||||
"output": [ "privateFeature" ]
|
||||
},
|
||||
"directwrite3": {
|
||||
"label": "DirectWrite 3",
|
||||
"emitIf": "config.win32",
|
||||
"condition": "features.directwrite1 && libs.dwrite_3",
|
||||
"output": [ "privateFeature" ]
|
||||
},
|
||||
"directwrite2": {
|
||||
"label": "DirectWrite 2",
|
||||
"emitIf": "config.win32",
|
||||
"condition": "features.directwrite1 && libs.dwrite_2",
|
||||
"condition": "features.directwrite && libs.dwrite_3",
|
||||
"output": [ "privateFeature" ]
|
||||
},
|
||||
"direct2d": {
|
||||
@ -1874,7 +1841,7 @@
|
||||
"section": "Windows",
|
||||
"condition": "config.win32",
|
||||
"entries": [
|
||||
"direct2d", "directwrite", "directwrite2"
|
||||
"direct2d", "directwrite", "directwrite3"
|
||||
]
|
||||
}
|
||||
]
|
||||
|
@ -51,6 +51,7 @@
|
||||
// We mean it.
|
||||
//
|
||||
|
||||
#include <QtGui/qtguiglobal.h>
|
||||
#include <QtGui/private/qtgui-config_p.h>
|
||||
|
||||
QT_REQUIRE_CONFIG(directwrite3);
|
||||
|
@ -19,22 +19,16 @@ qtConfig(freetype) {
|
||||
qtConfig(directwrite):qtConfig(direct2d) {
|
||||
qtConfig(directwrite3) {
|
||||
QMAKE_USE_PRIVATE += dwrite_3
|
||||
DEFINES *= QT_USE_DIRECTWRITE3 QT_USE_DIRECTWRITE2
|
||||
|
||||
SOURCES += text/windows/qwindowsdirectwritefontdatabase.cpp
|
||||
HEADERS += text/windows/qwindowsdirectwritefontdatabase_p.h
|
||||
} else: qtConfig(directwrite2) {
|
||||
QMAKE_USE_PRIVATE += dwrite_2
|
||||
DEFINES *= QT_USE_DIRECTWRITE2
|
||||
} else {
|
||||
QMAKE_USE_PRIVATE += dwrite
|
||||
QMAKE_USE_PRIVATE += dwrite_2
|
||||
}
|
||||
QMAKE_USE_PRIVATE += d2d1
|
||||
|
||||
SOURCES += text/windows/qwindowsfontenginedirectwrite.cpp
|
||||
HEADERS += text/windows/qwindowsfontenginedirectwrite_p.h
|
||||
} else {
|
||||
DEFINES *= QT_NO_DIRECTWRITE
|
||||
}
|
||||
|
||||
QMAKE_USE_PRIVATE += advapi32 ole32 user32 gdi32
|
||||
|
@ -21,7 +21,7 @@ endif()
|
||||
if(WIN32)
|
||||
add_subdirectory(windows)
|
||||
endif()
|
||||
if(QT_FEATURE_direct2d1_1 AND QT_FEATURE_directwrite1)
|
||||
if(QT_FEATURE_direct2d1_1 AND QT_FEATURE_directwrite)
|
||||
add_subdirectory(direct2d)
|
||||
endif()
|
||||
if(QNX)
|
||||
|
@ -21,7 +21,7 @@ endif()
|
||||
if(WIN32)
|
||||
add_subdirectory(windows)
|
||||
endif()
|
||||
if(QT_FEATURE_direct2d1_1 AND QT_FEATURE_directwrite1)
|
||||
if(QT_FEATURE_direct2d1_1 AND QT_FEATURE_directwrite)
|
||||
# add_subdirectory(direct2d) # special case TODO
|
||||
endif()
|
||||
if(QNX)
|
||||
|
@ -4,7 +4,7 @@ QT += \
|
||||
core-private gui-private
|
||||
|
||||
LIBS += -ldwmapi -lversion -ld3d11 -ldxgi -ldxguid
|
||||
QMAKE_USE_PRIVATE += gdi32 dwrite_1 d2d1_1
|
||||
QMAKE_USE_PRIVATE += gdi32 dwrite_2 d2d1_1
|
||||
|
||||
include(../windows/windows.pri)
|
||||
|
||||
|
@ -16,7 +16,7 @@ osx: SUBDIRS += cocoa
|
||||
|
||||
win32: SUBDIRS += windows
|
||||
|
||||
qtConfig(direct2d1_1):qtConfig(directwrite1) {
|
||||
qtConfig(direct2d1_1):qtConfig(directwrite) {
|
||||
SUBDIRS += direct2d
|
||||
}
|
||||
|
||||
|
@ -90,13 +90,7 @@ qt_extend_target(QWindowsIntegrationPlugin CONDITION QT_FEATURE_opengl
|
||||
Qt::OpenGLPrivate
|
||||
)
|
||||
|
||||
qt_extend_target(QWindowsIntegrationPlugin CONDITION QT_FEATURE_directwrite3
|
||||
DEFINES
|
||||
QT_USE_DIRECTWRITE2
|
||||
QT_USE_DIRECTWRITE3
|
||||
)
|
||||
|
||||
#### Keys ignored in scope 4:.:.:windows.pro:NOT TARGET___equals____ss_QT_DEFAULT_QPA_PLUGIN:
|
||||
#### Keys ignored in scope 3:.:.:windows.pro:NOT TARGET___equals____ss_QT_DEFAULT_QPA_PLUGIN:
|
||||
# PLUGIN_EXTENDS = "-"
|
||||
|
||||
qt_extend_target(QWindowsIntegrationPlugin CONDITION QT_FEATURE_opengl AND NOT QT_FEATURE_dynamicgl
|
||||
|
@ -91,13 +91,7 @@ qt_extend_target(QWindowsIntegrationPlugin CONDITION QT_FEATURE_opengl
|
||||
Qt::OpenGLPrivate
|
||||
)
|
||||
|
||||
qt_extend_target(QWindowsIntegrationPlugin CONDITION QT_FEATURE_directwrite3
|
||||
DEFINES
|
||||
QT_USE_DIRECTWRITE2
|
||||
QT_USE_DIRECTWRITE3
|
||||
)
|
||||
|
||||
#### Keys ignored in scope 4:.:.:windows.pro:NOT TARGET___equals____ss_QT_DEFAULT_QPA_PLUGIN:
|
||||
#### Keys ignored in scope 3:.:.:windows.pro:NOT TARGET___equals____ss_QT_DEFAULT_QPA_PLUGIN:
|
||||
# PLUGIN_EXTENDS = "-"
|
||||
|
||||
qt_extend_target(QWindowsIntegrationPlugin CONDITION QT_FEATURE_opengl AND NOT QT_FEATURE_dynamicgl
|
||||
|
@ -5,8 +5,6 @@ QT += \
|
||||
|
||||
qtConfig(opengl): QT += opengl-private
|
||||
|
||||
qtConfig(directwrite3): DEFINES *= QT_USE_DIRECTWRITE2 QT_USE_DIRECTWRITE3
|
||||
|
||||
LIBS += -ldwmapi
|
||||
QMAKE_USE_PRIVATE += gdi32
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user