From 6e10f21cf3f7e91d74d96cb1683ea28c5e8e0b0f Mon Sep 17 00:00:00 2001 From: Paul Menzel Date: Fri, 5 Jan 2018 15:04:44 +0100 Subject: [PATCH] buildtypes: Add script for Meson [1] [Description][2]: > Meson is an open source build system meant to be both extremely fast, > and, even more importantly, as user friendly as possible. > > The main design point of Meson is that every moment a developer spends > writing or debugging build definitions is a second wasted. So is every > second spent waiting for the build system to actually start compiling > code. [1]: http://mesonbuild.com/Quick-guide.html [2]: http://mesonbuild.com/ --- Makefile | 1 + buildtypes/meson.sh.in | 59 ++++++++++++++++++++++++++++++++++++++++++ src/beesh.sh.in | 1 + 3 files changed, 61 insertions(+) create mode 100644 buildtypes/meson.sh.in diff --git a/Makefile b/Makefile index d760e9f..fd8ec72 100644 --- a/Makefile +++ b/Makefile @@ -82,6 +82,7 @@ BUILDTYPES+=cmake BUILDTYPES+=configure BUILDTYPES+=jb BUILDTYPES+=make +BUILDTYPES+=meson BUILDTYPES+=perl-module BUILDTYPES+=perl-module-makemaker BUILDTYPES+=python-module diff --git a/buildtypes/meson.sh.in b/buildtypes/meson.sh.in new file mode 100644 index 0000000..5ee5984 --- /dev/null +++ b/buildtypes/meson.sh.in @@ -0,0 +1,59 @@ +# +# bee magic for meson +# +# Copyright (C) 2017 +# Paul Menzel +# and other bee developers +# +# This file is part of bee. +# +# bee is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program 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 General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +: ${BEE_BUILDTYPE_MESON_MESONBUILD:=${S}/meson.build} + +if [ ! -r "${BEE_BUILDTYPE_MESON_MESONBUILD}" ] ; then + return +fi + +if ! type -p meson >/dev/null 2>&1 ; then + return +fi + +BEE_BUILDTYPE_DETECTED=meson + +BEE_BUILDTYPE_MESON_SOURCEDIR=${BEE_BUILDTYPE_MESON_MESONBUILD%/*} + +#### bee_configure() ########################################################## + +bee_configure() { + start_cmd meson \ + --prefix ${PREFIX} \ + --buildtype=plain \ + "${@}" \ + ${S} +} + +#### bee_build() ############################################################## + +bee_build() { + start_cmd ninja -v -C ${B} ${BEE_MAKEFLAGS} "${@}" +} + +#### bee_install() ############################################################ + +bee_install() { + start_cmd DESTDIR=${D} ninja -C ${B} install "${@}" +} + diff --git a/src/beesh.sh.in b/src/beesh.sh.in index 6d269c8..df30249 100644 --- a/src/beesh.sh.in +++ b/src/beesh.sh.in @@ -1054,6 +1054,7 @@ bee_run patch "${bee_PATCHFILES[@]}" bee_buildmagic=( $("${BEE_BINDIR}/beeuniq" "${BEE_BUILDTYPE[@]}" \ cmake \ + meson \ autotools \ autogen \ perl-module \