[Notes] [Git][BuildStream/buildstream][willsalmon/outOfSourecBuild] 2 commits: Extended the Documentation to cover out of source builds



Title: GitLab

Will Salmon pushed to branch willsalmon/outOfSourecBuild at BuildStream / buildstream

Commits:

7 changed files:

Changes:

  • buildstream/buildelement.py
    ... ... @@ -23,6 +23,40 @@ BuildElement - Abstract class for build elements
    23 23
     The BuildElement class is a convenience element one can derive from for
    
    24 24
     implementing the most common case of element.
    
    25 25
     
    
    26
    +Built-in functionality
    
    27
    +----------------------
    
    28
    +
    
    29
    +The BuildElement base class provides built in functionality that could be overridden by the
    
    30
    +individual plugins.
    
    31
    +
    
    32
    +This section will give a brief summary of how some of the common features work, some of them or the variables they
    
    33
    +use will be further detailed in the following sections.
    
    34
    +
    
    35
    +* Location for running commands
    
    36
    +
    
    37
    + The ``command-subdir`` variable sets where the build commands will be executed, if the directory does not exist it
    
    38
    + will be created, it is defined relative to the buildroot.
    
    39
    +
    
    40
    +* Location for configuring the project
    
    41
    +
    
    42
    + The ``conf-root`` is defined by default as ``.`` and is the location that specific build element can use to look
    
    43
    + for build configuration files, currently autotools, cmake, distutils, meson, pip and qmake use this.
    
    44
    +
    
    45
    + The configuration commands are run in ``command-subdir`` and by default ``conf-root`` is ``.`` so if
    
    46
    + ``conf-root`` is not set the configuration files in ``command-subdir`` will be used.
    
    47
    +
    
    48
    + By setting ``conf-root`` to ``"%{build-root}/Source/conf_location"`` and your source elements ``directory`` variable
    
    49
    + to ``Source`` then the configuration files in the directory ``conf_location`` with in your Source will be used.
    
    50
    + However the location where your configuration command will be run will still be wherever you set your
    
    51
    + ``command-subdir`` to be.
    
    52
    +
    
    53
    + The ``conf-root`` variable is available since :ref:`format version 17 <project_format_version>`
    
    54
    +
    
    55
    +* Install Location
    
    56
    +
    
    57
    +  You should not change the ``install-root`` variable as it is a special writeable location in the sandbox but it is
    
    58
    +  useful when writing custom install instructions as it may need to be supplied as the ``DESTDIR``, please see the
    
    59
    +  cmake build element for example.
    
    26 60
     
    
    27 61
     Abstract method implementations
    
    28 62
     -------------------------------
    

  • buildstream/plugins/elements/distutils.yaml
    ... ... @@ -8,7 +8,7 @@ variables:
    8 8
     
    
    9 9
       python-build: |
    
    10 10
     
    
    11
    -    %{python} setup.py build
    
    11
    +    %{python} %{conf-root}/setup.py build
    
    12 12
     
    
    13 13
       install-args: |
    
    14 14
     
    
    ... ... @@ -17,7 +17,7 @@ variables:
    17 17
     
    
    18 18
       python-install: |
    
    19 19
     
    
    20
    -    %{python} setup.py install %{install-args}
    
    20
    +    %{python} %{conf-root}/setup.py install %{install-args}
    
    21 21
     
    
    22 22
     
    
    23 23
     config:
    

  • buildstream/plugins/elements/meson.yaml
    ... ... @@ -28,7 +28,7 @@ variables:
    28 28
         --mandir=%{mandir} \
    
    29 29
         --infodir=%{infodir} %{meson-extra} %{meson-global} %{meson-local}
    
    30 30
     
    
    31
    -  meson: meson %{build-dir} %{meson-args}
    
    31
    +  meson: meson %{conf-root} %{build-dir} %{meson-args}
    
    32 32
     
    
    33 33
       ninja: |
    
    34 34
         ninja -j ${NINJAJOBS} -C %{build-dir}
    

  • buildstream/plugins/elements/pip.yaml
    ... ... @@ -14,7 +14,7 @@ config:
    14 14
       #
    
    15 15
       install-commands:
    
    16 16
       - |
    
    17
    -    %{pip} install --no-deps --root=%{install-root} --prefix=%{prefix} .
    
    17
    +    %{pip} install --no-deps --root=%{install-root} --prefix=%{prefix} %{conf-root} 
    
    18 18
     
    
    19 19
       # Commands for stripping debugging information out of
    
    20 20
       # installed binaries
    

  • buildstream/plugins/elements/qmake.yaml
    ... ... @@ -2,7 +2,7 @@
    2 2
     
    
    3 3
     variables:
    
    4 4
     
    
    5
    -  qmake: qmake -makefile
    
    5
    +  qmake: qmake -makefile %{conf-root}
    
    6 6
       make: make
    
    7 7
       make-install: make -j1 INSTALL_ROOT="%{install-root}" install
    
    8 8
     
    

  • buildstream/source.py
    ... ... @@ -20,6 +20,19 @@
    20 20
     Source - Base source class
    
    21 21
     ==========================
    
    22 22
     
    
    23
    +Built-in functionality
    
    24
    +----------------------
    
    25
    +
    
    26
    +The Source base class provides built in functionality that could be overridden by the
    
    27
    +individual plugins.
    
    28
    +
    
    29
    +* Directory
    
    30
    +
    
    31
    +  The ``directory`` variable can be set for all sources of a type in project.conf
    
    32
    +  or per source within a element.
    
    33
    +
    
    34
    +  This sets the location with in the build root that the content of the source will be
    
    35
    +  loaded in to. If the location dose not exist it will be created.
    
    23 36
     
    
    24 37
     .. _core_source_abstract_methods:
    
    25 38
     
    

  • tests/format/variables.py
    ... ... @@ -22,7 +22,7 @@ DATA_DIR = os.path.join(
    22 22
          "cmake -B_builddir -H\".\" -G\"Unix Makefiles\" " + "-DCMAKE_INSTALL_PREFIX:PATH=\"/usr\" \\\n" +
    
    23 23
          "-DCMAKE_INSTALL_LIBDIR=lib   "),
    
    24 24
         ('distutils.bst', 'python-install',
    
    25
    -     "python3 setup.py install --prefix \"/usr\" \\\n" +
    
    25
    +     "python3 ./setup.py install --prefix \"/usr\" \\\n" +
    
    26 26
          "--root \"/buildstream-install\""),
    
    27 27
         ('makemaker.bst', 'configure', "perl Makefile.PL PREFIX=/buildstream-install/usr"),
    
    28 28
         ('modulebuild.bst', 'configure', "perl Build.PL --prefix \"/buildstream-install/usr\""),
    
    ... ... @@ -48,7 +48,7 @@ def test_defaults(cli, datafiles, tmpdir, target, varname, expected):
    48 48
          "cmake -B_builddir -H\".\" -G\"Ninja\" " + "-DCMAKE_INSTALL_PREFIX:PATH=\"/opt\" \\\n" +
    
    49 49
          "-DCMAKE_INSTALL_LIBDIR=lib   "),
    
    50 50
         ('distutils.bst', 'python-install',
    
    51
    -     "python3 setup.py install --prefix \"/opt\" \\\n" +
    
    51
    +     "python3 ./setup.py install --prefix \"/opt\" \\\n" +
    
    52 52
          "--root \"/custom/install/root\""),
    
    53 53
         ('makemaker.bst', 'configure', "perl Makefile.PL PREFIX=/custom/install/root/opt"),
    
    54 54
         ('modulebuild.bst', 'configure', "perl Build.PL --prefix \"/custom/install/root/opt\""),
    



  • [Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]