Skip to content

Commit 4665585

Browse files
committed
Fix QmlProfiler in Qbs build
* add Qbs module qsb_compiler * add Qbs module qmldir * also set qml import properties
1 parent 86079a9 commit 4665585

File tree

5 files changed

+124
-10
lines changed

5 files changed

+124
-10
lines changed

qbs/modules/qmldir/qmldir.qbs

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
import qbs.File
2+
import qbs.FileInfo
3+
import qbs.TextFile
4+
import qbs.Utilities
5+
6+
Module {
7+
Rule {
8+
name: "QmldirBuilder"
9+
10+
multiplex: true
11+
inputs: ["qt.qml.qml"]
12+
outputFileTags: ["qmldir_generated", "qt.core.resource_data"]
13+
outputArtifacts: [{
14+
filePath: product.buildDirectory + "/qmldir",
15+
fileTags: ["qmldir_generated", "qt.core.resource_data"],
16+
Qt: { core: { resourcePrefix: "" + inputs["qt.qml.qml"][0].Qt.core.resourcePrefix } }
17+
}]
18+
19+
prepare: {
20+
var content = [
21+
["module", product.Qt.qml.importName].join(" "),
22+
["prefer", ":" + inputs["qt.qml.qml"][0].Qt.core.resourcePrefix.replace(/^\/?/, "/").replace(/\/?$/, "/")].join(" "),
23+
];
24+
for (var i = 0; i < inputs["qt.qml.qml"].length; ++i) {
25+
var input = inputs["qt.qml.qml"][i];
26+
content.push([input.baseName, product.Qt.qml.importVersion, input.fileName].join(" "));
27+
}
28+
29+
var cmd = new JavaScriptCommand();
30+
cmd.description = "generating qmldir for " + product.Qt.qml.importName;
31+
cmd.highlight = 'codegen';
32+
cmd.content = content.join("\n");
33+
cmd.sourceCode = function() {
34+
var file = new TextFile(output.filePath, TextFile.WriteOnly);
35+
file.truncate();
36+
file.write(content);
37+
file.close();
38+
}
39+
return cmd;
40+
}
41+
}
42+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import qbs.FileInfo
2+
3+
Module {
4+
property stringList extraArgs: []
5+
6+
FileTagger {
7+
patterns: ["*.comp", "*.frag", "*.vert"]
8+
fileTags: ["qsb_src"]
9+
}
10+
11+
Rule {
12+
name: "QSB"
13+
14+
inputs: ["qsb_src"]
15+
outputFileTags: ["qsb_compiled", "qt.core.resource_data"]
16+
outputArtifacts: [{
17+
filePath: product.buildDirectory + '/qsb/' + input.fileName + ".qsb",
18+
fileTags: ["qsb_compiled", "qt.core.resource_data"],
19+
Qt: { core: { resourcePrefix: "" + input.Qt.core.resourcePrefix } }
20+
}]
21+
22+
prepare: {
23+
var tool = FileInfo.joinPaths(product.Qt.core.binPath, "qsb");
24+
var args = input.qsb_compiler.extraArgs.concat(["-o", output.filePath, input.filePath]);
25+
var cmd = new Command(tool, args);
26+
cmd.description = "qsb " + input.fileName;
27+
cmd.highlight = 'codegen';
28+
return cmd;
29+
}
30+
}
31+
}

src/libs/tracing/tracing.qbs

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@ QtcLibrary {
55
Depends { name: "Qt.testlib"; condition: qtc.withAutotests }
66
Depends { name: "Utils" }
77

8+
Qt.qml.importName: "QtCreator.Tracing"
9+
Qt.qml.importVersion: "1.0"
10+
cpp.includePaths: ["."] // needed to allow registraction to compile
11+
812
Group {
913
name: "General"
1014
files: [
@@ -35,11 +39,26 @@ QtcLibrary {
3539
]
3640
}
3741

42+
Depends { name: "qsb_compiler" }
43+
Depends { name: "qmldir" }
44+
Qt.core.resourcePrefix: "/qt/qml/QtCreator/Tracing"
3845
Group {
3946
name: "Qml Files"
40-
Qt.core.resourcePrefix: "qt/qml/QtCreator/Tracing/"
41-
fileTags: "qt.core.resource_data"
42-
files: "qml/**"
47+
fileTags: ["qt.qml.qml", "qt.core.resource_data"]
48+
prefix: "qml/"
49+
files: ["**/*.qml"]
50+
}
51+
Group {
52+
name: "Images"
53+
fileTags: ["qt.core.resource_data"]
54+
prefix: "qml/"
55+
files: ["**/*.png"]
56+
}
57+
Group {
58+
name: "Shaders"
59+
qsb_compiler.extraArgs: ["--batchable", "--qt6"]
60+
prefix: "qml/"
61+
files: ["**/*.vert", "**/*.frag"]
4362
}
4463

4564
cpp.defines: base.concat("TRACING_LIBRARY")

src/plugins/perfprofiler/perfprofiler.qbs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@ QtcPlugin {
1515
submodules: ["network", "quick", "quickwidgets"]
1616
}
1717

18+
Qt.qml.importName: "QtCreator.PerfProfiler"
19+
Qt.qml.importVersion: "1.0"
20+
cpp.includePaths: ["."] // needed to allow registraction to compile
21+
1822
files: [
1923
"perfconfigeventsmodel.cpp",
2024
"perfconfigeventsmodel.h",
@@ -58,14 +62,13 @@ QtcPlugin {
5862
"perfsettings.h",
5963
"perftracepointdialog.cpp",
6064
"perftracepointdialog.h",
61-
"perfprofiler.qrc",
6265
]
6366

64-
Qt.core.resourceFileBaseName: "PerfProfilerQml" // avoid conflicting qrc file
67+
Depends { name: "qmldir" }
68+
Qt.core.resourcePrefix: "/qt/qml/QtCreator/PerfProfiler"
6569
Group {
6670
name: "Qml Files"
67-
Qt.core.resourcePrefix: "qt/qml/QtCreator/PerfProfiler/"
68-
fileTags: "qt.core.resource_data"
71+
fileTags: ["qt.qml.qml", "qt.core.resource_data"]
6972
files: [ "PerfProfilerFlameGraphView.qml" ]
7073
}
7174

src/plugins/qmlprofiler/qmlprofiler.qbs

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ QtcPlugin {
1616
Depends { name: "QtSupport" }
1717
Depends { name: "TextEditor" }
1818

19+
Qt.qml.importName: "QtCreator.QmlProfiler"
20+
Qt.qml.importVersion: "1.0"
21+
cpp.includePaths: ["."] // needed to allow registraction to compile
22+
1923
Group {
2024
name: "General"
2125
files: [
@@ -58,11 +62,26 @@ QtcPlugin {
5862
]
5963
}
6064

65+
Depends { name: "qsb_compiler" }
66+
Depends { name: "qmldir" }
67+
Qt.core.resourcePrefix: "/qt/qml/QtCreator/QmlProfiler"
6168
Group {
6269
name: "Qml Files"
63-
Qt.core.resourcePrefix: "qt/qml/QtCreator/QmlProfiler/"
64-
fileTags: "qt.core.resource_data"
65-
files: "qml/**"
70+
fileTags: ["qt.qml.qml", "qt.core.resource_data"]
71+
prefix: "qml/"
72+
files: ["**/*.qml"]
73+
}
74+
Group {
75+
name: "Images"
76+
fileTags: ["qt.core.resource_data"]
77+
prefix: "qml/"
78+
files: ["**/*.png"]
79+
}
80+
Group {
81+
name: "Shaders"
82+
qsb_compiler.extraArgs: ["--batchable", "--qt6"]
83+
prefix: "qml/"
84+
files: ["**/*.vert", "**/*.frag"]
6685
}
6786

6887
QtcTestFiles {

0 commit comments

Comments
 (0)