This is an automated email from the ASF dual-hosted git repository. tvb pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/buildstream-plugins.git
commit 2e26118765815f3592e8e5a2818e420dd5c10fc3 Author: Tristan van Berkom <[email protected]> AuthorDate: Fri Mar 18 17:16:45 2022 +0900 Initially adding make element From bst-plugins-experimental --- src/buildstream_plugins/elements/make.py | 52 ++++++++++++++++++++++++++++++ src/buildstream_plugins/elements/make.yaml | 48 +++++++++++++++++++++++++++ 2 files changed, 100 insertions(+) diff --git a/src/buildstream_plugins/elements/make.py b/src/buildstream_plugins/elements/make.py new file mode 100644 index 0000000..4a94132 --- /dev/null +++ b/src/buildstream_plugins/elements/make.py @@ -0,0 +1,52 @@ +# +# Copyright Bloomberg Finance LP +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# Authors: +# Ed Baunton <[email protected]> + +""" +make - Make build element +========================= +This is a `BuildElement +<https://docs.buildstream.build/master/buildstream.scriptelement.html#module-buildstream.scriptelement>`_ +implementation for using GNU make based build. + +.. note:: + + The ``make`` element is available since `format version 9 + <https://docs.buildstream.build/master/format_project.html#project-format-version>`_ + +Here is the default configuration for the ``make`` element in full: + + .. literalinclude:: ../../../src/buildstream_plugins/elements/make.yaml + :language: yaml + +See `built-in functionality documentation +<https://docs.buildstream.build/master/buildstream.buildelement.html#core-buildelement-builtins>`_ for +details on common configuration options for build elements. +""" + +from buildstream import BuildElement + + +# Element implementation for the 'make' kind. +class MakeElement(BuildElement): + + BST_MIN_VERSION = "2.0" + + +# Plugin entry point +def setup(): + return MakeElement diff --git a/src/buildstream_plugins/elements/make.yaml b/src/buildstream_plugins/elements/make.yaml new file mode 100644 index 0000000..58e2da4 --- /dev/null +++ b/src/buildstream_plugins/elements/make.yaml @@ -0,0 +1,48 @@ +# make default configurations + +variables: + make-args: >- + PREFIX="%{prefix}" + make-install-args: >- + %{make-args} + DESTDIR="%{install-root}" + install + make: make %{make-args} + make-install: make -j1 %{make-install-args} + + # Set this if the sources cannot handle parallelization. + # + # notparallel: True + +config: + + # 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: + MAKEFLAGS: -j%{max-jobs} + V: 1 + +# And dont consider MAKEFLAGS or V as something which may +# affect build output. +environment-nocache: +- MAKEFLAGS +- V
