[Qbs] Depending on binary from install-root

Christian Kandeler christian.kandeler at qt.io
Tue May 10 17:17:37 CEST 2022


On 5/7/22 10:33, Jochen Becher wrote:
> Am Mittwoch, dem 22.09.2021 um 10:45 +0200 schrieb Christian Kandeler:
>> On 9/9/21 1:25 PM, Jochen Becher wrote:
>>> thank you for the prompt answer. Adding explicit dependency on
>>> "installable" works. But adding the input dependency on application
>>> does not:
>>>
>>> The rule uses
>>>
>>> inputs: [ "alang"]
>>>
>>> to depend on the alang source code files. When I add additionally
>>>
>>> inputsFromDependencies: [ "application" ]
>>>
>>> it doesn't work. inputs["application"] is always undefined.
>> There's almost surely something wrong in one of your rules/products
>> then. You will probably find out what it is if you try to create a
>> minimal example.
>>
>>> Seems like inputs and inputsFromDependencies are mutual exclusive.
>> Definitely not, as that's exactly what e.g. the rule creating
>> applications has, where the inputs are object files and the inputs
>> from
>> dependencies are (import) libraries.
> Long time ago, but I ran again into this issue and now found out my
> problem with it:
>
> Of course, you are right, the properties inputs and
> inputsFromDependencies are not mutual exclusive.
>
> But: I used variable "input" at one place in my prepare code. With
> that, the inputs variable contains only the tags from "inputs" and not
> from "inputsFromDependencies". If I only access "inputs" in prepare
> code, it contains all tags.
>
> Very unexpected behaviour (and I believe undocumented as well).
>
"input" is a convenience variable that should exist if and only if there 
is exactly one input artifact, in which case it saves you from writing 
inputs[tag][0]. The set of input artifacts considered for this decision 
should include all inputs, including inputsFromDependencies. If that's 
not the case, please file a bug report.


Christian



More information about the Qbs mailing list