1TARGET     = QtGui
2QT = core-private
3
4qtConfig(opengl.*): MODULE_CONFIG = opengl
5
6DEFINES   += QT_NO_USING_NAMESPACE QT_NO_FOREACH
7
8QMAKE_DOCS = $$PWD/doc/qtgui.qdocconf
9
10MODULE_PLUGIN_TYPES = \
11    accessiblebridge \
12    platforms \
13    platforms/darwin \
14    xcbglintegrations \
15    platformthemes \
16    platforminputcontexts \
17    generic \
18    iconengines \
19    imageformats \
20    egldeviceintegrations
21
22# This is here only because the platform plugin is no module, obviously.
23qtConfig(angle) {
24    MODULE_AUX_INCLUDES = \
25        \$\$QT_MODULE_INCLUDE_BASE/QtANGLE
26}
27
28# Code coverage with TestCocoon
29# The following is required as extra compilers use $$QMAKE_CXX instead of $(CXX).
30# Without this, testcocoon.prf is read only after $$QMAKE_CXX is used by the
31# extra compilers.
32testcocoon {
33    load(testcocoon)
34}
35
36osx: LIBS_PRIVATE += -framework AppKit
37darwin: LIBS_PRIVATE += -framework CoreGraphics
38
39CONFIG += simd optimize_full
40
41include(accessible/accessible.pri)
42include(kernel/kernel.pri)
43include(image/image.pri)
44include(text/text.pri)
45include(painting/painting.pri)
46include(util/util.pri)
47include(math3d/math3d.pri)
48include(opengl/opengl.pri)
49qtConfig(animation): include(animation/animation.pri)
50include(itemmodels/itemmodels.pri)
51include(vulkan/vulkan.pri)
52include(platform/platform.pri)
53include(rhi/rhi.pri)
54
55QMAKE_LIBS += $$QMAKE_LIBS_GUI
56
57load(qt_module)
58load(cmake_functions)
59
60win32: CMAKE_WINDOWS_BUILD = True
61
62qtConfig(angle) {
63    !mingw|qtConfig(debug_and_release): debug_suffix="d"
64    CMAKE_GL_INCDIRS = $$CMAKE_INCLUDE_DIR
65    CMAKE_ANGLE_EGL_DLL_RELEASE = libEGL.dll
66    CMAKE_ANGLE_EGL_IMPLIB_RELEASE = libEGL.$${QMAKE_EXTENSION_STATICLIB}
67    CMAKE_ANGLE_GLES2_DLL_RELEASE = libGLESv2.dll
68    CMAKE_ANGLE_GLES2_IMPLIB_RELEASE = libGLESv2.$${QMAKE_EXTENSION_STATICLIB}
69    CMAKE_ANGLE_EGL_DLL_DEBUG = libEGL$${debug_suffix}.dll
70    CMAKE_ANGLE_EGL_IMPLIB_DEBUG = libEGL$${debug_suffix}.$${QMAKE_EXTENSION_STATICLIB}
71    CMAKE_ANGLE_GLES2_DLL_DEBUG = libGLESv2$${debug_suffix}.dll
72    CMAKE_ANGLE_GLES2_IMPLIB_DEBUG = libGLESv2$${debug_suffix}.$${QMAKE_EXTENSION_STATICLIB}
73
74    CMAKE_QT_OPENGL_IMPLEMENTATION = GLESv2
75} else {
76    qtConfig(egl) {
77        CMAKE_EGL_LIBS = $$cmakeProcessLibs($$QMAKE_LIBS_EGL)
78        !isEmpty(QMAKE_LIBDIR_EGL): CMAKE_EGL_LIBDIR += $$cmakeTargetPath($$QMAKE_LIBDIR_EGL)
79    }
80
81    qtConfig(opengles2) {
82        !isEmpty(QMAKE_INCDIR_OPENGL_ES2): CMAKE_GL_INCDIRS = $$cmakeTargetPaths($$QMAKE_INCDIR_OPENGL_ES2)
83        CMAKE_OPENGL_INCDIRS = $$cmakePortablePaths($$QMAKE_INCDIR_OPENGL_ES2)
84        CMAKE_OPENGL_LIBS = $$cmakeProcessLibs($$QMAKE_LIBS_OPENGL_ES2)
85        !isEmpty(QMAKE_LIBDIR_OPENGL_ES2): CMAKE_OPENGL_LIBDIR = $$cmakePortablePaths($$QMAKE_LIBDIR_OPENGL_ES2)
86        CMAKE_GL_HEADER_NAME = GLES2/gl2.h
87        CMAKE_QT_OPENGL_IMPLEMENTATION = GLESv2
88    } else: qtConfig(opengl) {
89        !isEmpty(QMAKE_INCDIR_OPENGL): CMAKE_GL_INCDIRS = $$cmakeTargetPaths($$QMAKE_INCDIR_OPENGL)
90        CMAKE_OPENGL_INCDIRS = $$cmakePortablePaths($$QMAKE_INCDIR_OPENGL)
91        !qtConfig(dynamicgl): CMAKE_OPENGL_LIBS = $$cmakeProcessLibs($$QMAKE_LIBS_OPENGL)
92        !isEmpty(QMAKE_LIBDIR_OPENGL): CMAKE_OPENGL_LIBDIR = $$cmakePortablePaths($$QMAKE_LIBDIR_OPENGL)
93        CMAKE_GL_HEADER_NAME = GL/gl.h
94        mac: CMAKE_GL_HEADER_NAME = gl.h
95        CMAKE_QT_OPENGL_IMPLEMENTATION = GL
96    }
97}
98
99qtConfig(egl): CMAKE_EGL_INCDIRS = $$cmakePortablePaths($$QMAKE_INCDIR_EGL)
100
101QMAKE_DYNAMIC_LIST_FILE = $$PWD/QtGui.dynlist
102
103TRACEPOINT_PROVIDER = $$PWD/qtgui.tracepoints
104CONFIG += qt_tracepoints metatypes install_metatypes
105