Skip to content

Instantly share code, notes, and snippets.

@robbat2
Created October 4, 2017 19:09
Show Gist options
  • Select an option

  • Save robbat2/6e926c9c432448a9e2b4fdd6416600af to your computer and use it in GitHub Desktop.

Select an option

Save robbat2/6e926c9c432448a9e2b4fdd6416600af to your computer and use it in GitHub Desktop.
meson-optional.patch
commit 7303912472360f48d80800a4adfda64a72b9935e
Author: Robin H. Johnson <robbat2@gentoo.org>
Date: Wed Oct 4 12:03:18 2017 -0700
eclass: MESON_AUTO_DEPEND support
Make it possible to use the meson eclass without it automatically adding
meson to DEPEND. Intended for cases where meson usage is conditional
(e.g. hidden behind a USE flag).
This is a direct copy of the AUTOTOOLS_AUTO_DEPEND functionality &
implementation from autotools.eclass, including the guard for multiple
inheritance.
Bug: https://bugs.gentoo.org/626054
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
diff --git a/eclass/meson.eclass b/eclass/meson.eclass
index 5b63f0ef3a33..0f5a752d96c8 100644
--- a/eclass/meson.eclass
+++ b/eclass/meson.eclass
@@ -38,6 +38,17 @@ case ${EAPI:-0} in
*) die "EAPI=${EAPI} is not supported" ;;
esac
+if [[ ${__MESON_AUTO_DEPEND+set} == "set" ]] ; then
+ # See if we were included already, but someone changed the value
+ # of MESON_AUTO_DEPEND on us. We could reload the entire
+ # eclass at that point, but that adds overhead, and it's trivial
+ # to re-order inherit in eclasses/ebuilds instead. #409611
+ if [[ ${__MESON_AUTO_DEPEND} != ${MESON_AUTO_DEPEND} ]] ; then
+ die "MESON_AUTO_DEPEND changed value between inherits; please inherit meson.eclass first! ${__MESON_AUTO_DEPEND} -> ${MESON_AUTO_DEPEND}"
+ fi
+fi
+
+
if [[ -z ${_MESON_ECLASS} ]]; then
inherit ninja-utils python-utils-r1 toolchain-funcs
@@ -49,9 +60,20 @@ EXPORT_FUNCTIONS src_configure src_compile src_test src_install
if [[ -z ${_MESON_ECLASS} ]]; then
_MESON_ECLASS=1
-DEPEND=">=dev-util/meson-0.40.0
+MESON_DEPEND=">=dev-util/meson-0.40.0
>=dev-util/ninja-1.7.2"
+# @ECLASS-VARIABLE: MESON_AUTO_DEPEND
+# @DESCRIPTION:
+# Set to 'no' to disable automatically adding to DEPEND. This lets
+# ebuilds former conditional depends by using ${MESON_DEPEND} in
+# their own DEPEND string.
+: ${MESON_AUTO_DEPEND:=yes}
+if [[ ${MESON_AUTO_DEPEND} != "no" ]] ; then
+ DEPEND=${MESON_DEPEND}
+fi
+__MESON_AUTO_DEPEND=${MESON_AUTO_DEPEND} # See top of eclass
+
# @ECLASS-VARIABLE: BUILD_DIR
# @DEFAULT_UNSET
# @DESCRIPTION:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment