summaryrefslogtreecommitdiffstats
path: root/package/meson
diff options
context:
space:
mode:
authorEric Le Bihan <eric.le.bihan.dev@free.fr>2017-10-29 14:10:51 +0100
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>2017-12-28 23:09:37 +0100
commit5cd8afbdfc2d55545aa8d1c4026688c2edaac642 (patch)
tree6ddfcacabff2d91ad5b52d4d7f114a9a65ac8cb1 /package/meson
parent2493638ff74911d187396ed9ce6137d8357c90cb (diff)
downloadbuildroot-5cd8afbdfc2d55545aa8d1c4026688c2edaac642.tar.gz
buildroot-5cd8afbdfc2d55545aa8d1c4026688c2edaac642.zip
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>
Diffstat (limited to 'package/meson')
-rw-r--r--package/meson/cross-compilation.conf.in23
-rw-r--r--package/meson/meson.hash3
-rw-r--r--package/meson/meson.mk35
3 files changed, 61 insertions, 0 deletions
diff --git a/package/meson/cross-compilation.conf.in b/package/meson/cross-compilation.conf.in
new file mode 100644
index 0000000000..0eec74087b
--- /dev/null
+++ b/package/meson/cross-compilation.conf.in
@@ -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@'
diff --git a/package/meson/meson.hash b/package/meson/meson.hash
new file mode 100644
index 0000000000..412c10eb2f
--- /dev/null
+++ b/package/meson/meson.hash
@@ -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
diff --git a/package/meson/meson.mk b/package/meson/meson.mk
new file mode 100644
index 0000000000..55ce84da07
--- /dev/null
+++ b/package/meson/meson.mk
@@ -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))
OpenPOWER on IntegriCloud