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 08: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.