aboutsummaryrefslogtreecommitdiffstats
path: root/src/tools/qml2puppet/qml2puppet.qbs
blob: 63341b5dc2833f96e79ec92426d9ca5b88a68b76 (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
288
289
290
291
292
293
294
295
296
297
298
299
300
import qbs.Utilities
import QtcFunctions

QtcTool {
    name: "qml2puppet"
    installDir: qbs.targetOS.contains("macos")
                ? qtc.ide_libexec_path + "/qmldesigner" : qtc.ide_libexec_path

    Depends { name: "Utils" }
    Depends { name: "bundle" }
    Depends {
        name: "Qt"
        submodules: [
            "core-private", "gui-private", "network", "qml-private", "quick", "quick-private",
            "widgets"
        ]
    }
    Depends { name: "Qt.quick3d-private"; required: false }
    property bool useQuick3d: Utilities.versionCompare(Qt.core.version, "5.15") >= 0
                              && Qt["quick3d-private"].present

    property bool useQt5Compat: Utilities.versionCompare(Qt.core.version, "6.0") >= 0

    cpp.defines: {
        var defines = base.filter(function(d) { return d != "QT_CREATOR"; });
        if (useQuick3d)
            defines.push("QUICK3D_MODULE");
        return defines;
    }
    Properties {
        condition: qbs.targetOS.contains("unix") && !qbs.targetOS.contains("bsd")
        cpp.dynamicLibraries: base.concat("rt")
    }
    Properties {
        condition: qbs.targetOS.contains("darwin")
        bundle.embedInfoPlist: true
    }

    property path puppetDir: "../../../share/qtcreator/qml/qmlpuppet"
    cpp.includePaths: base.concat([
        puppetDir + "/commands",
        puppetDir + "/container",
        puppetDir + "/instances",
        puppetDir + "/interfaces",
        puppetDir + "/types",
        puppetDir + "/qml2puppet/instances",
        puppetDir + "/qmlprivategate",
    ])

    // TODO: Put into static lib and share with qmldesigner
    Group {
        name: "puppet sources"
        prefix: puppetDir + '/'
        files: [
            "commands/changeauxiliarycommand.cpp",
            "commands/changeauxiliarycommand.h",
            "commands/changebindingscommand.cpp",
            "commands/changebindingscommand.h",
            "commands/changefileurlcommand.cpp",
            "commands/changefileurlcommand.h",
            "commands/changeidscommand.cpp",
            "commands/changeidscommand.h",
            "commands/changenodesourcecommand.cpp",
            "commands/changenodesourcecommand.h",
            "commands/changestatecommand.cpp",
            "commands/changestatecommand.h",
            "commands/changevaluescommand.cpp",
            "commands/changevaluescommand.h",
            "commands/childrenchangedcommand.cpp",
            "commands/childrenchangedcommand.h",
            "commands/clearscenecommand.cpp",
            "commands/clearscenecommand.h",
            "commands/completecomponentcommand.cpp",
            "commands/completecomponentcommand.h",
            "commands/componentcompletedcommand.cpp",
            "commands/componentcompletedcommand.h",
            "commands/createinstancescommand.cpp",
            "commands/createinstancescommand.h",
            "commands/createscenecommand.cpp",
            "commands/createscenecommand.h",
            "commands/debugoutputcommand.cpp",
            "commands/debugoutputcommand.h",
            "commands/endpuppetcommand.cpp",
            "commands/endpuppetcommand.h",
            "commands/informationchangedcommand.cpp",
            "commands/informationchangedcommand.h",
            "commands/pixmapchangedcommand.cpp",
            "commands/pixmapchangedcommand.h",
            "commands/puppetalivecommand.cpp",
            "commands/puppetalivecommand.h",
            "commands/removeinstancescommand.cpp",
            "commands/removeinstancescommand.h",
            "commands/removepropertiescommand.cpp",
            "commands/removepropertiescommand.h",
            "commands/removesharedmemorycommand.cpp",
            "commands/removesharedmemorycommand.h",
            "commands/reparentinstancescommand.cpp",
            "commands/reparentinstancescommand.h",
            "commands/statepreviewimagechangedcommand.cpp",
            "commands/statepreviewimagechangedcommand.h",
            "commands/synchronizecommand.cpp",
            "commands/synchronizecommand.h",
            "commands/changepreviewimagesizecommand.cpp",
            "commands/changepreviewimagesizecommand.h",
            "commands/changelanguagecommand.cpp",
            "commands/changelanguagecommand.h",
            "commands/tokencommand.cpp",
            "commands/tokencommand.h",
            "commands/valueschangedcommand.cpp",
            "commands/valueschangedcommand.h",
            "commands/changeselectioncommand.cpp",
            "commands/changeselectioncommand.h",
            "commands/update3dviewstatecommand.cpp",
            "commands/update3dviewstatecommand.h",
            "commands/puppettocreatorcommand.cpp",
            "commands/puppettocreatorcommand.h",
            "commands/inputeventcommand.cpp",
            "commands/inputeventcommand.h",
            "commands/view3dactioncommand.cpp",
            "commands/view3dactioncommand.h",
            "commands/requestmodelnodepreviewimagecommand.cpp",
            "commands/requestmodelnodepreviewimagecommand.h",
            "commands/captureddatacommand.h",
            "commands/scenecreatedcommand.h",
            "container/addimportcontainer.cpp",
            "container/addimportcontainer.h",
            "container/idcontainer.cpp",
            "container/idcontainer.h",
            "container/imagecontainer.cpp",
            "container/imagecontainer.h",
            "container/informationcontainer.cpp",
            "container/informationcontainer.h",
            "container/instancecontainer.cpp",
            "container/instancecontainer.h",
            "container/mockuptypecontainer.cpp",
            "container/mockuptypecontainer.h",
            "container/propertyabstractcontainer.cpp",
            "container/propertyabstractcontainer.h",
            "container/propertybindingcontainer.cpp",
            "container/propertybindingcontainer.h",
            "container/propertyvaluecontainer.cpp",
            "container/propertyvaluecontainer.h",
            "container/reparentcontainer.cpp",
            "container/reparentcontainer.h",
            "container/sharedmemory.h",
            "instances/nodeinstanceclientproxy.cpp",
            "instances/nodeinstanceclientproxy.h",
            "interfaces/commondefines.h",
            "interfaces/nodeinstanceclientinterface.h",
            "interfaces/nodeinstanceserverinterface.cpp",
            "interfaces/nodeinstanceserverinterface.h",
            "qmlprivategate/qmlprivategate.h",
            "types/enumeration.h",
        ]
    }

    Group {
        name: "SharedMemory (Unix)"
        condition: qbs.targetOS.contains("unix")
        prefix: puppetDir + "/container/"
        files: ["sharedmemory_unix.cpp"]
    }

    Group {
        name: "SharedMemory (Generic)"
        condition: !qbs.targetOS.contains("unix")
        prefix: puppetDir + "/container/"
        files: ["sharedmemory_qt.cpp"]
    }

    Group {
        name: "puppet2 sources"
        prefix: puppetDir + "/qml2puppet/"
        files: [
            "../qmlpuppet.qrc",
            "Info.plist",
            "instances/anchorchangesnodeinstance.cpp",
            "instances/anchorchangesnodeinstance.h",
            "instances/behaviornodeinstance.cpp",
            "instances/behaviornodeinstance.h",
            "instances/childrenchangeeventfilter.cpp",
            "instances/childrenchangeeventfilter.h",
            "instances/componentnodeinstance.cpp",
            "instances/componentnodeinstance.h",
            "instances/dummycontextobject.cpp",
            "instances/dummycontextobject.h",
            "instances/dummynodeinstance.cpp",
            "instances/dummynodeinstance.h",
            "instances/layoutnodeinstance.cpp",
            "instances/layoutnodeinstance.h",
            "instances/nodeinstanceserver.cpp",
            "instances/nodeinstanceserver.h",
            "instances/nodeinstancesignalspy.cpp",
            "instances/nodeinstancesignalspy.h",
            "instances/objectnodeinstance.cpp",
            "instances/objectnodeinstance.h",
            "instances/positionernodeinstance.cpp",
            "instances/positionernodeinstance.h",
            "instances/quickitemnodeinstance.cpp",
            "instances/quickitemnodeinstance.h",
            "instances/qmlpropertychangesnodeinstance.cpp",
            "instances/qmlpropertychangesnodeinstance.h",
            "instances/qmlstatenodeinstance.cpp",
            "instances/qmlstatenodeinstance.h",
            "instances/quick3dnodeinstance.cpp",
            "instances/quick3dnodeinstance.h",
            "instances/quick3dtexturenodeinstance.cpp",
            "instances/quick3dtexturenodeinstance.h",
            "instances/qmltransitionnodeinstance.cpp",
            "instances/qmltransitionnodeinstance.h",
            "instances/qt3dpresentationnodeinstance.cpp",
            "instances/qt3dpresentationnodeinstance.h",
            "instances/qt5informationnodeinstanceserver.cpp",
            "instances/qt5informationnodeinstanceserver.h",
            "instances/qt5nodeinstanceclientproxy.cpp",
            "instances/qt5nodeinstanceclientproxy.h",
            "instances/qt5nodeinstanceserver.cpp",
            "instances/qt5nodeinstanceserver.h",
            "instances/qt5previewnodeinstanceserver.cpp",
            "instances/qt5previewnodeinstanceserver.h",
            "instances/qt5rendernodeinstanceserver.cpp",
            "instances/qt5rendernodeinstanceserver.h",
            "instances/qt5testnodeinstanceserver.cpp",
            "instances/qt5testnodeinstanceserver.h",
            "instances/servernodeinstance.cpp",
            "instances/servernodeinstance.h",
            "instances/qt5capturepreviewnodeinstanceserver.cpp",
            "instances/qt5capturepreviewnodeinstanceserver.h",
            "instances/qt5captureimagenodeinstanceserver.cpp",
            "instances/qt5captureimagenodeinstanceserver.h",
            "instances/nodeinstanceserverdispatcher.cpp",
            "instances/nodeinstanceserverdispatcher.h",
            "instances/capturenodeinstanceserverdispatcher.cpp",
            "instances/capturenodeinstanceserverdispatcher.h",
            "editor3d/generalhelper.cpp",
            "editor3d/mousearea3d.cpp",
            "editor3d/camerageometry.cpp",
            "editor3d/lightgeometry.cpp",
            "editor3d/gridgeometry.cpp",
            "editor3d/selectionboxgeometry.cpp",
            "editor3d/linegeometry.cpp",
            "editor3d/icongizmoimageprovider.cpp",
            "editor3d/icongizmoimageprovider.h",
            "iconrenderer/iconrenderer.cpp",
            "iconrenderer/iconrenderer.h",
            "qml2puppetmain.cpp",
        ]

        Group {
            name: "3d-only puppet2 headers"
            files: [
                "editor3d/camerageometry.h",
                "editor3d/generalhelper.h",
                "editor3d/gridgeometry.h",
                "editor3d/lightgeometry.h",
                "editor3d/linegeometry.h",
                "editor3d/selectionboxgeometry.h",
                "editor3d/mousearea3d.h",
            ]
            fileTags: product.useQuick3d ? [] : ["unmocable"]
            overrideTags: false
        }

        Group {
            name: "puppet2 Qt 5 compatibility sources"
            condition: useQt5Compat
            files: ["editor3d/qt5compat/qquick3darealight.cpp"]
        }

        Group {
            name: "puppet2 Qt 5 compatibility headers"
            condition: useQt5Compat
            files: ["editor3d/qt5compat/qquick3darealight_p.h"]
            fileTags: product.useQuick3d ? [] : ["unmocable"]
            overrideTags: false
        }
    }

    Group {
        name: "qmlprivategate (new)"
        condition: QtcFunctions.versionIsAtLeast(Qt.core.version, "5.6.0")
        prefix: puppetDir + "/qmlprivategate/"
        files: [
            "qmlprivategate_56.cpp",
        ]
    }

    Group {
        name: "qmlprivategate (old)"
        condition: !QtcFunctions.versionIsAtLeast(Qt.core.version, "5.6.0")
        prefix: puppetDir + "/qmlprivategate/"
        files: [
            "designercustomobjectdata.cpp",
            "designercustomobjectdata.h",
            "metaobject.cpp",
            "metaobject.h",
            "qmlprivategate.cpp",
        ]
    }
}