<?xml version="1.0"?>
<!DOCTYPE SystemDefinition [
<!ELEMENT SystemDefinition (systemModel?, build?)>
<!ATTLIST SystemDefinition
name CDATA #REQUIRED
schema CDATA #REQUIRED>
<!ELEMENT systemModel (layer+)>
<!ELEMENT layer (logicalset* | module*)*>
<!ATTLIST layer
name CDATA #REQUIRED
levels CDATA #IMPLIED
span CDATA #IMPLIED>
<!ELEMENT logicalset (logicalsubset* | module* | unit* | package* | prebuilt*)*>
<!ATTLIST logicalset
name CDATA #REQUIRED
levels CDATA #IMPLIED
span CDATA #IMPLIED
level CDATA #IMPLIED>
<!ELEMENT logicalsubset (module* | unit* | package* | prebuilt*)*>
<!ATTLIST logicalsubset name CDATA #REQUIRED>
<!ELEMENT module (component* | unit* | package* | prebuilt*)*>
<!ATTLIST module
name CDATA #REQUIRED
level CDATA #IMPLIED>
<!ELEMENT component (unit* | package* | prebuilt*)*>
<!ATTLIST component name CDATA #REQUIRED>
<!ELEMENT unit EMPTY>
<!ATTLIST unit
unitID ID #REQUIRED
name CDATA #REQUIRED
mrp CDATA #REQUIRED
filter CDATA #IMPLIED
bldFile CDATA #REQUIRED
priority CDATA #IMPLIED
contract CDATA #IMPLIED>
<!ELEMENT package EMPTY>
<!ATTLIST package
name CDATA #REQUIRED
mrp CDATA #REQUIRED
filter CDATA #IMPLIED
contract CDATA #IMPLIED>
<!ELEMENT prebuilt EMPTY>
<!ATTLIST prebuilt
name CDATA #REQUIRED
version CDATA #REQUIRED
late (Y|N) #IMPLIED
filter CDATA #IMPLIED
contract CDATA #IMPLIED>
<!ELEMENT build (option* | target+ | targetList+ | unitList+ | configuration+)*>
<!ELEMENT unitList (unitRef+)>
<!ATTLIST unitList
name ID #REQUIRED
description CDATA #REQUIRED>
<!ELEMENT unitRef EMPTY>
<!ATTLIST unitRef unit IDREF #REQUIRED>
<!ELEMENT targetList EMPTY>
<!ATTLIST targetList
name ID #REQUIRED
description CDATA #REQUIRED
target IDREFS #REQUIRED>
<!ELEMENT target EMPTY>
<!ATTLIST target
name ID #REQUIRED
abldTarget CDATA #REQUIRED
description CDATA #REQUIRED>
<!ELEMENT option EMPTY>
<!ATTLIST option
name ID #REQUIRED
abldOption CDATA #REQUIRED
description CDATA #REQUIRED
enable (Y | N | y | n) #REQUIRED>
<!ELEMENT configuration (unitListRef+ | layerRef+ | task+)*>
<!ATTLIST configuration
name ID #REQUIRED
description CDATA #REQUIRED
filter CDATA #REQUIRED>
<!ELEMENT task ( unitListRef* , (buildLayer | specialInstructions))>
<!ELEMENT unitListRef EMPTY>
<!ATTLIST unitListRef unitList IDREF #REQUIRED>
<!ELEMENT layerRef EMPTY>
<!ATTLIST layerRef layerName CDATA #REQUIRED>
<!ELEMENT buildLayer EMPTY>
<!ATTLIST buildLayer
command CDATA #REQUIRED
targetList IDREFS #IMPLIED
unitParallel (Y | N | y | n) #REQUIRED
targetParallel (Y | N | y | n) #IMPLIED>
<!ELEMENT specialInstructions EMPTY>
<!ATTLIST specialInstructions
name CDATA #REQUIRED
cwd CDATA #REQUIRED
command CDATA #REQUIRED>
]>
<SystemDefinition name="custom_SystemDefinition" schema="1.4.0">
<systemModel>
<layer name="some_component_name">
<module name="some_component_name">
<unit unitID="some_component" name="some_component_name" bldFile="some_component\group" mrp=""/>
<unit unitID="some_component2" name="some_component_name2" bldFile="some_component2\group" mrp=""/>
</module>
</layer>
</systemModel>
<build>
<!-- Here the unit list for added components can be given, below some_components is an example for unit list -->
<unitList name="SOME_COMPONENTS" description="S60 3.2 and some components">
<unitRef unit="some_component"/>
<unitRef unit="some_component2"/>
</unitList>
<!-- Example how to create specific build configuration to build 3.1 with complementary but without stubs -->
<!-- !!! NOTE this is just example !!! -->
<configuration name="S60_3_1_with_compl_no_stubs_some_comp" description="S60 3.1 with complementary and without stubs and some components" filter="S60_3_1">
<unitListRef unitList="S60_COMMON_OSEXTENSION"/>
<unitListRef unitList="S60_3_1_JAVA"/>
<unitListRef unitList="S60_COMMON"/>
<unitListRef unitList="S60_3_1"/>
<unitListRef unitList="S60_COMMON_COMPLEMENTARY"/>
<unitListRef unitList="S60_3_1_COMPLEMENTARY"/>
<!-- include some components -->
<unitListRef unitList="SOME_COMPONENTS"/>
<!-- include some components end -->
<task><buildLayer command="bldmake bldfiles" unitParallel="Y"/></task>
<task><buildLayer command="abld export" unitParallel="Y"/></task>
<task><buildLayer command="abld makefile" targetList="default_tools" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="abld library" targetList="default_tools" unitParallel="N" targetParallel="N"/></task>
<task><buildLayer command="abld target" targetList="tools_rel" unitParallel="N" targetParallel="Y"/></task>
<task><buildLayer command="abld -what build" targetList="tools_rel" unitParallel="N" targetParallel="Y"/></task>
<task><buildLayer command="abld -check build" targetList="tools_rel" unitParallel="N" targetParallel="Y"/></task>
<task><buildLayer command="abld makefile" targetList="default_winscw" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="abld resource" targetList="default_winscw" unitParallel="N" targetParallel="N"/></task>
<task><buildLayer command="abld library" targetList="default_winscw" unitParallel="N" targetParallel="N"/></task>
<task><buildLayer command="abld makefile" targetList="default_armv5" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="abld resource" targetList="default_armv5" unitParallel="N" targetParallel="N"/></task>
<task><buildLayer command="abld library" targetList="default_armv5" unitParallel="N" targetParallel="N"/></task>
<task><buildLayer command="abld target" targetList="default" unitParallel="Y" targetParallel="Y"/></task>
<task><specialInstructions name="Install colour resources" cwd="%EPOCROOT%" command="instcol cl"/></task>
<task><buildLayer command="abld final" targetList="default" unitParallel="N" targetParallel="Y"/></task>
<task><buildLayer command="abld -what build" targetList="default" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="abld -check build" targetList="default" unitParallel="Y" targetParallel="Y"/></task>
</configuration>
<!-- Example how to create specific build configuration to build 3.1 with complementary but without stubs -->
<!-- !!! NOTE this is just example !!! -->
<configuration name="S60_3_1_with_compl_no_stubs" description="S60 3.1 with complementary and without stubs" filter="S60_3_1">
<unitListRef unitList="S60_COMMON_OSEXTENSION"/>
<unitListRef unitList="S60_3_1_JAVA"/>
<unitListRef unitList="S60_COMMON"/>
<unitListRef unitList="S60_3_1"/>
<unitListRef unitList="S60_COMMON_COMPLEMENTARY"/>
<unitListRef unitList="S60_3_1_COMPLEMENTARY"/>
<task><buildLayer command="bldmake bldfiles" unitParallel="Y"/></task>
<task><buildLayer command="abld export" unitParallel="Y"/></task>
<task><buildLayer command="abld makefile" targetList="default_tools" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="abld library" targetList="default_tools" unitParallel="N" targetParallel="N"/></task>
<task><buildLayer command="abld target" targetList="tools_rel" unitParallel="N" targetParallel="Y"/></task>
<task><buildLayer command="abld -what build" targetList="tools_rel" unitParallel="N" targetParallel="Y"/></task>
<task><buildLayer command="abld -check build" targetList="tools_rel" unitParallel="N" targetParallel="Y"/></task>
<task><buildLayer command="abld makefile" targetList="default_winscw" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="abld resource" targetList="default_winscw" unitParallel="N" targetParallel="N"/></task>
<task><buildLayer command="abld library" targetList="default_winscw" unitParallel="N" targetParallel="N"/></task>
<task><buildLayer command="abld makefile" targetList="default_armv5" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="abld resource" targetList="default_armv5" unitParallel="N" targetParallel="N"/></task>
<task><buildLayer command="abld library" targetList="default_armv5" unitParallel="N" targetParallel="N"/></task>
<task><buildLayer command="abld target" targetList="default" unitParallel="Y" targetParallel="Y"/></task>
<task><specialInstructions name="Install colour resources" cwd="%EPOCROOT%" command="instcol cl"/></task>
<task><buildLayer command="abld final" targetList="default" unitParallel="N" targetParallel="Y"/></task>
<task><buildLayer command="abld -what build" targetList="default" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="abld -check build" targetList="default" unitParallel="Y" targetParallel="Y"/></task>
</configuration>
<!-- Example how to create specific build configuration to build 3.1 only for armv5 target (no tools and winscw targets) -->
<!-- !!! NOTE this is just example !!! -->
<configuration name="S60_3_1_armv5_only" description="S60 3.1 for target ARMV5 only" filter="S60_3_1">
<unitListRef unitList="S60_COMMON_OSEXTENSION"/>
<unitListRef unitList="S60_3_1_JAVA"/>
<unitListRef unitList="S60_COMMON"/>
<unitListRef unitList="S60_COMMON_OSEXTENSION_STUBS"/>
<unitListRef unitList="S60_COMMON_STUBS"/>
<unitListRef unitList="S60_3_1"/>
<task><buildLayer command="bldmake bldfiles" unitParallel="Y"/></task>
<task><buildLayer command="abld export" unitParallel="Y"/></task>
<task><buildLayer command="abld makefile" targetList="default_armv5" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="abld resource" targetList="default_armv5" unitParallel="N" targetParallel="N"/></task>
<task><buildLayer command="abld library" targetList="default_armv5" unitParallel="N" targetParallel="N"/></task>
<task><buildLayer command="abld target" targetList="default_armv5" unitParallel="Y" targetParallel="Y"/></task>
<task><specialInstructions name="Install colour resources" cwd="%EPOCROOT%" command="instcol cl"/></task>
<task><buildLayer command="abld final" targetList="default_armv5" unitParallel="N" targetParallel="Y"/></task>
<task><buildLayer command="abld -what build" targetList="default_armv5" unitParallel="Y" targetParallel="Y"/></task>
<task><buildLayer command="abld -check build" targetList="default_armv5" unitParallel="Y" targetParallel="Y"/></task>
</configuration>
</build>
</SystemDefinition>