diff options
author | bst-marge-bot <marge-bot@buildstream.build> | 2019-08-08 08:58:06 +0000 |
---|---|---|
committer | bst-marge-bot <marge-bot@buildstream.build> | 2019-08-08 08:58:06 +0000 |
commit | 5a42a27bbc376ef7eec16276c91c5445041fa33c (patch) | |
tree | 7aa782d8572a18266d76c7b2d8f70c4cb6775b6e | |
parent | 2d670f1963f83ffbf146e90500b517e77b24db62 (diff) | |
parent | 9dd32a5683c46245dcccfad1ee22ca53f6c012b6 (diff) | |
download | buildstream-5a42a27bbc376ef7eec16276c91c5445041fa33c.tar.gz |
Merge branch 'coldtom/move-cmake' into 'master'1089-reporting-of-unexpected-deaths-of-worker-processes-could-be-better
Move cmake plugin to bst-plugins-experimental
See merge request BuildStream/buildstream!1520
-rw-r--r-- | doc/source/core_plugins.rst | 1 | ||||
-rw-r--r-- | src/buildstream/plugins/elements/cmake.py | 74 | ||||
-rw-r--r-- | src/buildstream/plugins/elements/cmake.yaml | 72 | ||||
-rw-r--r-- | tests/format/variables/defaults/project.conf | 6 | ||||
-rw-r--r-- | tests/format/variables/overrides/project.conf | 5 | ||||
-rw-r--r-- | tests/integration/project/project.conf | 5 | ||||
-rw-r--r-- | tox.ini | 1 |
7 files changed, 17 insertions, 147 deletions
diff --git a/doc/source/core_plugins.rst b/doc/source/core_plugins.rst index b2defe489..461a03a66 100644 --- a/doc/source/core_plugins.rst +++ b/doc/source/core_plugins.rst @@ -33,7 +33,6 @@ Build elements elements/manual elements/make elements/autotools - elements/cmake elements/qmake elements/distutils elements/makemaker diff --git a/src/buildstream/plugins/elements/cmake.py b/src/buildstream/plugins/elements/cmake.py deleted file mode 100644 index 74da04899..000000000 --- a/src/buildstream/plugins/elements/cmake.py +++ /dev/null @@ -1,74 +0,0 @@ -# -# Copyright (C) 2016, 2018 Codethink Limited -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library. If not, see <http://www.gnu.org/licenses/>. -# -# Authors: -# Tristan Van Berkom <tristan.vanberkom@codethink.co.uk> - -""" -cmake - CMake build element -=========================== -This is a :mod:`BuildElement <buildstream.buildelement>` implementation for -using the `CMake <https://cmake.org/>`_ build system. - -You will often want to pass additional arguments to the ``cmake`` program for -specific configuration options. This should be done on a per-element basis by -setting the ``cmake-local`` variable. Here is an example: - -.. code:: yaml - - variables: - cmake-local: | - -DCMAKE_BUILD_TYPE=Debug - -If you want to pass extra options to ``cmake`` for every element in your -project, set the ``cmake-global`` variable in your project.conf file. Here is -an example of that: - -.. code:: yaml - - elements: - cmake: - variables: - cmake-global: | - -DCMAKE_BUILD_TYPE=Release - -Here is the default configuration for the ``cmake`` element in full: - - .. literalinclude:: ../../../src/buildstream/plugins/elements/cmake.yaml - :language: yaml - -See :ref:`built-in functionality documentation <core_buildelement_builtins>` for -details on common configuration options for build elements. -""" - -from buildstream import BuildElement, SandboxFlags - - -# Element implementation for the 'cmake' kind. -class CMakeElement(BuildElement): - # Supports virtual directories (required for remote execution) - BST_VIRTUAL_DIRECTORY = True - - # Enable command batching across prepare() and assemble() - def configure_sandbox(self, sandbox): - super().configure_sandbox(sandbox) - self.batch_prepare_assemble(SandboxFlags.ROOT_READ_ONLY, - collect=self.get_variable('install-root')) - - -# Plugin entry point -def setup(): - return CMakeElement diff --git a/src/buildstream/plugins/elements/cmake.yaml b/src/buildstream/plugins/elements/cmake.yaml deleted file mode 100644 index ba20d7ce6..000000000 --- a/src/buildstream/plugins/elements/cmake.yaml +++ /dev/null @@ -1,72 +0,0 @@ -# CMake default configuration - -variables: - - build-dir: _builddir - - # Project-wide extra arguments to be passed to `cmake` - cmake-global: '' - - # Element-specific extra arguments to be passed to `cmake`. - cmake-local: '' - - # For backwards compatibility only, do not use. - cmake-extra: '' - - # The cmake generator to use - generator: Unix Makefiles - - cmake-args: | - - -DCMAKE_INSTALL_PREFIX:PATH="%{prefix}" \ - -DCMAKE_INSTALL_LIBDIR:PATH="%{lib}" %{cmake-extra} %{cmake-global} %{cmake-local} - - cmake: | - - cmake -B%{build-dir} -H"%{conf-root}" -G"%{generator}" %{cmake-args} - - make: cmake --build %{build-dir} -- ${JOBS} - make-install: env DESTDIR="%{install-root}" cmake --build %{build-dir} --target install - - # Set this if the sources cannot handle parallelization. - # - # notparallel: True - -config: - - # Commands for configuring the software - # - configure-commands: - - | - %{cmake} - - # Commands for building the software - # - build-commands: - - | - %{make} - - # Commands for installing the software into a - # destination folder - # - install-commands: - - | - %{make-install} - - # Commands for stripping debugging information out of - # installed binaries - # - strip-commands: - - | - %{strip-binaries} - -# Use max-jobs CPUs for building and enable verbosity -environment: - JOBS: -j%{max-jobs} - V: 1 - -# And dont consider JOBS or V as something which may -# affect build output. -environment-nocache: -- JOBS -- V diff --git a/tests/format/variables/defaults/project.conf b/tests/format/variables/defaults/project.conf index 2027cc27a..20295400f 100644 --- a/tests/format/variables/defaults/project.conf +++ b/tests/format/variables/defaults/project.conf @@ -1,3 +1,9 @@ # Basic project configuration that doesnt override anything # name: pony + +plugins: +- origin: pip + package-name: bst-plugins-experimental + elements: + cmake: 0 diff --git a/tests/format/variables/overrides/project.conf b/tests/format/variables/overrides/project.conf index 2027cc27a..66974e638 100644 --- a/tests/format/variables/overrides/project.conf +++ b/tests/format/variables/overrides/project.conf @@ -1,3 +1,8 @@ # Basic project configuration that doesnt override anything # name: pony +plugins: +- origin: pip + package-name: bst-plugins-experimental + elements: + cmake: 0 diff --git a/tests/integration/project/project.conf b/tests/integration/project/project.conf index ddfe47b6d..797cb9556 100644 --- a/tests/integration/project/project.conf +++ b/tests/integration/project/project.conf @@ -21,3 +21,8 @@ split-rules: /tests - | /tests/* +plugins: +- origin: pip + package-name: bst-plugins-experimental + elements: + cmake: 0 @@ -30,6 +30,7 @@ deps = py{35,36,37}: -rrequirements/requirements.txt py{35,36,37}: -rrequirements/dev-requirements.txt py{35,36,37}: -rrequirements/plugin-requirements.txt + git+https://gitlab.com/BuildStream/bst-plugins-experimental.git@aa022a67d9a11876973fe47102cb92cff085703a # Only require coverage and pytest-cov when using it !nocover: -rrequirements/cov-requirements.txt |