[OE-core] [PATCH 1/4] gettext.bbclass: Use _append instead of =+

Khem Raj raj.khem at gmail.com
Sat Apr 30 22:06:50 UTC 2011


Ensure gettext and gettext-native are removed from DEPENDS when
not using NLS

Use append instead of += to get gettext dependecies processed
correctly in all cases

Dont remove gettext-native for native recipes as ENABLE_NLS is
only for target and not for native recipes

Replace using 1 for a boolean type with True

Honor INHIBIT_DEFAULT_DEPS

Remove the added dependencies for gettext if INHIBIT_DEFAULT_DEPS is non
null

operate on virtclass overrides individually

virtclass classes are parsed at the end hence
just doing DEPENDS munging is not enough since
it will be overridden

When inheriting cross-canadian we should not remove
gettext from default deps

Signed-off-by: Khem Raj <raj.khem at gmail.com>
---
 meta/classes/gettext.bbclass |   30 ++++++++++++++++++++++--------
 1 files changed, 22 insertions(+), 8 deletions(-)

diff --git a/meta/classes/gettext.bbclass b/meta/classes/gettext.bbclass
index a40e74f..492eb68 100644
--- a/meta/classes/gettext.bbclass
+++ b/meta/classes/gettext.bbclass
@@ -1,17 +1,31 @@
 def gettext_after_parse(d):
     # Remove the NLS bits if USE_NLS is no.
-    if bb.data.getVar('USE_NLS', d, 1) == 'no':
+    if bb.data.getVar('USE_NLS', d, True) == 'no':
         cfg = oe_filter_out('^--(dis|en)able-nls$', bb.data.getVar('EXTRA_OECONF', d, 1) or "", d)
         cfg += " --disable-nls"
-        depends = bb.data.getVar('DEPENDS', d, 1) or ""
-        bb.data.setVar('DEPENDS', oe_filter_out('^(virtual/libiconv|virtual/libintl)$', depends, d), d)
+        depends = bb.data.getVar('DEPENDS', d, True) or ""
+        depends = oe_filter_out('^(virtual/libiconv|virtual/libintl|virtual/gettext|gettext)$', depends, d)
+        if not oe.utils.inherits(d, 'native', 'nativesdk', 'cross', 'crosssdk'):
+            depends = oe_filter_out('^(gettext-native)$', depends, d)
+        bb.data.setVar('DEPENDS', depends, d)
         bb.data.setVar('EXTRA_OECONF', cfg, d)
-
+    # check if INHIBIT_DEFAULT_DEPS is 1 then we forcibly remove dependencies
+    # added by this class through DEPENDS_GETTEXT
+    if bb.data.getVar('INHIBIT_DEFAULT_DEPS', d, True) and not oe.utils.inherits(d, 'cross-canadian'):
+        depends_native = bb.data.getVar('DEPENDS_virtclass-native', d, True) or ""
+        depends_nativesdk = bb.data.getVar('DEPENDS_virtclass-nativesdk', d, True) or ""
+        depends = bb.data.getVar('DEPENDS', d, True) or ""
+        gettext_deps = bb.data.getVar('DEPENDS_GETTEXT', d, True).replace(' ','|')
+        gettext_deps = '^(' + gettext_deps + ')$'
+        depends_native = oe_filter_out(gettext_deps, depends_native, d)
+        depends_nativesdk = oe_filter_out(gettext_deps, depends_nativesdk, d)
+        depends = oe_filter_out(gettext_deps, depends, d)
+        bb.data.setVar('DEPENDS_virtclass-native', depends, d)
+        bb.data.setVar('DEPENDS_virtclass-nativesdk', depends, d)
+        bb.data.setVar('DEPENDS', depends, d)
 python () {
     gettext_after_parse(d)
 }
-
-DEPENDS_GETTEXT = "gettext gettext-native"
-
-DEPENDS =+ "${DEPENDS_GETTEXT}"
 EXTRA_OECONF += "--enable-nls"
+DEPENDS_GETTEXT = "virtual/gettext gettext-native"
+DEPENDS =+ "${DEPENDS_GETTEXT}"
-- 
1.7.4.1





More information about the Openembedded-core mailing list