| ################################################################################ |
| # |
| # meson |
| # |
| ################################################################################ |
| |
| MESON_VERSION = 0.51.1 |
| 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 = $(GCC_TARGET_CPU) |
| |
| # https://mesonbuild.com/Reference-tables.html#cpu-families |
| ifeq ($(BR2_arcle)$(BR2_arceb),y) |
| HOST_MESON_TARGET_CPU_FAMILY = arc |
| else ifeq ($(BR2_arm)$(BR2_armeb),y) |
| HOST_MESON_TARGET_CPU_FAMILY = arm |
| else ifeq ($(BR2_aarch64)$(BR2_aarch64_be),y) |
| HOST_MESON_TARGET_CPU_FAMILY = aarch64 |
| else ifeq ($(BR2_i386),y) |
| HOST_MESON_TARGET_CPU_FAMILY = x86 |
| else ifeq ($(BR2_mips)$(BR2_mipsel),y) |
| HOST_MESON_TARGET_CPU_FAMILY = mips |
| else ifeq ($(BR2_mips64)$(BR2_mips64el),y) |
| HOST_MESON_TARGET_CPU_FAMILY = mips64 |
| else ifeq ($(BR2_powerpc),y) |
| HOST_MESON_TARGET_CPU_FAMILY = ppc |
| else ifeq ($(BR2_powerpc64)$(BR2_powerpc64le),y) |
| HOST_MESON_TARGET_CPU_FAMILY = ppc64 |
| else ifeq ($(BR2_riscv),y) |
| HOST_MESON_TARGET_CPU_FAMILY = riscv64 |
| else ifeq ($(BR2_sparc),y) |
| HOST_MESON_TARGET_CPU_FAMILY = sparc |
| else ifeq ($(BR2_sparc64),y) |
| HOST_MESON_TARGET_CPU_FAMILY = sparc64 |
| else ifeq ($(BR2_x86_64),y) |
| HOST_MESON_TARGET_CPU_FAMILY = x86_64 |
| else |
| HOST_MESON_TARGET_CPU_FAMILY = $(ARCH) |
| endif |
| |
| HOST_MESON_SED_CFLAGS = $(if $(strip $(TARGET_CFLAGS)),`printf '"%s"$(comma) ' $(TARGET_CFLAGS)`) |
| HOST_MESON_SED_LDFLAGS = $(if $(strip $(TARGET_LDFLAGS)),`printf '"%s"$(comma) ' $(TARGET_LDFLAGS)`) |
| HOST_MESON_SED_CXXFLAGS = $(if $(strip $(TARGET_CXXFLAGS)),`printf '"%s"$(comma) ' $(TARGET_CXXFLAGS)`) |
| |
| # Generate a Meson cross-compilation.conf suitable for use with the |
| # SDK; also install the file as a template for users to add their |
| # own flags if they need to. |
| define HOST_MESON_INSTALL_CROSS_CONF |
| mkdir -p $(HOST_DIR)/etc/meson |
| sed -e "s%@TARGET_CROSS@%$(TARGET_CROSS)%g" \ |
| -e "s%@TARGET_ARCH@%$(HOST_MESON_TARGET_CPU_FAMILY)%g" \ |
| -e "s%@TARGET_CPU@%$(HOST_MESON_TARGET_CPU)%g" \ |
| -e "s%@TARGET_ENDIAN@%$(HOST_MESON_TARGET_ENDIAN)%g" \ |
| -e "s%@TARGET_CFLAGS@%$(HOST_MESON_SED_CFLAGS)@PKG_TARGET_CFLAGS@%g" \ |
| -e "s%@TARGET_LDFLAGS@%$(HOST_MESON_SED_LDFLAGS)@PKG_TARGET_CFLAGS@%g" \ |
| -e "s%@TARGET_CXXFLAGS@%$(HOST_MESON_SED_CXXFLAGS)@PKG_TARGET_CFLAGS@%g" \ |
| -e "s%@HOST_DIR@%$(HOST_DIR)%g" \ |
| $(HOST_MESON_PKGDIR)/cross-compilation.conf.in \ |
| > $(HOST_DIR)/etc/meson/cross-compilation.conf.in |
| sed -e "s%@PKG_TARGET_CFLAGS@%%g" \ |
| -e "s%@PKG_TARGET_LDFLAGS@%%g" \ |
| -e "s%@PKG_TARGET_CXXFLAGS@%%g" \ |
| $(HOST_DIR)/etc/meson/cross-compilation.conf.in \ |
| > $(HOST_DIR)/etc/meson/cross-compilation.conf |
| endef |
| |
| TARGET_FINALIZE_HOOKS += HOST_MESON_INSTALL_CROSS_CONF |
| |
| $(eval $(host-python-package)) |