meson: new package

This new package provides the host variant of the Meson Build System, an
open source build system meant to be both extremely fast, and as user
friendly as possible.

More precisely, Meson creates configuration files for the Ninja build
system.

Besides building Meson, it generates a configuration file
("$(HOST_DIR)/etc/meson/cross-compilation.conf") to be used when
cross-compiling a Meson-based project.

Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks>
Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
Tested-by: Yegor Yefremov <yegorslists@googlemail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
Eric Le Bihan 2017-10-29 14:10:51 +01:00 committed by Thomas Petazzoni
parent 2493638ff7
commit 5cd8afbdfc
4 changed files with 62 additions and 0 deletions

View file

@ -542,6 +542,7 @@ F: package/eudev/
F: package/execline/
F: package/hicolor-icon-theme/
F: package/jemalloc/
F: package/meson/
F: package/ninja/
F: package/s6/
F: package/s6-dns/

View file

@ -0,0 +1,23 @@
# Note: Buildroot's and Meson's terminologies differ about the meaning
# of 'build', 'host' and 'target':
# - Buildroot's 'host' is Meson's 'build'
# - Buildroot's 'target' is Meson's 'host'
[binaries]
c = '@TARGET_CROSS@gcc'
cpp = '@TARGET_CROSS@g++'
ar = '@TARGET_CROSS@ar'
strip = '@TARGET_CROSS@strip'
pkgconfig = '@HOST_DIR@/usr/bin/pkg-config'
[properties]
c_args = [@TARGET_CFLAGS@]
c_link_args = [@TARGET_LDFLAGS@]
cpp_args = [@TARGET_CXXFLAGS@]
cpp_link_args = [@TARGET_LDFLAGS@]
[host_machine]
system = 'linux'
cpu_family ='@TARGET_ARCH@'
cpu = '@TARGET_CPU@'
endian = '@TARGET_ENDIAN@'

3
package/meson/meson.hash Normal file
View file

@ -0,0 +1,3 @@
# Locally calculated after checking pgp signature
# https://github.com/mesonbuild/meson/releases/download/0.43.0/meson-0.43.0.tar.gz.asc
sha256 c513eca90e0d70bf14cd1eaafea2fa91cf40a73326a7ff61f08a005048057340 meson-0.43.0.tar.gz

35
package/meson/meson.mk Normal file
View file

@ -0,0 +1,35 @@
################################################################################
#
# meson
#
################################################################################
MESON_VERSION = 0.43.0
MESON_SITE = https://github.com/mesonbuild/meson/releases/download/$(MESON_VERSION)
MESON_LICENSE = Apache-2.0
MESON_LICENSE_FILES = COPYING
MESON_SETUP_TYPE = setuptools
HOST_MESON_DEPENDENCIES = host-ninja
HOST_MESON_NEEDS_HOST_PYTHON = python3
HOST_MESON_TARGET_ENDIAN = $(call LOWERCASE,$(BR2_ENDIAN))
HOST_MESON_TARGET_CPU = $(call qstrip,$(BR2_GCC_TARGET_CPU))
define HOST_MESON_INSTALL_CROSS_CONF
mkdir -p $(HOST_DIR)/etc/meson
sed -e "s%@TARGET_CROSS@%$(TARGET_CROSS)%g" \
-e "s%@TARGET_ARCH@%$(ARCH)%g" \
-e "s%@TARGET_CPU@%$(HOST_MESON_TARGET_CPU)%g" \
-e "s%@TARGET_ENDIAN@%$(HOST_MESON_TARGET_ENDIAN)%g" \
-e "s%@TARGET_CFLAGS@%`printf '"%s", ' $(TARGET_CFLAGS)`%g" \
-e "s%@TARGET_LDFLAGS@%`printf '"%s", ' $(TARGET_LDFLAGS)`%g" \
-e "s%@TARGET_CXXFLAGS@%`printf '"%s", ' $(TARGET_CXXFLAGS)`%g" \
-e "s%@HOST_DIR@%$(HOST_DIR)%g" \
$(HOST_MESON_PKGDIR)/cross-compilation.conf.in \
> $(HOST_DIR)/etc/meson/cross-compilation.conf
endef
HOST_MESON_POST_INSTALL_HOOKS += HOST_MESON_INSTALL_CROSS_CONF
$(eval $(host-python-package))