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
|
import qbs
import qbs.TextFile
Product {
name: "app_version_header"
type: "hpp"
Group {
files: ["app_version.h.in"]
fileTags: ["hpp.in"]
}
Depends { name: "qtc" }
Rule {
inputs: ["hpp.in"]
Artifact {
filePath: "app/app_version.h"
fileTags: "hpp"
}
prepare: {
var cmd = new JavaScriptCommand();
cmd.description = "generating app_version.h";
cmd.highlight = "codegen";
cmd.onWindows = (product.moduleProperty("qbs", "targetOS").contains("windows"));
cmd.sourceCode = function() {
var file = new TextFile(input.filePath);
var content = file.readAll();
// replace quoted quotes
content = content.replace(/\\\"/g, '"');
// replace Windows line endings
if (onWindows)
content = content.replace(/\r\n/g, "\n");
// replace the magic qmake incantations
content = content.replace(/(\n#define IDE_VERSION_DISPLAY_DEF) .+\n/, "$1 "
+ product.moduleProperty("qtc", "qtcreator_display_version") + "\n");
content = content.replace(/(\n#define IDE_VERSION) .+\n/, "$1 "
+ product.moduleProperty("qtc", "qtcreator_version") + "\n");
content = content.replace(/(\n#define IDE_VERSION_MAJOR) .+\n/, "$1 "
+ product.moduleProperty("qtc", "ide_version_major") + "\n");
content = content.replace(/(\n#define IDE_VERSION_MINOR) .+\n/, "$1 "
+ product.moduleProperty("qtc", "ide_version_minor") + "\n");
content = content.replace(/(\n#define IDE_VERSION_RELEASE) .+\n/, "$1 "
+ product.moduleProperty("qtc", "ide_version_release") + "\n");
content = content.replace("$${QTCREATOR_COPYRIGHT_YEAR}",
product.moduleProperty("qtc", "qtcreator_copyright_year"));
file = new TextFile(output.filePath, TextFile.WriteOnly);
file.truncate();
file.write(content);
file.close();
}
return cmd;
}
}
Export {
Depends { name: "cpp" }
cpp.includePaths: product.buildDirectory
}
}
|