.. _toolchain-feed-syntax:
Toolchain feed syntax
=====================
General
-------
This is used by the ``qitoolchain create`` command.
The root of the ``feed.xml`` should be ``toolchain``
The global xml file should look like this:
.. code-block:: xml
toolchain type
--------------
The ``toolchain`` node accepts three types of children:
* ``package`` type
* ``feed`` type
* ``select`` type (more on this later)
feed type
---------
The ``feed`` type can have a ``url`` attribute, pointing to an other feed.
This lets you include feeds inside other feeds.
.. code-block:: xml
.. code-block:: xml
package type
------------
The ``package`` type **must** have at least a ``name`` attribute.
Optionally, it can have a ``version`` and a ``arch`` attributes.
This lets you store several configuration and several versions of the
same package in the same feed
.. code-block:: xml
If it does not have an ``url`` attribute, it should have a ``directory`` attribute,
and then the package path will be **relative** to the feed path.
This lets you put several packages in a big archive (for instance
``my-sdk.tar.gz``), and give it to other developers.
Simply create a ``toolchain.xml`` at the root of the SDK, looking like
.. code-block:: xml
If you need a toolchain file, (for instance because your are generating a
cross-toolchain), simply use the ``toolchain_file`` attribute
.. code-block:: xml
The ``toolchain_file`` is relative to the path of the package.
Of course, nothing prevents you to create a feed letting developers getting
your cross-toolchain remotely.
.. code-block:: xml
select type
-----------
Right now we have no need for this, but several
things might be implemented later:
.. code-block:: xml
We do not need this because when several packages are found,
we simply take the latest version.
So for instance, if you need ``foobar-0.1`` in your maintenance branch,
but ``foobar-2.0`` in your devel branch, you can simply have two feeds, like
this
.. code-block:: xml
.. code-block:: xml