Difference between revisions of "Configuration"
| Line 3: | Line 3: | ||
[[Category:Configuration]] | [[Category:Configuration]] | ||
== General ideas == | == General ideas == | ||
| − | * independant from the platform (windows/unix/.NET) | + | * independant from the platform (windows/unix/.NET) [conditions] |
| − | * one file with multiple configurations (eg. debug, release build) | + | * one file with multiple configurations (eg. debug, release build) [targets] |
| − | * exclude as regexp pattern | + | * exclude as regexp pattern [file patterns] |
| − | * global ignore patterns (eg. cvs/svn) | + | * global ignore patterns (eg. cvs/svn) [file patterns on targets] |
| − | * libraries | + | * libraries [library group] |
| − | * relative paths | + | * relative paths [paths relative to ecf file location] |
| − | * actions before/after run/compile (eg. start a server) | + | * actions before/after run/compile (eg. 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 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. | 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. | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | library | + | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | If | + | |
===File pattern=== | ===File pattern=== | ||
| Line 93: | Line 66: | ||
</tr> | </tr> | ||
</table> | </table> | ||
| + | |||
| + | |||
| + | == Questions and Problems == | ||
| + | * When are two libraries the same? '''UUID''' | ||
| + | === Multiple library usage === | ||
| + | ====Problem==== | ||
| + | <pre> | ||
| + | System Application | ||
| + | |||
| + | library A | ||
| + | library B | ||
| + | </pre> | ||
| + | <pre> | ||
| + | System A | ||
| + | |||
| + | library C | ||
| + | option Yes | ||
| + | </pre> | ||
| + | <pre> | ||
| + | System B | ||
| + | |||
| + | library C | ||
| + | option No | ||
| + | </pre> | ||
| + | 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. | ||
Revision as of 09:43, 6 September 2006
Contents
General ideas
- independant from the platform (windows/unix/.NET) [conditions]
- one file with multiple configurations (eg. debug, release build) [targets]
- exclude as regexp pattern [file patterns]
- global ignore patterns (eg. cvs/svn) [file patterns on targets]
- libraries [library group]
- relative paths [paths relative to ecf file location]
- actions before/after run/compile (eg. 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.

