[Qbs] Build and run a AuxiliaryApplication before build a MainApplication
Карелин Павел
hkarel at yandex.ru
Tue Mar 2 19:44:07 CET 2021
02.03.2021 12:00, Иван Комиссаров пишет:
> Hello!. In the second variant - do you need
>
> Group {
> fileTagsFilter: "application"
> fileTags: "trigrams-generator"
> }
>
> ?
Yes, need it. Without this, there will be an error:
TypeError: Result of expression
'explicitlyDependsOn["trigrams-generator"]' [undefined] is not an object.
> The product has that type already
>
> I’d say both variants are OK and there’s no preference.
>
>> 1 марта 2021 г., в 21:43, Карелин Павел <hkarel at yandex.ru
>> <mailto:hkarel at yandex.ru>> написал(а):
>>
>> 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 at qt-project.org
>>>> https://lists.qt-project.org/listinfo/qbs
>>>
>>>
>>> _______________________________________________
>>> Qbs mailing list
>>> Qbs at qt-project.org
>>> https://lists.qt-project.org/listinfo/qbs
>>
>> _______________________________________________
>> Qbs mailing list
>> Qbs at qt-project.org <mailto:Qbs at qt-project.org>
>> https://lists.qt-project.org/listinfo/qbs
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/qbs/attachments/20210302/fc05defd/attachment.html>
More information about the Qbs
mailing list