<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://dev.eiffel.com/index.php?action=history&amp;feed=atom&amp;title=OldConfiguration</id>
		<title>OldConfiguration - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://dev.eiffel.com/index.php?action=history&amp;feed=atom&amp;title=OldConfiguration"/>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=OldConfiguration&amp;action=history"/>
		<updated>2026-05-07T07:13:14Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.24.1</generator>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=OldConfiguration&amp;diff=8594&amp;oldid=prev</id>
		<title>Manus: Fixed link</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=OldConfiguration&amp;diff=8594&amp;oldid=prev"/>
				<updated>2007-05-30T18:48:50Z</updated>
		
		<summary type="html">&lt;p&gt;Fixed link&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 18:48, 30 May 2007&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 22:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 22:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* convert old ace files into new format&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* convert old ace files into new format&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* *.epr vs *.ace&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* *.epr vs *.ace&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;ProjectFiles&lt;/del&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;ProposalProjectFiles&lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Possible implementation layout ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Possible implementation layout ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Manus</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=OldConfiguration&amp;diff=5977&amp;oldid=prev</id>
		<title>Patrickr: ConfigurationOld moved to OldConfiguration</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=OldConfiguration&amp;diff=5977&amp;oldid=prev"/>
				<updated>2006-11-09T19:36:17Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;a href=&quot;/ConfigurationOld&quot; class=&quot;mw-redirect&quot; title=&quot;ConfigurationOld&quot;&gt;ConfigurationOld&lt;/a&gt; moved to &lt;a href=&quot;/OldConfiguration&quot; title=&quot;OldConfiguration&quot;&gt;OldConfiguration&lt;/a&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 19:36, 9 November 2006&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan='2' style='text-align: center;'&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=OldConfiguration&amp;diff=4473&amp;oldid=prev</id>
		<title>Patrickr at 17:23, 6 September 2006</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=OldConfiguration&amp;diff=4473&amp;oldid=prev"/>
				<updated>2006-09-06T17:23:35Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 17:23, 6 September 2006&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Configuration]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Configuration]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This is some information about the configuration system that does not completely reflect the current configuration system.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This is some information about the configuration system that does not completely reflect the current configuration system.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Sett &lt;/del&gt;Configuration to get information about the current system.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;See [[&lt;/ins&gt;Configuration&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]] &lt;/ins&gt;to get information about the current system.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== General ideas ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== General ideas ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=OldConfiguration&amp;diff=4472&amp;oldid=prev</id>
		<title>Patrickr at 17:21, 6 September 2006</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=OldConfiguration&amp;diff=4472&amp;oldid=prev"/>
				<updated>2006-09-06T17:21:38Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:Configuration]]&lt;br /&gt;
This is some information about the configuration system that does not completely reflect the current configuration system.&lt;br /&gt;
Sett Configuration to get information about the current system.&lt;br /&gt;
&lt;br /&gt;
== General ideas ==&lt;br /&gt;
* as much as possible independant from the system (windows/unix)&lt;br /&gt;
* one file with multiple configurations (eg. debug, release build)&lt;br /&gt;
* include/exclude as regexp pattern&lt;br /&gt;
* global ignore patterns (eg. cvs/svn)&lt;br /&gt;
* include other configuration files (eg. to add a library just include the config file of the library)&lt;br /&gt;
* relative paths&lt;br /&gt;
* actions before/after run/compile (eg. start a server)&lt;br /&gt;
&lt;br /&gt;
=== Things to implement ideas ===&lt;br /&gt;
* conditions (if windows then ... elseif unix then ... end)&lt;br /&gt;
* variables (user and predefined)&lt;br /&gt;
* inheritance of configuration&lt;br /&gt;
* C code to compile (when wrapping C API:s or optimizing code)&lt;br /&gt;
* Flags to C compiler and linker&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
* convert old ace files into new format&lt;br /&gt;
* *.epr vs *.ace&lt;br /&gt;
* [[ProjectFiles]]&lt;br /&gt;
&lt;br /&gt;
== Possible implementation layout ==&lt;br /&gt;
&lt;br /&gt;
Some more information are available here: http://www.ise/tools/public_zone/index.php?op=dl&amp;amp;path=/home/patrickr/public_html/Public/project_configuration.pdf (Part with two config files has changed to only one config file.)&lt;br /&gt;
&lt;br /&gt;
[[Image:Configuration1.jpg]]&lt;br /&gt;
&lt;br /&gt;
A system consists of multiple targets. A target can extend another target. A target can have some libraries, assemblies, clusters and override clusters.&lt;br /&gt;
A library has an associated target. A cluster can have a parent cluster. An override cluster has a some groups it overrides.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[eiffel, N]&lt;br /&gt;
indexing&lt;br /&gt;
	description: &amp;quot;The configuration system.&amp;quot;&lt;br /&gt;
	date: &amp;quot;$Date$&amp;quot;&lt;br /&gt;
	revision: &amp;quot;$Revision$&amp;quot;&lt;br /&gt;
&lt;br /&gt;
class&lt;br /&gt;
	CONF_SYSTEM&lt;br /&gt;
&lt;br /&gt;
feature&lt;br /&gt;
&lt;br /&gt;
	name: STRING&lt;br /&gt;
			-- Name of the system.&lt;br /&gt;
&lt;br /&gt;
	uuid: STRING&lt;br /&gt;
			-- UUID of this system. Used to uniquely identify libraries.&lt;br /&gt;
&lt;br /&gt;
	targets: LIST [CONF_TARGET]&lt;br /&gt;
			-- The configuration targets.&lt;br /&gt;
&lt;br /&gt;
	library_target: CONF_TARGET&lt;br /&gt;
			-- The target to use if this is used as a library.&lt;br /&gt;
	&lt;br /&gt;
	compileable_targets: LIST [CONF_TARGET]&lt;br /&gt;
			-- Targets that can be compiled (e.g. have a root feature).&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[eiffel, N]&lt;br /&gt;
indexing&lt;br /&gt;
	description: &amp;quot;A configuration target.&amp;quot;&lt;br /&gt;
	date: &amp;quot;$Date$&amp;quot;&lt;br /&gt;
	revision: &amp;quot;$Revision$&amp;quot;&lt;br /&gt;
&lt;br /&gt;
class&lt;br /&gt;
	CONF_TARGET&lt;br /&gt;
&lt;br /&gt;
feature&lt;br /&gt;
&lt;br /&gt;
	name: STRING&lt;br /&gt;
			-- Name of the target.&lt;br /&gt;
&lt;br /&gt;
	version: CONF_VERSION&lt;br /&gt;
			-- Version number of the target.&lt;br /&gt;
&lt;br /&gt;
	extends: CONF_TARGET&lt;br /&gt;
			-- If we extend another target, this is the other target.&lt;br /&gt;
&lt;br /&gt;
	libraries: LIST [CONF_LIBRARY]&lt;br /&gt;
			-- The used libraries.&lt;br /&gt;
&lt;br /&gt;
	overrides: LIST [CONF_OVERRIDE]&lt;br /&gt;
			-- The override clusters.&lt;br /&gt;
&lt;br /&gt;
	clusters: LIST [CONF_CLUSTER]&lt;br /&gt;
			-- The normal clusters.&lt;br /&gt;
	&lt;br /&gt;
	assemblies: LIST [CONF_ASSEMBLY]&lt;br /&gt;
			-- The assemblies.&lt;br /&gt;
&lt;br /&gt;
	root: CONF_ROOT&lt;br /&gt;
			-- The root feature.&lt;br /&gt;
&lt;br /&gt;
	options: CONF_OPTIONS&lt;br /&gt;
			-- The options (assertions, debugs, warnings, ...)&lt;br /&gt;
&lt;br /&gt;
	file_rule: CONF_FILE_RULE&lt;br /&gt;
			-- Globally exclude/include file rules.&lt;br /&gt;
&lt;br /&gt;
	external_include: LIST [CONF_EXTERNAL_INCLUDE]&lt;br /&gt;
			-- Global external include files.&lt;br /&gt;
&lt;br /&gt;
	external_objec: LIST [CONF_EXTERNAL_OBJECT]&lt;br /&gt;
			-- Global external object files.&lt;br /&gt;
&lt;br /&gt;
	external_ressource: LIST [CONF_EXTERNAL_RESSOURCE]&lt;br /&gt;
			-- Global external ressource files.&lt;br /&gt;
&lt;br /&gt;
	pre_compile: LIST [CONF_ACTION]&lt;br /&gt;
			-- Actions to be executed before compilation.&lt;br /&gt;
&lt;br /&gt;
	post_action: LIST [CONF_ACTION]&lt;br /&gt;
			-- Actions to be executed after compilation.&lt;br /&gt;
&lt;br /&gt;
	variables: LIST [CONF_VARIABLE]&lt;br /&gt;
			-- User defined variables.&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[eiffel, N]&lt;br /&gt;
indexing&lt;br /&gt;
	description: &amp;quot;Base class for configuration groups.&amp;quot;&lt;br /&gt;
	date: &amp;quot;$Date$&amp;quot;&lt;br /&gt;
	revision: &amp;quot;$Revision$&amp;quot;&lt;br /&gt;
&lt;br /&gt;
class&lt;br /&gt;
	CONF_GROUP&lt;br /&gt;
&lt;br /&gt;
inherit&lt;br /&gt;
	CONF_CONDITIONED&lt;br /&gt;
&lt;br /&gt;
feature&lt;br /&gt;
&lt;br /&gt;
	name: STRING&lt;br /&gt;
			-- The name of the group.&lt;br /&gt;
&lt;br /&gt;
	directory: CONF_DIRECTORY&lt;br /&gt;
			-- The directory of the group.&lt;br /&gt;
&lt;br /&gt;
	options: CONF_OPTIONS&lt;br /&gt;
			-- The options (assertions, debugs, warnings, ...)&lt;br /&gt;
&lt;br /&gt;
	name_prefix: STRING&lt;br /&gt;
			-- An optional name prefix for this group.&lt;br /&gt;
&lt;br /&gt;
	renaming: HASH_TABLE [STRING, STRING]&lt;br /&gt;
			-- Mapping of renamed classes from the old name to the new name.&lt;br /&gt;
&lt;br /&gt;
	class_options: HASH_TABLE [CONF_OPTION, STRING&lt;br /&gt;
			-- Classes with specific options.&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[eiffel, N]&lt;br /&gt;
indexing&lt;br /&gt;
	description: &amp;quot;A library.&amp;quot;&lt;br /&gt;
	date: &amp;quot;$Date$&amp;quot;&lt;br /&gt;
	revision: &amp;quot;$Revision$&amp;quot;&lt;br /&gt;
&lt;br /&gt;
class&lt;br /&gt;
	CONF_LIBRARY&lt;br /&gt;
&lt;br /&gt;
inherit&lt;br /&gt;
	CONF_GROUP&lt;br /&gt;
&lt;br /&gt;
feature&lt;br /&gt;
&lt;br /&gt;
	library_target: CONF_TARGET&lt;br /&gt;
			-- The library target.&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[eiffel, N]&lt;br /&gt;
indexing&lt;br /&gt;
	description: &amp;quot;A project cluster.&amp;quot;&lt;br /&gt;
	date: &amp;quot;$Date$&amp;quot;&lt;br /&gt;
	revision: &amp;quot;$Revision$&amp;quot;&lt;br /&gt;
&lt;br /&gt;
class&lt;br /&gt;
	CONF_CLUSTER&lt;br /&gt;
&lt;br /&gt;
inherit&lt;br /&gt;
	CONF_GROUP&lt;br /&gt;
&lt;br /&gt;
feature&lt;br /&gt;
	is_recursive: BOOLEAN&lt;br /&gt;
			-- Are subdirectories included recursively?&lt;br /&gt;
&lt;br /&gt;
	parent: CONF_CLUSTER&lt;br /&gt;
			-- An optional parent cluster.&lt;br /&gt;
&lt;br /&gt;
	dependencies: LIST [CONF_GROUP]&lt;br /&gt;
			-- Dependencies to other groups.&lt;br /&gt;
&lt;br /&gt;
	file_rule: CONF_FILE_RULE&lt;br /&gt;
			-- Globally exclude/include file rules.&lt;br /&gt;
&lt;br /&gt;
	is_visible (a_feature, a_class: STRING): BOOLEAN&lt;br /&gt;
			-- Is a feature of this cluster visible?&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[eiffel, N]&lt;br /&gt;
indexing&lt;br /&gt;
	description: &amp;quot;Clusters that override other groups.&amp;quot;&lt;br /&gt;
	date: &amp;quot;$Date$&amp;quot;&lt;br /&gt;
	revision: &amp;quot;$Revision$&amp;quot;&lt;br /&gt;
&lt;br /&gt;
class&lt;br /&gt;
	CONF_OVERRIDE&lt;br /&gt;
&lt;br /&gt;
inherit&lt;br /&gt;
	CONF_CLUSTER&lt;br /&gt;
&lt;br /&gt;
feature&lt;br /&gt;
&lt;br /&gt;
	override: LIST [CONF_GROUP]&lt;br /&gt;
			-- The groups that this cluster overrides.&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CONF_CONDITIONED is a class that allows to specify for which platform, build tuple something is enabled. Conditioned are: CONF_ACTION (pre-/postcompile actions), CONF_EXTERNAL_(INCLUDE|OBJECT|RESSOURCE), CONF_GROUP&lt;br /&gt;
&lt;br /&gt;
== Pseudocode example configuration ==&lt;br /&gt;
files/eiffelvision/eiffelvision.ace&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
system EiffelVision&lt;br /&gt;
&lt;br /&gt;
target Library&lt;br /&gt;
    version 2.0.0.1&lt;br /&gt;
    uuid 15ac36b5-2c65-41e9-8309-c504dd430a0b&lt;br /&gt;
&lt;br /&gt;
    library base&lt;br /&gt;
        files/base/base.ace&lt;br /&gt;
&lt;br /&gt;
    cluster vision&lt;br /&gt;
        files/vision&lt;br /&gt;
        recursive&lt;br /&gt;
        uses base&lt;br /&gt;
    &lt;br /&gt;
    external_include&lt;br /&gt;
        files/include/common.h [(all, all)]&lt;br /&gt;
        files/include/windows.h [(windows, all)]&lt;br /&gt;
        files/include/gtk [(unix, all)]&lt;br /&gt;
&lt;br /&gt;
    external_objects&lt;br /&gt;
        files/obj/windows.o [(windows, all)]&lt;br /&gt;
        files/obj/gtk.o [(unix, all)]&lt;br /&gt;
        files/obj/debug.o [(unix, workbench)]&lt;br /&gt;
&lt;br /&gt;
target Debug extends Library&lt;br /&gt;
&lt;br /&gt;
    cluster debug&lt;br /&gt;
        files/debug&lt;br /&gt;
        recursive&lt;br /&gt;
        uses base, vision&lt;br /&gt;
&lt;br /&gt;
    root debug:ROOT_CLASS:make&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
files/eiffelstudio/eiffelstudio.ace&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
system EiffelStudio&lt;br /&gt;
    version 5.0.0.1&lt;br /&gt;
    uuid 9a8d3871-ef44-484c-9029-c52d17df40f0&lt;br /&gt;
&lt;br /&gt;
target Common&lt;br /&gt;
&lt;br /&gt;
    variable gobo_setting=&amp;quot;some settings&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    exclude&lt;br /&gt;
        ^\.svn$&lt;br /&gt;
&lt;br /&gt;
    library base &lt;br /&gt;
        files/base/base.ace&lt;br /&gt;
&lt;br /&gt;
    library gobo&lt;br /&gt;
        files/gobo/gobo.ace&lt;br /&gt;
        rename &amp;quot;some_class&amp;quot; as &amp;quot;new_class&amp;quot;&lt;br /&gt;
        prefix &amp;quot;gobo_&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    cluster compiler&lt;br /&gt;
        files/compiler&lt;br /&gt;
            uses base, gobo&lt;br /&gt;
&lt;br /&gt;
    root compiler:ROOT_CLASS:make&lt;br /&gt;
&lt;br /&gt;
target Console extends Common&lt;br /&gt;
&lt;br /&gt;
    cluster console&lt;br /&gt;
        files/console&lt;br /&gt;
            uses base, gobo, compiler&lt;br /&gt;
&lt;br /&gt;
    cluster mysub (console)&lt;br /&gt;
        $/mysub&lt;br /&gt;
&lt;br /&gt;
target Workbench extends Common&lt;br /&gt;
&lt;br /&gt;
    library eiffelvision&lt;br /&gt;
        files/eiffelvision/eiffelvision.ace&lt;br /&gt;
&lt;br /&gt;
    cluster workbench&lt;br /&gt;
        files/workbench&lt;br /&gt;
            uses base, gobo, eiffelvision, compiler&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Questions and Problems ==&lt;br /&gt;
&lt;br /&gt;
*Specify use of other clusters? '''Yes'''&lt;br /&gt;
*Variables? '''If not defined, take environment variable.'''&lt;br /&gt;
*Path relative to ace file? '''Yes'''&lt;br /&gt;
*When are two libraries the same? '''UUID: http://www.famkruithof.net/guid-uuid-random.html'''&lt;br /&gt;
=== Multiple library usage ===&lt;br /&gt;
====Problem====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
System Application&lt;br /&gt;
&lt;br /&gt;
library A&lt;br /&gt;
library B&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
System A&lt;br /&gt;
&lt;br /&gt;
library C&lt;br /&gt;
    option Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
System B&lt;br /&gt;
&lt;br /&gt;
library C&lt;br /&gt;
    option No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
We have a conflict for the option on library C.&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
If the library is directly used in Application, use the this options, otherwise use the options of the Application system.&lt;br /&gt;
&lt;br /&gt;
===File pattern===&lt;br /&gt;
The file pattern match against the relative path in unix format in a cluster.&lt;br /&gt;
e.g. if the cluster is in C:\mycluster&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;th&amp;gt;Pattern&amp;lt;/th&amp;gt;&lt;br /&gt;
 &amp;lt;th&amp;gt;Matches&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
storage/table&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
    C:\mycluster\storage\table\*&lt;br /&gt;
    C:\mycluster\storage\table.e&lt;br /&gt;
    C:\mycluster\something\storage\table\*&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
^/storage/table/&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
    C:\mycluster\storage\table\*&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
^/.*/test/&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
    C:\mycluster\a\test\*&lt;br /&gt;
    C:\mycluster\b\test\*&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
/test/&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;&lt;br /&gt;
    C:\mycluster\a\test\*&lt;br /&gt;
    C:\mycluster\b\test\*&lt;br /&gt;
    C:\mycluster\something\table\test\*&lt;br /&gt;
 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuration file format ==&lt;br /&gt;
[[ConfigurationFileFormat|Configuration file format page]]&lt;br /&gt;
&lt;br /&gt;
== Migration ==&lt;br /&gt;
[[ConfigurationMigration|Configuration migration]]&lt;br /&gt;
&lt;br /&gt;
== Degree 6 ==&lt;br /&gt;
[[ConfigurationDegree6|Configuration degree 6]]&lt;br /&gt;
&lt;br /&gt;
== Ideas for better conditions ==&lt;br /&gt;
[[ConfigurationConditions|Configuration conditions]]&lt;/div&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	</feed>