diff --git a/DEVELOPERS b/DEVELOPERS index 9f4f282203..368d6a7a5a 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -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/ 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))