Name
Property library — Specify which library should contain the object files generated by building this package.
Synopsis
cdl_package <name> { library <library name> … }
Description
By default all object files that get built for all packages end up in
a single library, libtarget.a
. This makes things
easier for the typical application developer because it is only
necessary to link with a single library, rather than with separate
libraries for each package. It is possible to specify an alternative
library for specific files as an option to the compile and make_object properties, and there is one library
libextras.a
which serves a
specific purpose in the build system. The library property allows an
alternative library to be specified for all the object files that will
be generated for a given package.
The use of the library property should be avoided, since it makes things more difficult for application developers. The property is intended only for special cases, for example if there are legal objections to mingling object files from different packages in a single library. It could also be used to work around name clash problems if two packages happen to define an exported symbol with the same name, but any attempt to use multiple libraries in this way is error-prone and should be avoided.
The library property takes a single argument, the name of a library,
which should follow the standard naming convention of
lib<something>.a
. A library property can
only occur in the body of a cdl_package
command and applies to all
object files generated for that package (except where explicitly
overwritten with a -library=
option to one of the
build-related properties). A cdl_package
body can contain at most
one library property.
Example
cdl_package <SOME_PACKAGE> { … library libSomePackage.a }
See Also
Properties compile,
make, and
make_object,
command cdl_package
.
2024-12-10 | Open Publication License |