Colleagues, hello.
It's a bit of a pity that I didn't get an answer to the last question,
but it's okay. There is a working option, and it can be used.
Christian, Alberto, thanks for helping to solve my problem.
--
BR, Pavel
22.02.2021 19:07, Карелин Павел пишет:
Christian, I experimented a little, and got another variant.
Your variant (clarification: the generation of trigrams in binary form
is performed by the parsetrigrams utility) :
Product {
name: "ParseTrigrams"
targetName: "parsetrigrams"
type: ["application"]
...
files: [
"parsetrigrams.cpp"
]
Group {
fileTagsFilter: "application"
fileTags: "trigrams-generator"
}
}
Product {
name: "QGit"
targetName: "qgit"
type: "application"
Depends { name: "cpp" }
Depends { name: "ParseTrigrams" }
Depends { productTypes: ["trigrams-generator"] }
Depends { name: "Qt"; submodules: ["core", "widgets"] }
Group {
fileTags: "trigrams"
files: FileInfo.joinPaths(product.sourceDirectory,
"spellcheck/sonnet/trigrams/*")
}
Group {
fileTagsFilter: ["trigrams-map"]
fileTags: ["qt.core.resource_data"]
}
Qt.core.resourceFileBaseName: "trigrams"
Qt.core.resourcePrefix: "trigrams"
Rule {
id: idtrigrams
inputs: ["trigrams"]
explicitlyDependsOnFromDependencies: ["trigrams-generator"]
Artifact {
fileTags: ["trigrams-map"]
filePath: FileInfo.joinPaths(project.buildDirectory,
"trigrams", input.baseName + ".tmap")
}
prepare: {
var runUtl =
explicitlyDependsOn["trigrams-generator"][0].filePath
var outputFile =
FileInfo.joinPaths(project.buildDirectory, "trigrams", input.baseName
+ ".tmap");
var cmd = new Command(runUtl, [input.filePath, outputFile]);
cmd.description = "sonnet parse trigrams";
cmd.highlight = "filegen";
return cmd;
}
}
files: [
"qgit.cpp",
]
}
My variant:
Product {
name: "ParseTrigrams"
targetName: "parsetrigrams"
type: ["application", "trigrams-generator"]
...
files: [
"parsetrigrams.cpp"
]
Group {
fileTagsFilter: "application"
fileTags: "trigrams-generator"
}
}
Product {
name: "QGit"
type: "application"
Depends { name: "cpp" }
Depends { productTypes: ["trigrams-generator"] }
Depends { name: "Qt"; submodules: ["core", "widgets"] }
Group {
fileTags: "trigrams"
files: FileInfo.joinPaths(product.sourceDirectory,
"spellcheck/sonnet/trigrams/*")
}
Group {
fileTagsFilter: ["trigrams-map"]
fileTags: ["qt.core.resource_data"]
}
Qt.core.resourceFileBaseName: "trigrams"
Qt.core.resourcePrefix: "trigrams"
Rule {
id: idtrigrams
inputs: ["trigrams"]
explicitlyDependsOnFromDependencies: ["trigrams-generator"]
Artifact {
fileTags: ["trigrams-map"]
filePath: FileInfo.joinPaths(project.buildDirectory,
"trigrams", input.baseName + ".tmap")
}
prepare: {
var runUtl =
explicitlyDependsOn["trigrams-generator"][0].filePath
var outputFile =
FileInfo.joinPaths(project.buildDirectory, "trigrams", input.baseName
+ ".tmap");
var cmd = new Command(runUtl, [input.filePath, outputFile]);
cmd.description = "sonnet parse trigrams";
cmd.highlight = "filegen";
return cmd;
}
}
files: [
"qgit.cpp",
]
}
The differences are as follows:
For ParseTrigrams:
type: ["application"]
vs
type: ["application", "trigrams-generator"]
For QGit:
Depends { name: "ParseTrigrams" }
Depends { productTypes: ["trigrams-generator"] }
vs
Depends { productTypes: ["trigrams-generator"] }
I would like to know if there is a fundamental difference in these
solutions, and which variant is preferable?
--
BR, Pavel
22.02.2021 13:00, Christian Kandeler пишет:
On 2/19/21 5:43 PM, Карелин Павел wrote:
Project QGit__micro is attached.
The situation is reproduced
I've attached the corrected qbs files.
Christian
_______________________________________________
Qbs mailing list
Qbs@qt-project.org
https://lists.qt-project.org/listinfo/qbs
_______________________________________________
Qbs mailing list
Qbs@qt-project.org
https://lists.qt-project.org/listinfo/qbs
_______________________________________________
Qbs mailing list
Qbs@qt-project.org
https://lists.qt-project.org/listinfo/qbs