Workspaces¶
SLC Workspaces describe a collection of projects that make up a logical whole, such as a full production image for an embedded device, or host and NCP applications that together implement a functional program.
A workspace typically consists of the .slcw
file and an artifact directory for post-build artifacts. When generating a workspace, the constituent projects shall be generated individually, making use of the workspace integration information in the import section to populate the generated IDE project with imported content from prerequisite projects. A post-build file shall be generated from the defined template. A mechanism for building the entire workspace and executing post-build shall be produced. The specific mechanism is left up to the exporter implementation, but would typically make use of IDE workspace/solution features when available.
Sharing Content¶
SLC Workspaces make it possible for multiple projects to share content, such as configuration or interface libraries.
Sharing from Components¶
Specific components in the SDK may mark their configuration files and template files as exportable, by setting export: true
. Such files get placed into an export/
subdirectory of their respective config/
and autogen/
directories when the SLC project is generated. Dependent projects get the config/export/
and autogen/export/
include paths added for any project they depend on. The include paths are ordered such that the exported paths come before the project's local config/
and autogen/
directories, and the exported paths are internally sorted in the same order as the projects are listed in the .slcw file.
Sharing from Projects¶
Projects may export libraries and include files/paths by listing paths in the export
section of the .slcp file. Dependent projects get all libraries and include paths added for any project they depend on.