Configuration

Revision as of 09:46, 6 September 2006 by Patrickr (Talk | contribs)

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.

Overrides

It is possible to specify override clusters in a project (but not in a library). Classes in there with the same name as classes in other clusters/libraries will override those other classes. That means they will replace the implementation of the other class.

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.