Configuration
Contents
General ideas
- independent from the platform (windows/unix/.NET) [conditions]
- one file with multiple configurations (e.g. debug, release build) [targets]
- exclude as regexp pattern [file patterns]
- global ignore patterns (e.g. cvs/svn) [file patterns on targets]
- libraries [library group]
- relative paths [paths relative to ecf file location]
- actions before/after run/compile (e.g. start a server) [pre-/postcompile actions/tasks]
- variables [used in locations and for custom conditions]
A system consists of multiple targets. A target can extend another target. A target can have some libraries, assemblies, clusters and override clusters. A library has an associated target. A cluster can have a parent cluster. An override cluster has a some groups it overrides.
Libraries
A library specification includes needed clusters, assemblies, libraries, externals and tasks. If a library is included in a project only classes in clusters can be accessed from this project because everything else is considered a dependency of the library and not content of the library itself.
File pattern
The file pattern match against the relative path in Unix format in a cluster. e.g. if the cluster is in C:\mycluster
Pattern | Matches |
---|---|
storage/table |
C:\mycluster\storage\table\* C:\mycluster\storage\table.e C:\mycluster\something\storage\table\* |
^/storage/table/ |
C:\mycluster\storage\table\* |
^/.*/test/ |
C:\mycluster\a\test\* C:\mycluster\b\test\* |
/test/ |
C:\mycluster\a\test\* C:\mycluster\b\test\* C:\mycluster\something\table\test\* |
Questions and Problems
- When are two libraries the same? UUID
Multiple library usage
Problem
System Application library A library B
System A library C option Yes
System B library C option No
We have a conflict for the option on library C.
Solution
If the library is directly used in Application, use the this options, otherwise use the options of the Application system.