[Qbs] Build and run a AuxiliaryApplication before build a MainApplication

Christian Kandeler christian.kandeler at qt.io
Mon Feb 22 11:00:18 CET 2021


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

-------------- next part --------------
import qbs
import qbs.File
import qbs.FileInfo

Product {
    name: "QGit"
    targetName: "qgit"

    type: "application"
    destinationDirectory: "./bin"

    Depends { name: "cpp" }
    Depends { name: "GenTrigrams" }
    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");

//            console.info("=== runUtl ===");
//            console.info(input);
//            console.info(inputs);
//            console.info(runUtl);
//            console.info(input.filePath);
//            console.info(outputFile);

            var cmd = new Command(runUtl, [input.filePath, outputFile]);
            cmd.description = "sonnet parse trigrams";
            cmd.highlight = "filegen";
            return cmd;
        }
    }

    files: [
        "qgit.cpp",
    ]

//    property var test: {
//        console.info("=== Qt.core.version ===");
//        console.info(Qt.core.version);
//        console.info("=== VERSION_PROJECT ===");
//        console.info(project.projectVersion[0]);
//    }
}
-------------- next part --------------
import qbs
import qbs.FileInfo

Product {
    name: "GenTrigrams"
    targetName: "gentrigrams"
    condition: true

    //type: "application"
    type: ["application"]
    destinationDirectory: "./bin"

    Depends { name: "cpp" }
    Depends { name: "Qt"; submodules: ["core"] }

    cpp.defines: project.cppDefines
    cpp.cxxFlags: project.cxxFlags
    cpp.cxxLanguageVersion: project.cxxLanguageVersion

    // This declaration is needed to suppress Qt warnings
    cpp.systemIncludePaths: Qt.core.cpp.includePaths

    files: [
        "gentrigrams.cpp"
    ]

    Group {
        fileTagsFilter: "application"
        fileTags: "trigrams-generator"
    }
}


More information about the Qbs mailing list