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
|
import qbs.FileInfo
import qbs.Utilities
import "../QtModule.qbs" as QtModule
QtModule {
qtModuleName: "Scxml"
property string qscxmlcName: "qscxmlc"
property string className
property string namespace
property bool generateStateMethods
property stringList additionalCompilerFlags
Rule {
inputs: ["qt.scxml.compilable"]
Artifact {
filePath: FileInfo.joinPaths(input.moduleProperty("Qt.core", "generatedHeadersDir"),
input.baseName + ".h")
fileTags: ["hpp", "unmocable"]
}
Artifact {
filePath: input.baseName + ".cpp"
fileTags: ["cpp", "unmocable"]
}
prepare: {
var compilerName = product.moduleProperty("Qt.scxml", "qscxmlcName");
var compilerPath = FileInfo.joinPaths(input.moduleProperty("Qt.core", "binPath"),
compilerName);
var args = ["--header", outputs["hpp"][0].filePath,
"--impl", outputs["cpp"][0].filePath];
var cxx98 = input.moduleProperty("cpp", "cxxLanguageVersion") === "c++98";
if (cxx98)
args.push("-no-c++11");
var className = input.moduleProperty("Qt.scxml", "className");
if (className)
args.push("--classname", className);
var namespace = input.moduleProperty("Qt.scxml", "namespace");
if (namespace)
args.push("--namespace", namespace);
if (input.Qt.scxml.generateStateMethods
&& Utilities.versionCompare(product.Qt.scxml.version, "5.9") >= 0) {
args.push("--statemethods");
}
if (input.Qt.scxml.additionalCompilerFlags)
args = args.concat(input.Qt.scxml.additionalCompilerFlags);
args.push(input.filePath);
var cmd = new Command(compilerPath, args);
cmd.description = "compiling " + input.fileName;
cmd.highlight = "codegen";
return [cmd];
}
}
architectures: @archs@
targetPlatform: @targetPlatform@
staticLibsDebug: @staticLibsDebug@
staticLibsRelease: @staticLibsRelease@
dynamicLibsDebug: @dynamicLibsDebug@
dynamicLibsRelease: @dynamicLibsRelease@
linkerFlagsDebug: @linkerFlagsDebug@
linkerFlagsRelease: @linkerFlagsRelease@
frameworksDebug: @frameworksDebug@
frameworksRelease: @frameworksRelease@
frameworkPathsDebug: @frameworkPathsDebug@
frameworkPathsRelease: @frameworkPathsRelease@
libNameForLinkerDebug: @libNameForLinkerDebug@
libNameForLinkerRelease: @libNameForLinkerRelease@
libFilePathDebug: @libFilePathDebug@
libFilePathRelease: @libFilePathRelease@
pluginTypes: @pluginTypes@
moduleConfig: @moduleConfig@
cpp.defines: @defines@
cpp.systemIncludePaths: @includes@
cpp.libraryPaths: @libraryPaths@
@additionalContent@
}
|