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.
  
== Questions and Problems ==
+
===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.
*Specify use of other clusters? '''Yes'''
+
*Variables? '''If not defined, take environment variable.'''
+
*Path relative to ecf file? '''Yes'''
+
*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.
+
  
 
===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

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.