Description of Package Meta definition file
Package definition files are stored in the Meta directory inside NoesisSDK in Noesis. In that directory there is a .def file for each package with the name Module.Package.def. The following attributes are defined in each definition file:
Description
A brief description of the package.
DESC = A multithreading task scheduler
Package Type
The type of package. Current type supported are:
- library (default): for library packages
- app: for executable packages
PACKAGE_TYPE = library
Reference Type
Flag that indicates the kind of reference that is generated when a package depends on this one. Possible values are:
- soft (default): a soft dependency is generated. This implies that both source and target packages can be compiled in whatever order
- order: an order dependency is generated. This implies that source must be generated after the target is compiled
- lib: a lib dependency is generated. This implies that the source is linked against a .lib generated by the target. This kind of dependency is used when a package exports symbols for example. Logically, a lib reference implies an order reference.
REFERENCE = lib
Development Language
Specifies the language used to develop the package. Posible value are:
- c++ (default)
- c++/cli
LANGUAGE = c++
Additional project properties sheets
To customize special settings for a project. Additional visual studio property sheets can be added. This setting is Visual Studio specific and should be fixed as described in #247
EXTRA_PROPS = CLR.vsprops
Dependencies
The list of packages this package depends on. Only direct dependencies must be specified. The indirect one are automatically generated by NsToolkit. When a dependency must be exported it must be prefixed with a + symbol. This happens when a package have public dependencies from a package (when you include information about that package in your public headers).
DEPEND = Core/Kernel, Core/UnitTestSystem, Core/Serialization, Core/Stream, +Import/ResourceSystem,
File/FileSystem, +Math/VectorMath, Import/DataCompiler, +Core/DynamicClass, Drawing/Types
Runtime Dependencies
Runtime dependencies are similar to normal dependencies but the dependency is only manifested at runtime. For example, a package can have a runtime dependency to Render/DX9RenderSystem because it wants that render implementation to be used but no specific interfaces or includes are used from that implementation. The generic provided from Render/RenderSystem are used instead.
RDEPEND = Logic/Entity
Third Parties
A list of third parties that are needed by this package. Integration of these files is described in Integrating ThirdParties in Noesis.
THIRDPARTY = DXSDK, NVTT