diff options
author | William Salmon <will.salmon@codethink.co.uk> | 2018-09-11 11:40:56 +0100 |
---|---|---|
committer | Phil Dawson <phildawson.0807@gmail.com> | 2018-10-16 12:39:14 +0000 |
commit | b2767ac06ac72977e46fb89ad24efe2309bc9477 (patch) | |
tree | f0d6660363b2d072d698fb7e4d513160f9e072f7 | |
parent | 0d04e1b7db7e7612a2d2ca13652e7c425e519650 (diff) | |
download | buildstream-b2767ac06ac72977e46fb89ad24efe2309bc9477.tar.gz |
Extended the Documentation to cover out of source builds
For issue #512 in Gitlab.
-rw-r--r-- | buildstream/buildelement.py | 44 | ||||
-rw-r--r-- | buildstream/source.py | 13 |
2 files changed, 57 insertions, 0 deletions
diff --git a/buildstream/buildelement.py b/buildstream/buildelement.py index 5447c13be..e04ee38b0 100644 --- a/buildstream/buildelement.py +++ b/buildstream/buildelement.py @@ -23,6 +23,50 @@ BuildElement - Abstract class for build elements The BuildElement class is a convenience element one can derive from for implementing the most common case of element. +Built-in functionality +---------------------- + +The BuildElement base class provides built in functionality that could be +overridden by the individual plugins. + +This section will give a brief summary of how some of the common features work, +some of them or the variables they use will be further detailed in the following +sections. + +Location for running commands +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +The ``command-subdir`` variable sets where the build commands will be executed, +if the directory does not exist it will be created, it is defined relative to +the buildroot. + +Location for configuring the project +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +The ``conf-root`` is defined by default as ``.`` and is the location that +specific build element can use to look for build configuration files. This is +used by elements such as autotools, cmake, distutils, meson, pip and qmake. + +The configuration commands are run in ``command-subdir`` and by default +``conf-root`` is ``.`` so if ``conf-root`` is not set the configuration files +in ``command-subdir`` will be used. + +By setting ``conf-root`` to ``"%{build-root}/Source/conf_location"`` and your +source elements ``directory`` variable to ``Source`` then the configuration +files in the directory ``conf_location`` with in your Source will be used. +The current working directory when your configuration command is run will still +be wherever you set your ``command-subdir`` to be, regardless of where the +configure scripts are set with ``conf-root``. + +.. note:: + + The ``conf-root`` variable is available since :ref:`format version 17 <project_format_version>` + +Install Location +~~~~~~~~~~~~~~~~ + +You should not change the ``install-root`` variable as it is a special +writeable location in the sandbox but it is useful when writing custom +install instructions as it may need to be supplied as the ``DESTDIR``, please +see the :mod:`cmake <elements.cmake>` build element for example. Abstract method implementations ------------------------------- diff --git a/buildstream/source.py b/buildstream/source.py index 30883430a..ad7c57fb0 100644 --- a/buildstream/source.py +++ b/buildstream/source.py @@ -20,6 +20,19 @@ Source - Base source class ========================== +Built-in functionality +---------------------- + +The Source base class provides built in functionality that may be overridden +by individual plugins. + +* Directory + + The ``directory`` variable can be set for all sources of a type in project.conf + or per source within a element. + + This sets the location within the build root that the content of the source + will be loaded in to. If the location does not exist, it will be created. .. _core_source_abstract_methods: |