summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Coldrick <thomas.coldrick@codethink.co.uk>2019-08-07 09:05:22 +0100
committerThomas Coldrick <thomas.coldrick@codethink.co.uk>2019-08-08 08:23:17 +0100
commit9dd32a5683c46245dcccfad1ee22ca53f6c012b6 (patch)
tree7aa782d8572a18266d76c7b2d8f70c4cb6775b6e
parent2d670f1963f83ffbf146e90500b517e77b24db62 (diff)
downloadbuildstream-coldtom/move-cmake.tar.gz
Move cmake plugin to bst-plugins-experimentalcoldtom/move-cmake
It was agreed on the mailing list to move all plugins to a single repository, before moving them into domain-specific repositories. As a result it seems reasonable to move everything to the bst-plugins-experimental repo as this stepping stone, rather than creating a whole new repo. This commit starts the process of moving things over by moving only the cmake plugin to bst-plugins-experimental, and altering the tests to reflect the new location.
-rw-r--r--doc/source/core_plugins.rst1
-rw-r--r--src/buildstream/plugins/elements/cmake.py74
-rw-r--r--src/buildstream/plugins/elements/cmake.yaml72
-rw-r--r--tests/format/variables/defaults/project.conf6
-rw-r--r--tests/format/variables/overrides/project.conf5
-rw-r--r--tests/integration/project/project.conf5
-rw-r--r--tox.ini1
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
diff --git a/tox.ini b/tox.ini
index d29d429ed..af520677c 100644
--- a/tox.ini
+++ b/tox.ini
@@ -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