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:
parent
2493638ff7
commit
5cd8afbdfc
@ -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/
|
||||
|
23
package/meson/cross-compilation.conf.in
Normal file
23
package/meson/cross-compilation.conf.in
Normal 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
3
package/meson/meson.hash
Normal 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
35
package/meson/meson.mk
Normal 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))
|
Loading…
Reference in New Issue
Block a user