aboutsummaryrefslogtreecommitdiffstats
path: root/src/tools/qml2puppet/CMakeLists.txt
blob: 890cbbf5dc37e47bc5b8a606ba04ae18e789db1d (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
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
set(SRCDIR "${PROJECT_SOURCE_DIR}/share/qtcreator/qml/qmlpuppet")

set(DESTDIR "${IDE_LIBEXEC_PATH}")
if (APPLE)
  string(APPEND DESTDIR "/qmldesigner")
endif()

add_qtc_library(qml2puppet_static
  STATIC
  DEPENDS
  Qt5::CorePrivate Qt5::Widgets
  PUBLIC_INCLUDES "${SRCDIR}/interfaces"
  SOURCES_PREFIX "${SRCDIR}/interfaces"
  SOURCES
    commondefines.h
    nodeinstanceclientinterface.h
    nodeinstanceglobal.h
    nodeinstanceserverinterface.cpp nodeinstanceserverinterface.h
)

extend_qtc_library(qml2puppet_static
  PUBLIC_INCLUDES "${SRCDIR}/types"
  SOURCES "${SRCDIR}/types/enumeration.h"
)

extend_qtc_library(qml2puppet_static
  PUBLIC_INCLUDES "${SRCDIR}/container"
  SOURCES_PREFIX "${SRCDIR}/container"
  SOURCES
    addimportcontainer.cpp addimportcontainer.h
    idcontainer.cpp idcontainer.h
    imagecontainer.cpp imagecontainer.h
    informationcontainer.cpp informationcontainer.h
    instancecontainer.cpp instancecontainer.h
    mockuptypecontainer.cpp mockuptypecontainer.h
    propertyabstractcontainer.cpp propertyabstractcontainer.h
    propertybindingcontainer.cpp propertybindingcontainer.h
    propertyvaluecontainer.cpp propertyvaluecontainer.h
    reparentcontainer.cpp reparentcontainer.h
    sharedmemory.h
)

extend_qtc_library(qml2puppet_static
  CONDITION UNIX
  SOURCES_PREFIX "${SRCDIR}/container"
  SOURCES
    sharedmemory_unix.cpp
)

extend_qtc_library(qml2puppet_static
  CONDITION NOT UNIX
  SOURCES_PREFIX "${SRCDIR}/container"
  SOURCES
    sharedmemory_qt.cpp
)

extend_qtc_library(qml2puppet_static
  PUBLIC_INCLUDES "${SRCDIR}/commands"
  SOURCES_PREFIX "${SRCDIR}/commands"
  SOURCES
    changeauxiliarycommand.cpp changeauxiliarycommand.h
    changebindingscommand.cpp changebindingscommand.h
    changefileurlcommand.cpp changefileurlcommand.h
    changeidscommand.cpp changeidscommand.h
    changenodesourcecommand.cpp changenodesourcecommand.h
    changestatecommand.cpp changestatecommand.h
    changevaluescommand.cpp changevaluescommand.h
    childrenchangedcommand.cpp childrenchangedcommand.h
    clearscenecommand.cpp clearscenecommand.h
    completecomponentcommand.cpp completecomponentcommand.h
    componentcompletedcommand.cpp componentcompletedcommand.h
    createinstancescommand.cpp createinstancescommand.h
    createscenecommand.cpp createscenecommand.h
    changepreviewimagesizecommand.cpp changepreviewimagesizecommand.h
    changelanguagecommand.cpp changelanguagecommand.h
    debugoutputcommand.cpp debugoutputcommand.h
    endpuppetcommand.cpp endpuppetcommand.h
    informationchangedcommand.cpp informationchangedcommand.h
    nanotracecommand.cpp nanotracecommand.h
    pixmapchangedcommand.cpp pixmapchangedcommand.h
    puppetalivecommand.cpp puppetalivecommand.h
    removeinstancescommand.cpp removeinstancescommand.h
    removepropertiescommand.cpp removepropertiescommand.h
    removesharedmemorycommand.cpp removesharedmemorycommand.h
    reparentinstancescommand.cpp reparentinstancescommand.h
    statepreviewimagechangedcommand.cpp statepreviewimagechangedcommand.h
    synchronizecommand.cpp synchronizecommand.h
    tokencommand.cpp tokencommand.h
    changeselectioncommand.cpp changeselectioncommand.h
    update3dviewstatecommand.cpp update3dviewstatecommand.h
    puppettocreatorcommand.cpp puppettocreatorcommand.h
    inputeventcommand.cpp inputeventcommand.h
    view3dactioncommand.cpp view3dactioncommand.h
    requestmodelnodepreviewimagecommand.cpp requestmodelnodepreviewimagecommand.h
    valueschangedcommand.cpp
    captureddatacommand.h
    scenecreatedcommand.h
)

extend_qtc_library(qml2puppet_static
  PUBLIC_INCLUDES "${PROJECT_SOURCE_DIR}/src/libs"
)
extend_qtc_library(qml2puppet_static
  CONDITION TARGET Nanotrace
  DEPENDS Nanotrace
)

add_qtc_executable(qml2puppet
  CONDITION TARGET Qt5::QuickPrivate
  DEPENDS
    Qt5::CorePrivate Qt5::Widgets Qt5::QmlPrivate
    Qt5::QuickPrivate Qt5::Network Qt5::GuiPrivate
    qml2puppet_static
  SOURCES
    "${SRCDIR}/qml2puppet/qml2puppetmain.cpp"
    "${SRCDIR}/qmlpuppet.qrc"
  DESTINATION ${DESTDIR}
)

extend_qtc_executable(qml2puppet
  CONDITION Qt5_VERSION VERSION_GREATER_EQUAL 6.0.0
  SOURCES_PREFIX "${SRCDIR}/"
  SOURCES
    "editor3d_qt6.qrc"
)

extend_qtc_executable(qml2puppet
  CONDITION Qt5_VERSION VERSION_LESS 6.0.0
  SOURCES_PREFIX "${SRCDIR}/"
  SOURCES
    "editor3d_qt5.qrc"
)

extend_qtc_executable(qml2puppet
  CONDITION UNIX AND (NOT APPLE)
  DEPENDS rt
)

extend_qtc_executable(qml2puppet
  SOURCES_PREFIX "${SRCDIR}/instances"
  SOURCES
    nodeinstanceclientproxy.cpp nodeinstanceclientproxy.h
)

find_package(Qt5 5.15.0 COMPONENTS Quick3D QUIET)
extend_qtc_executable(qml2puppet
  CONDITION TARGET Qt5::Quick3D
  FEATURE_INFO "Qt Quick 3D support"
  DEPENDS Qt5::Quick3D Qt5::Quick3DPrivate
  DEFINES QUICK3D_MODULE

  SOURCES_PREFIX "${SRCDIR}/qml2puppet/editor3d"
  SOURCES
    generalhelper.cpp generalhelper.h
    mousearea3d.cpp mousearea3d.h
    geometrybase.cpp geometrybase.h
    camerageometry.cpp camerageometry.h
    lightgeometry.cpp lightgeometry.h
    gridgeometry.cpp gridgeometry.h
    selectionboxgeometry.cpp selectionboxgeometry.h
    linegeometry.cpp linegeometry.h
    icongizmoimageprovider.cpp icongizmoimageprovider.h
)

find_package(Qt5 5.15.0 COMPONENTS Quick3DAssetImport QUIET)
extend_qtc_executable(qml2puppet
  CONDITION TARGET Qt5::Quick3DAssetImport
  FEATURE_INFO "Qt Quick 3D asset import"
  DEPENDS Qt5::Quick3DAssetImportPrivate
  DEFINES IMPORT_QUICK3D_ASSETS
)

find_package(Qt5 5.15.0 COMPONENTS Quick3DParticles QUIET)
extend_qtc_executable(qml2puppet
  CONDITION TARGET Qt5::Quick3DParticles
  FEATURE_INFO "Qt Quick 3D particles"
  DEPENDS Qt5::Quick3DParticles Qt5::Quick3DParticlesPrivate
  DEFINES QUICK3D_PARTICLES_MODULE
)

# Quick3DAssetUtils optionally depends on QuickTimeline, so find also it to make the CI build work
find_package(Qt5 5.15.0 COMPONENTS Quick3DAssetUtils QuickTimeline QUIET)
extend_qtc_executable(qml2puppet
  CONDITION TARGET Qt5::Quick3DAssetUtils
  FEATURE_INFO "Qt Quick 3D asset utils"
  DEPENDS Qt5::Quick3DAssetUtilsPrivate
  DEFINES QUICK3D_ASSET_UTILS_MODULE
)

extend_qtc_executable(qml2puppet
  CONDITION Qt5_VERSION VERSION_GREATER_EQUAL 6.0.0

  SOURCES_PREFIX "${SRCDIR}/qml2puppet/editor3d/qt5compat"
  SOURCES
    qquick3darealight.cpp qquick3darealight_p.h
)

extend_qtc_executable(qml2puppet
  SOURCES_PREFIX "${SRCDIR}/qml2puppet/iconrenderer"
  SOURCES
    iconrenderer.cpp iconrenderer.h
)

extend_qtc_executable(qml2puppet
  SOURCES_PREFIX "${SRCDIR}/qml2puppet/import3d"
  SOURCES
    import3d.cpp import3d.h
)

extend_qtc_executable(qml2puppet
  SOURCES_PREFIX "${SRCDIR}/qml2puppet/instances"
  SOURCES
    anchorchangesnodeinstance.cpp anchorchangesnodeinstance.h
    behaviornodeinstance.cpp behaviornodeinstance.h
    childrenchangeeventfilter.cpp childrenchangeeventfilter.h
    componentnodeinstance.cpp componentnodeinstance.h
    dummycontextobject.cpp dummycontextobject.h
    dummynodeinstance.cpp dummynodeinstance.h
    layoutnodeinstance.cpp layoutnodeinstance.h
    nodeinstanceserver.cpp nodeinstanceserver.h
    nodeinstancesignalspy.cpp nodeinstancesignalspy.h
    objectnodeinstance.cpp objectnodeinstance.h
    positionernodeinstance.cpp positionernodeinstance.h
    qmlpropertychangesnodeinstance.cpp qmlpropertychangesnodeinstance.h
    qmlstatenodeinstance.cpp qmlstatenodeinstance.h
    qmltransitionnodeinstance.cpp qmltransitionnodeinstance.h
    qt3dpresentationnodeinstance.cpp qt3dpresentationnodeinstance.h
    qt5informationnodeinstanceserver.cpp qt5informationnodeinstanceserver.h
    qt5nodeinstanceclientproxy.cpp qt5nodeinstanceclientproxy.h
    qt5nodeinstanceserver.cpp qt5nodeinstanceserver.h
    qt5previewnodeinstanceserver.cpp qt5previewnodeinstanceserver.h
    qt5rendernodeinstanceserver.cpp qt5rendernodeinstanceserver.h
    qt5testnodeinstanceserver.cpp qt5testnodeinstanceserver.h
    quick3dnodeinstance.cpp quick3dnodeinstance.h
    quick3dtexturenodeinstance.cpp quick3dtexturenodeinstance.h
    quickitemnodeinstance.cpp quickitemnodeinstance.h
    servernodeinstance.cpp servernodeinstance.h
    qt5capturepreviewnodeinstanceserver.cpp qt5capturepreviewnodeinstanceserver.h
    nodeinstanceserverdispatcher.cpp nodeinstanceserverdispatcher.h
    capturenodeinstanceserverdispatcher.cpp capturenodeinstanceserverdispatcher.h
    qt5captureimagenodeinstanceserver.cpp qt5captureimagenodeinstanceserver.h
    viewconfig.cpp viewconfig.h
    animationdriver.cpp animationdriver.h
)

extend_qtc_executable(qml2puppet
  SOURCES_PREFIX "${SRCDIR}/types"
  SOURCES
    enumeration.h
)

extend_qtc_executable(qml2puppet
  SOURCES_PREFIX "${SRCDIR}/qmlprivategate"
  SOURCES
    designersupportdelegate.h
    qmlprivategate_56.cpp qmlprivategate.h
)

if(DEFINED MULTILANGUAGE_SUPPORT_SUBDIRECTORY AND Qt6_VERSION VERSION_GREATER_EQUAL 6.2.1)
  add_subdirectory(${MULTILANGUAGE_SUPPORT_SUBDIRECTORY} multilanguagesupport_static_build)
endif()

extend_qtc_executable(qml2puppet
    CONDITION TARGET QtCreator::multilanguage-support
    DEPENDS QtCreator::multilanguage-support
    FEATURE_INFO "multilanguage-support in qml2puppet"
)

extend_qtc_executable(qml2puppet
  PUBLIC_INCLUDES "${PROJECT_SOURCE_DIR}/src/libs"
)

extend_qtc_executable(qml2puppet
  CONDITION TARGET Nanotrace
  DEPENDS Nanotrace
)

# Crashpad
# only windows requires separate crashpad client per process until client->SetHandlerIPCPipe()
# is implemented (check the TODO inside startCrashpad())
extend_qtc_executable(qml2puppet
  CONDITION BUILD_WITH_CRASHPAD AND WIN32
  DEFINES
    CRASHPAD_BACKEND_URL="${CRASHPAD_BACKEND_URL}"
    ENABLE_CRASHPAD
  DEPENDS Crashpad::Crashpad
)