Page History
...
- Targets are automatically identified and built based on source files in the package directories
- Libraries that targets need from other packages are automatically added during the linking of the targets
- A release wide include directory is set up. Package headers are prefixed by package names to avoid file name collisions
- A release wide location for applications and libraries is created
- Release wide directories for
data
andweb
are set up with links to packagedata
andweb
files. - Circular dependencies between packages are identified. Errors are raised to stop the build in these cases.
...
to use the same version of python that the release uses.
The way functions are used from other packages to simple #include the appropriate header When C and C++ code includes a header file, it needs to be qualified by the package name. To use functions in the packageA library, files in packageB (as well as packageA itself) would do
...
The build
directory includes all intermediate files. Note - no compiled code is put in the package directories. It all goes into the release/build
directory.
Package data
and web
directories
The same mechanism used to share package header files is also done for package data
and web
directories. That is, if one had the files:
Code Block |
---|
release/packageA/data/data_fileA
release/packageB/web/introB.html
|
after running scons
, the following directories would be created:
Code Block |
---|
release/data
release/web
|
and within those directories, the following softlinks
Code Block |
---|
release/data/packageA -> release/packageA/data
release/web/packageB -> release/packageB/web
|
As with the directory release/include
, do not create or put anything in release/data
or release/web
as they are cleaned out and recreated during an scons
build.
Useful Switches and Build Options
...