configurationengine/doc/plugins/convertprojectplugin.rst
author m2lahtel
Tue, 10 Aug 2010 14:29:28 +0300
changeset 3 e7e0ae78773e
parent 0 2e8eeb919028
permissions -rw-r--r--
ConE 1.2.11 release
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     1
User guide for Convert Project Plugin
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     2
-------------------------------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     3
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     4
Introduction
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     5
'''''''''''''
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     6
This page describes how to use and configure Convert Project plugin. This plugin is 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     7
used to convert old style configuration structure to Configuration project. The plugin 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     8
can be used to create files and folders. For a folder you can define using absolute paths
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     9
or wildcards which files from previous structure are copied to the new structure. For files
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    10
it is possible just to copy a file from one location to another, create layer and configuration
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    11
root files. For these more complex type of files you can select which files are included using
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    12
absolute path or wildcards.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    13
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    14
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    15
Configuring
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    16
''''''''''''
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    17
Plugin is configured by modifying .convertprojectml file that must be located in some layer's implml folder
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    18
that is included in generated configuration. Typical case is that the plugin is used in products that don't
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    19
have configuration project and layers. In that case refer to Installation/Running part.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    20
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    21
Convert Project ML format
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    22
~~~~~~~~~~~~~~~~~~~~~~~~~~
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    23
+------------------+-----------------+----------------+-------------------------------+
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    24
| Elements         | Attributes      | Content model  | Description                   |
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    25
+==================+=================+================+===============================+
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    26
| convertprojectml | xmlns           |targetProject   | Collective/Top-most element   |
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    27
|                  |                 |layer*          | defines the namespace used    |
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    28
|                  |                 |foreach*        | in the file.                  |
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    29
+------------------+-----------------+----------------+-------------------------------+
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    30
| targetProject    | path            |                | Defines output path. By the   |
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    31
|                  | validate        |                | default all the paths later   |
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    32
|                  |                 |                | are relative to this path.    |
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    33
+------------------+-----------------+----------------+-------------------------------+
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    34
| layer            | path            | folder*        | Defines one configuration     |
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    35
|                  |                 | file*          | layer. Creates new layer      |
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    36
|                  |                 |                | folder defined in the path.   |
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    37
|                  |                 |                | Folder and file paths are     |
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    38
|                  |                 |                | relative to this path.        |    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    39
+------------------+-----------------+----------------+-------------------------------+
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    40
| folder           | path            | filter*        | Defines one folder inside a   |
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    41
|                  |                 |                | layer. Creates new folder     |
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    42
|                  |                 |                | using path. Filter paths are  |
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    43
|                  |                 |                | relative to this path.        |
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    44
+------------------+-----------------+----------------+-------------------------------+
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    45
| file             | path            | filter*        | Element which can be used     |
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    46
|                  | type            |                | for three different purposes. |
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    47
|                  |                 |                | Copying files, creating layer |
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    48
|                  |                 |                | roots and configuration roots.| 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    49
|                  |                 |                | Path defines target filename  |
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    50
|                  |                 |                | and type which kind of file   |
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    51
|                  |                 |                | is created.                   |
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    52
+------------------+-----------------+----------------+-------------------------------+
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    53
| filter           | action          |                | Filter is the element that    |
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    54
|                  | data            |                | does all the work. It has     |
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    55
|                  | remove_includes |                | attribute action, which can be|
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    56
|                  |                 |                | add, remove, include_file or  |
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    57
|                  |                 |                | include_layer. Data defines   |
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    58
|                  |                 |                | the search pattern for action | 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    59
|                  |                 |                | Remove_includes can be used to|
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    60
|                  |                 |                | remove all existing includes  |
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    61
|                  |                 |                | from files that are included  |
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    62
|                  |                 |                | in layer root file.           |
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    63
+------------------+-----------------+----------------+-------------------------------+
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    64
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    65
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    66
Installation/Running
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    67
'''''''''''''''''''''
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    68
1. Download and install ConE according the ConE installation documentation.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    69
2. Go to \\epoc32\\rom\\config folder
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    70
3. Create convertproject and convertproject\\implml folders
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    71
4. Copy example create_project.convertprojectml to convertproject\\implml folder
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    72
5. Modify according your needs
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    73
6. Create a layer root file called root.confml in convertproject folder. Use the following content:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    74
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    75
.. code-block:: xml
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    76
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    77
  <?xml version="1.0" encoding="ASCII"?>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    78
  <confml:configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    79
    xmlns:confml="http://www.s60.com/xml/confml/2" 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    80
    xmlns:xi="http://www.w3.org/2001/XInclude" 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    81
    xsi:schemaLocation="http://www.s60.com/xml/confml/2 http://www.s60.com/xml/confml/1#//confml2 http://www.w3.org/2001/XInclude http://www.s60.com/xml/confml/1#//include">
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    82
  </confml:configuration>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    83
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    84
7. Create configuration root file called convert.confml in \epoc32\rom\config folder. Use the following content:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    85
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    86
.. code-block:: xml
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    87
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    88
  <?xml version="1.0" encoding="ASCII"?>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    89
  <confml:configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    90
    xmlns:confml="http://www.s60.com/xml/confml/2" 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    91
    xmlns:xi="http://www.w3.org/2001/XInclude" 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    92
    xsi:schemaLocation="http://www.s60.com/xml/confml/2 http://www.s60.com/xml/confml/1#//confml2 http://www.w3.org/2001/XInclude http://www.s60.com/xml/confml/1#//include">
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    93
  	<xi:include href="convertproject/root.confml"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    94
  </confml:configuration>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    95
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    96
8. Run ConE to generate content. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    97
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    98
::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    99
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   100
  \epoc32\rom\config>cone --action generate -c convert.confml
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   101
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   102
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   103
Examples
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   104
'''''''''
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   105
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   106
Defining layer
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   107
'''''''''
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   108
.. code-block:: xml
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   109
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   110
  <?xml version="1.0" encoding="UTF-8"?>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   111
  <convertprojectml xmlns="http://www.s60.com/xml/convertprojectml/1">		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   112
    <targetProject path=""/>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   113
    <layer path="assets/s60">
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   114
      <folder path="implml">
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   115
        <filter action="add" data="assets/s60/confml/*.crml"/>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   116
        <filter action="add" data="assets/s60/confml/*.gcfml"/>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   117
      </folder>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   118
      <file type="layer_root" path="root.confml">
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   119
        <filter action="include_file" data="confml/*.confml"/>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   120
      </file>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   121
      <file type="configuration_root" path="s60_root.confml">
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   122
        <filter action="include_layer" data="assets/s60/root.confml"/>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   123
      </file>	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   124
    </layer>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   125
  </convertprojectml>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   126
  
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   127
Normally targetProject's **path** attribute is defined as empty. It means that the project is generated to ConE's normal output location which can be given as command line parameter (-o). 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   128
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   129
Convert project ML is constructed so that the highest data structure is **layer**. Layer has attribute **path**, which defines relative location to output path. Layer can contain one or more 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   130
**folders** and/or **files**. 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   131
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   132
Folder defines folder entry inside the layer and in file system level is a directory. Folder has **path** attribute which is relative to layer's path. Folder can contain **filters** which define 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   133
how folder's content is constructed. With action **add** data is copied to the folder from location which is defined in **data** attribute. 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   134
**Note** that the path in data attribute is relative to configuration project's root (normally \epoc32\rom\config). Example here copies  all crml and gcfml files from confml folder to impml folder.
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   135
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   136
Layer can also define files. Each file has **type** which can be layer_root or configuration_root. The former one is creating layer root file to the path defined in **path** attribute, location is 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   137
relative to layers location. Action **include_file** defines a search pattern. In the example all files from layer's confml folder with extension confml are included in the layer's root file. This can
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   138
be used to generate layer root files automatically in the build even when the exact content in filename level is not known. Configuration root files are always generated to the root of the 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   139
configuration project. Filter action **include_layer** defines configuration layer root files which are included to the configuration root.
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   140
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   141
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   142
Defining metadata and configuration name
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   143
'''''''''
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   144
.. code-block:: xml
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   145
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   146
  <?xml version="1.0" encoding="UTF-8"?>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   147
  <convertprojectml xmlns="http://www.s60.com/xml/convertprojectml/1">		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   148
    <targetProject path=""/>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   149
    <layer path="assets/s60">
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   150
      <file type="configuration_root" path="s60_root.confml" configuration_name="My S60 Config">
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   151
        <meta xmlns:cv="http://www.nokia.com/xml/cpf-id/1">
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   152
          <version>001</version>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   153
          <cv:configuration-property name="sw_version" value="${convertproject.versioninfo}" />
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   154
        </meta>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   155
        </file>	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   156
    </layer>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   157
  </convertprojectml>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   158
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   159
File element's **configuration_name** attribute can be used to override ConE's default configuration name. Value is written to ConfML file's configuration element to name attribute. **Meta** 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   160
structure defines ConfML metadata which is added to configuration root file. It supports normal ConfML metadata like in this example **version** and cv namespace metadata like **sw_version**. 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   161
Value of sw_version is fetched from ConfML setting **convertproject.versioninfo** at run time. Configuration_name and metadata are available to both layer and configuration root files.
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   162
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   163
Creating loops
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   164
'''''''''
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   165
.. code-block:: xml
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   166
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   167
  <?xml version="1.0" encoding="UTF-8"?>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   168
  <convertprojectml xmlns="http://www.s60.com/xml/convertprojectml/1">		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   169
    <targetProject path=""/>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   170
    <foreach variable="{TEMPLATE}" data="/epoc32/rom/config/language_packs">	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   171
      <layer path = language_packs/{TEMPLATE}">
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   172
        <file type="layer_root" path="root.confml">
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   173
          <filter action="include_file" data="confml/*.confml" remove_includes="true"/>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   174
        </file>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   175
        <file type="configuration_root" path="langpack_{TEMPLATE}_root.confml" configuration_name=" {TEMPLATE}">
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   176
          <filter action="include_layer" data="assets/s60/root.confml"/>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   177
          <filter action="include_layer" data="assets/symbianos/root.confml"/>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   178
          <filter action="include_layer" data="language_packs/{TEMPLATE}/root.confml"/>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   179
        </file>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   180
	  </layer>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   181
  </foreach>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   182
  </convertprojectml>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   183
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   184
Loops can be defined in convert project ml using **foreach** structures. Attribute **data** defines path where from all the folder names  are scanned. Value of attribute **variable** is the 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   185
name of the folder e.g. if /epoc32/rom/config/language_packs contains folders *lp1*,* lp2* and *lp3* then variable has value lp1 in the first round,  lp2 in the second round and lp3 in the third round. 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   186
Meaning that in the first round layer path will be language_packs/lp1 and configuration root file name is langpack_lp1_root.confml, which includes language_packs/lp1/root.confml as the last layer root. 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   187
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   188
Extending configuration root information
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   189
'''''''''
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   190
.. code-block:: xml
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   191
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   192
  <?xml version="1.0" encoding="UTF-8"?>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   193
  <convertprojectml xmlns="http://www.s60.com/xml/convertprojectml/1">		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   194
    <targetProject path=""/>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   195
    <foreach variable="{TEMPLATE}" data="/epoc32/rom/config/language_packs">	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   196
      <layer path = language_packs/{TEMPLATE}">
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   197
        <file type="layer_root" path="root.confml">
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   198
          <filter action="include_file" data="confml/*.confml" remove_includes="true"/>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   199
        </file>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   200
        <file type="configuration_root" path="langpack_{TEMPLATE}_root.confml" configuration_name=" {TEMPLATE}">
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   201
          <filter action="include_layer" data="assets/s60/root.confml"/>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   202
          <filter action="include_layer" data="assets/symbianos/root.confml"/>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   203
          <filter action="include_layer" data="language_packs/{TEMPLATE}/root.confml"/>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   204
        </file>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   205
	  </layer>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   206
    <layer path="">		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   207
        <file type="configuration_root" path="langpack_lp1_root.confml">
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   208
          <meta xmlns:cv="http://www.nokia.com/xml/cpf-id/1">
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   209
            <cv:configuration-property name="based_on_ctr" value="abc123" />
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   210
          </meta>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   211
        </file>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   212
    </layer>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   213
  </convertprojectml>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   214
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   215
The first part is exactly same as above. What has been added is a new layer which includes only one file generated in the example above. Example here adds extra metadata *'based_on_ctr** to
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   216
the configuration root langpack_lp1_root.confml. Note that convert project ml works so that if there is no existing file then that is created in case file exists then it is updated. 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   217
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   218
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   219
XSD
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   220
'''
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   221
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   222
Download: :download:`projectml.xsd </xsd/projectml.xsd>`
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   223
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   224
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   225
FAQ
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   226
'''''''''
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   227
This will be updated based on the questions.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   228
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   229
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   230
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   231
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   232