Skip to content

Excessive inputs: why libs are inputs for another libs? #112

@yanok

Description

@yanok

Look at this line:

[d.libraries for d in d_deps] +

(also the next one with c_libs), why do we need compiled libraries to be inputs for compiling libraries?

This is not a big deal actually, since all the transitive dependency sources are already in the inputs, so it is even impossible to produce an example that works "wrong".

But in our fork we support headers and implementation_deps, so interface_srcs are not always all the transitive dependency sources. (BTW, is there some interest to get these changes merged back into this repo?)

And with that, having libs as inputs starts to hurt: if we have app <- libA <- libB dependency, and I change a source in libB which is not exported to libA, I expect no recompilation for libA. And with the compiled libB being an input, libA will still be recompiled.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions