>> I have a project with some cpp products.
>> Also the project includes a non-cpp product.
>> Non-cpp product depends on my custom module that creates a custom deployment 
>> package.
>> Module can process both cpp and non-cpp products (so it have application 
>> input artifact). Also module use path to qt binaries from Qt.core module (so 
>> it have dependency on Qt.core module)
>> 
>> If I configure the project by QtCreator to use MinGW, all works fine, but if 
>> I use MSVC2017 (64 bit), it tries to link non-cpp product and fails with 
>> unresolved symbol mainCRTStartup.
>> Here is the short snippet that fails to build:
>> 
>> Project {
>> Product{
>> Depends{name:"Qt.core"}
>> files:"main.txt"
>> type:"test_output"
>> Rule{
>> inputs:["some_input_tag","application"]
>> Artifact{
>> filePath:"main.txt.output"
>> fileTags:["test_output"]
>> }
>> prepare:{
>> var cmd=new JavaScriptCommand();
>> return [cmd];
>> }
>> }
>> }
>> }
>> 
>> It looks like Qt.core have a dependency on cpp module, it tries to create an 
>> application artifact from 0 source files and fails on that. Is that a known 
>> issue?

>That's because the module has the Qt5Core.lib file as a target artifact, and 
>the linker rule takes such files as inputs even if no source files are 
>present. 
>Use a redirection to prevent the cpp module from getting pulled in:

>Project {
>    Product {
>        name: "QtPathProvider"
>        Depends { name:"Qt.core" }
>        Export {
>            property string qtBinPath: product.Qt.core.binPath
>            // ...
>        }
>    }
>    Product {
>        Depends { name: "QtPathProvider" }
>        // Use QtPathProvider.qtBinPath below
>        // ...
>    }
>}
Unfortunately, that is not working from a module.

Regards, Pavel
_______________________________________________
Qbs mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/qbs

Reply via email to