In contradiction to a program, a shared library need not have all symbols resolved even potentially at link time. Therefore, if a library is being created and then used as a dependency then the following specification should be available:
-depends somelib - link against the current available specification. If both static and dynamic are available, prefer static.
-depends somelib/static - enforce linking against static library (error if not provided)
-depends somelib/shared - enforce linking against shared library (error if not provided)
-depends somelib/virtual - add all sources defined for somelib directly to this target sources instead of linking
-depends somelib/nolink - enforce target dependency, but don't link against this library at all
The nolink specification should be allowed also when defining a program. This is useful if you have a shared library that will be load and resolved manually, e.g. using dlopen and dlsym functions.
In contradiction to a program, a shared library need not have all symbols resolved even potentially at link time. Therefore, if a library is being created and then used as a dependency then the following specification should be available:
-depends somelib- link against the current available specification. If both static and dynamic are available, prefer static.-depends somelib/static- enforce linking against static library (error if not provided)-depends somelib/shared- enforce linking against shared library (error if not provided)-depends somelib/virtual- add all sources defined forsomelibdirectly to this target sources instead of linking-depends somelib/nolink- enforce target dependency, but don't link against this library at allThe
nolinkspecification should be allowed also when defining a program. This is useful if you have a shared library that will be load and resolved manually, e.g. usingdlopenanddlsymfunctions.