The output of the build process appears under the build artefacts folder:
(build artefacts) ├── build ├── export ├── include └── lib
Three of these subfolders are specifed by the following variables defined in base.xcpp which is an xcpp configuration file.
$EXPORT_LIB = "../lib"
$EXPORT_TRANSLATED_INCLUDE = "../include"
$EXPORT_UNTRANSLATED_INCLUDE = "../export"
The output of the build is written to a separate area which doesn’t
overlap with the input. i.e. it is assumed that the build artefacts folder
isn't contained within any of the physical trees specified in the
input virtual tree.
The build artefacts folder contains the following subfolders:
Folder | Description |
---|---|
build | Holds the generated project and solution files (e.g. vcxproj anf sln files for Microsoft Visual Studio when targeting Windows), and intermediate files such as object files and precompiled headers |
export | Holds the exported public header files, project files and workspace files which are needed for chained builds. The public header files may be expressed in the Xc++ language. |
include | Holds the exported public header files in pure C++. The public header files of libraries written in the Xc++ language are translated into pure C++, so they are available for pure C++ projects. |
lib | Holds the exported binaries for libraries and executables which are needed for chained builds |
The export, include and lib folders are intended to be packaged in a release of a set of projects in a workspace.
In order to build a ceda workspace the following must be given:
This information on a given development machine corresponds to a particular build environment.
For a given solution, the output of the build is written to either the build directory to hold the intermediate build files, or else the export, include and lib folders to hold the output files of the build that are packaged in a formal release.
The build directory contains intermediate build files such as .obj and .pch files. To avoid name clashes .obj files are organised under directories according to project name, platform and configuration. It is assumed that filenames are unique within a given project but not across projects.
Since the .vcproj and .sln files are calculated they are also treated as intermediate files to be stored in the build directory.