summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/xcb/CMakeLists.txt
blob: 1706cdf7134c4fc27996155d6ae1275b025791c1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
# Generated from xcb.pro.

# begin special case:
qt_find_package(X11_XCB
    PROVIDED_TARGETS
        X11::XCB
)
qt_find_package(X11
    PROVIDED_TARGETS
        X11::X11
)
qt_find_package(XCB)
qt_find_package(XKB)
qt_find_package(PkgConfig)
qt_find_package(WrapFreetype)
qt_find_package(GLIB2
    PROVIDED_TARGETS
        GLIB2::GLIB2
)
qt_find_package(XRender PROVIDED_TARGETS PkgConfig::XRender)
qt_find_package(XKB_COMMON_X11 PROVIDED_TARGETS PkgConfig::XKB_COMMON_X11)

# end special case:

#####################################################################
## XcbQpa Module:
#####################################################################

add_qt_module(XcbQpa
    INTERNAL_MODULE
    NO_MODULE_HEADERS
    SOURCES
        gl_integrations/qxcbglintegration.cpp gl_integrations/qxcbglintegration.h
        gl_integrations/qxcbglintegrationfactory.cpp gl_integrations/qxcbglintegrationfactory.h
        gl_integrations/qxcbglintegrationplugin.h
        gl_integrations/qxcbnativeinterfacehandler.cpp gl_integrations/qxcbnativeinterfacehandler.h
        qxcbatom.cpp qxcbatom.h
        qxcbbackingstore.cpp qxcbbackingstore.h
        qxcbclipboard.cpp qxcbclipboard.h
        qxcbconnection.cpp qxcbconnection.h
        qxcbconnection_basic.cpp qxcbconnection_basic.h
        qxcbconnection_screens.cpp
        qxcbconnection_xi2.cpp
        qxcbcursor.cpp qxcbcursor.h
        qxcbeventdispatcher.cpp qxcbeventdispatcher.h
        qxcbeventqueue.cpp qxcbeventqueue.h
        qxcbimage.cpp qxcbimage.h
        qxcbintegration.cpp qxcbintegration.h
        qxcbkeyboard.cpp qxcbkeyboard.h
        qxcbmime.cpp qxcbmime.h
        qxcbnativeinterface.cpp qxcbnativeinterface.h
        qxcbobject.h
        qxcbscreen.cpp qxcbscreen.h
        qxcbsystemtraytracker.cpp qxcbsystemtraytracker.h
        qxcbwindow.cpp qxcbwindow.h
        qxcbwmsupport.cpp qxcbwmsupport.h
        qxcbxsettings.cpp qxcbxsettings.h
    DEFINES
        QT_BUILD_XCB_PLUGIN
        QT_NO_FOREACH
    INCLUDE_DIRECTORIES
        gl_integrations
    LIBRARIES
        Qt::CorePrivate
        Qt::EdidSupportPrivate
        Qt::FontDatabaseSupportPrivate
        Qt::GuiPrivate
        Qt::ServiceSupportPrivate
        Qt::ThemeSupportPrivate
        Qt::XkbCommonSupportPrivate
        PkgConfig::XKB_COMMON_X11 # special case
    PUBLIC_LIBRARIES
        Qt::Core
        Qt::EdidSupport
        Qt::FontDatabaseSupport
        Qt::Gui
        Qt::ServiceSupport
        Qt::ThemeSupport
        Qt::XkbCommonSupport
        XCB::ICCCM
        XCB::IMAGE
        XCB::KEYSYMS
        XCB::RANDR
        XCB::RENDER
        XCB::RENDERUTIL
        XCB::SHAPE
        XCB::SHM
        XCB::SYNC
        XCB::XCB
        XCB::XFIXES
        XCB::XINERAMA
        $<$<TARGET_EXISTS:XCB::XINPUT>:XCB::XINPUT> # special case
        XCB::XKB
        XKB::XKB
)

#### Keys ignored in scope 2:.:.:xcb_qpa_lib.pro:<TRUE>:
# _LOADED = "qt_build_paths" "qt_module"

## Scopes:
#####################################################################

extend_target(XcbQpa CONDITION TARGET Qt::LinuxAccessibilitySupportPrivate
    LIBRARIES
        Qt::LinuxAccessibilitySupportPrivate
    PUBLIC_LIBRARIES
        Qt::LinuxAccessibilitySupport
)

extend_target(XcbQpa CONDITION QT_FEATURE_vulkan
    SOURCES
        qxcbvulkaninstance.cpp qxcbvulkaninstance.h
        qxcbvulkanwindow.cpp qxcbvulkanwindow.h
    LIBRARIES
        Qt::VulkanSupportPrivate
    PUBLIC_LIBRARIES
        Qt::VulkanSupport
)

extend_target(XcbQpa CONDITION QT_FEATURE_glib
    LIBRARIES
        GLIB2::GLIB2
)

extend_target(XcbQpa CONDITION QT_FEATURE_draganddrop
    SOURCES
        qxcbdrag.cpp qxcbdrag.h
)

extend_target(XcbQpa CONDITION QT_FEATURE_xcb_xlib
    PUBLIC_LIBRARIES
        X11::XCB
        X11::X11 # special case
)

extend_target(XcbQpa CONDITION QT_FEATURE_xcb_sm
    SOURCES
        qxcbsessionmanager.cpp qxcbsessionmanager.h
    PUBLIC_LIBRARIES
        ${X11_SM_LIB} ${X11_ICE_LIB}
)

extend_target(XcbQpa CONDITION QT_FEATURE_dlopen
    PUBLIC_LIBRARIES
        ${CMAKE_DL_LIBS}
)

extend_target(XcbQpa CONDITION CLANG AND NOT ICC
    COMPILE_OPTIONS
        -ftemplate-depth=1024
)

extend_target(XcbQpa CONDITION QT_FEATURE_xcb_native_painting
    SOURCES
        nativepainting/qbackingstore_x11.cpp nativepainting/qbackingstore_x11_p.h
        nativepainting/qcolormap_x11.cpp nativepainting/qcolormap_x11_p.h
        nativepainting/qpaintengine_x11.cpp nativepainting/qpaintengine_x11_p.h
        nativepainting/qpixmap_x11.cpp nativepainting/qpixmap_x11_p.h
        nativepainting/qt_x11_p.h
        nativepainting/qtessellator.cpp nativepainting/qtessellator_p.h
        nativepainting/qxcbnativepainting.cpp nativepainting/qxcbnativepainting.h
    INCLUDE_DIRECTORIES
        nativepainting
)

extend_target(XcbQpa CONDITION QT_FEATURE_xcb_native_painting AND QT_FEATURE_xrender
    PUBLIC_LIBRARIES
        PkgConfig::XRender
)

extend_target(XcbQpa CONDITION QT_FEATURE_fontconfig AND QT_FEATURE_xcb_native_painting
    LIBRARIES
        WrapFreetype::WrapFreetype
)

# special case begin
if (NOT QT_FEATURE_system_xcb_input)
    set(xinput_source "${PROJECT_SOURCE_DIR}/src/3rdparty/xcb/libxcb/xinput.c")
    set_source_files_properties(
        "${xinput_source}"
        PROPERTIES COMPILE_OPTIONS "-w"
    )
    target_sources(XcbQpa PRIVATE "${xinput_source}")
    target_include_directories(XcbQpa PRIVATE
        "${PROJECT_SOURCE_DIR}/src/3rdparty/xcb/include"
    )
endif()
# special case end

#####################################################################
## qxcb Plugin:
#####################################################################

add_qt_plugin(qxcb
    TYPE platforms
    CLASS_NAME QXcbIntegrationPlugin
    DEFAULT_IF ${QT_QPA_DEFAULT_PLATFORM} MATCHES xcb # special case
    SOURCES
        qxcbmain.cpp
    DEFINES
        QT_NO_FOREACH
    LIBRARIES
        Qt::CorePrivate
        Qt::GuiPrivate
        Qt::XcbQpaPrivate
    PUBLIC_LIBRARIES
        Qt::Core
        Qt::Gui
        Qt::XcbQpa
)

#### Keys ignored in scope 19:.:.:xcb-plugin.pro:<TRUE>:
# OTHER_FILES = "xcb.json" "README"
# _LOADED = "qt_plugin"

## Scopes:
#####################################################################

#### Keys ignored in scope 21:.:.:xcb-plugin.pro:NOT TARGET___equals____ss_QT_DEFAULT_QPA_PLUGIN:
# PLUGIN_EXTENDS = "-"
add_subdirectory(gl_integrations)
if(OFF)
    add_subdirectory(xcb-static) # special case TODO: xcb-static sub folder
endif()