diff options
| author | Patrick Griffis <tingping@tingping.se> | 2017-02-08 14:29:19 -0500 |
|---|---|---|
| committer | Patrick Griffis <tingping@tingping.se> | 2017-02-08 14:29:19 -0500 |
| commit | 73b9c01abca5afe403944b6f739242726ff80d97 (patch) | |
| tree | 6b71f06a3e873191e2fdd6054636311af0de44f4 | |
| parent | 1ff63efedb2c7ce951eaf240a84876d5189d4504 (diff) | |
| download | buildstream-73b9c01abca5afe403944b6f739242726ff80d97.tar.gz | |
Add Meson plugin
| -rw-r--r-- | buildstream/plugins/elements/meson.py | 36 | ||||
| -rw-r--r-- | buildstream/plugins/elements/meson.yaml | 48 |
2 files changed, 84 insertions, 0 deletions
diff --git a/buildstream/plugins/elements/meson.py b/buildstream/plugins/elements/meson.py new file mode 100644 index 000000000..4b9c21fb9 --- /dev/null +++ b/buildstream/plugins/elements/meson.py @@ -0,0 +1,36 @@ +# Copyright (C) 2017 Patrick Griffis +# +# 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/>. + +"""Meson build element + +A :mod:`BuildElement <buildstream.buildelement>` implementation for using +Meson build scripts + +The meson default configuration: + .. literalinclude:: ../../../buildstream/plugins/elements/meson.yaml + :language: yaml +""" + +from buildstream import BuildElement + + +# Element implementation for the 'meson' kind. +class MesonElement(BuildElement): + pass + + +# Plugin entry point +def setup(): + return MesonElement diff --git a/buildstream/plugins/elements/meson.yaml b/buildstream/plugins/elements/meson.yaml new file mode 100644 index 000000000..d6543c833 --- /dev/null +++ b/buildstream/plugins/elements/meson.yaml @@ -0,0 +1,48 @@ +# Meson default configuration + +variables: + + build-dir: _builddir + meson: | + meson %{build-dir} --prefix=%{prefix} \ + --bindir=%{bindir} \ + --sbindir=%{sbindir} \ + --sysconfdir=%{sysconfdir} \ + --datadir=%{datadir} \ + --includedir=%{includedir} \ + --libdir=%{libdir} \ + --libexecdir=%{libexecdir} \ + --localstatedir=%{localstatedir} \ + --sharedstatedir=%{sharedstatedir} \ + --mandir=%{mandir} \ + --infodir=%{infodir} + ninja: ninja -j %{max-jobs} -C %{build-dir} + ninja-install: env DESTDIR="%{install-root}" ninja -C %{build-dir} install + +config: + + # Commands for configuring the software + # + configure-commands: + - | + %{meson} + + # Commands for building the software + # + build-commands: + - | + %{ninja} + + # Commands for installing the software into a + # destination folder + # + install-commands: + - | + %{ninja-install} + + # Commands for stripping debugging information out of + # installed binaries + # + strip-commands: + - | + %{strip-binaries} |
