summaryrefslogtreecommitdiff
path: root/classes/amend.bbclass
diff options
context:
space:
mode:
authorChris Larson <clarson@mvista.com>2010-01-22 10:00:20 -0700
committerChris Larson <clarson@mvista.com>2010-01-22 10:00:20 -0700
commit09ff53d9270b09818d6478ddac768af807a55c3c (patch)
tree70359df0b2d37ebc99549cd8d306606c7549d229 /classes/amend.bbclass
parentccf4b50951463b7cb3e02f85ea1d366666721743 (diff)
Lets rename conf/amend-recipes.inc to amend.bbclass, for consistency
Signed-off-by: Chris Larson <clarson@mvista.com>
Diffstat (limited to 'classes/amend.bbclass')
-rw-r--r--classes/amend.bbclass29
1 files changed, 29 insertions, 0 deletions
diff --git a/classes/amend.bbclass b/classes/amend.bbclass
new file mode 100644
index 0000000000..bcb93d4e75
--- /dev/null
+++ b/classes/amend.bbclass
@@ -0,0 +1,29 @@
+# Allows tweaks to be amended to a recipe via a .inc in its FILESPATH
+#
+# Simply drop amend.inc into an appropriate place in a recipe's FILESPATH and
+# it'll be parsed in after the recipe itself is.
+#
+# Copyright (c) 2009 MontaVista Software, Inc. All rights reserved.
+#
+# Released under the MIT license (see LICENSE.MIT for the terms)
+
+python () {
+ import bb, os
+
+ filespath = d.getVar("FILESPATH", 1).split(":")
+ amendfiles = [os.path.join(fpath, "amend.inc")
+ for fpath in filespath]
+
+ # Adding all amend.incs that can exist to the __depends, to ensure that
+ # creating one of them invalidates the bitbake cache. Note that it
+ # requires a fix in bitbake. Without the bitbake fix, the cache will be
+ # completely invalidated on every bitbake execution.
+ depends = d.getVar("__depends", 0) or []
+ d.setVar("__depends", depends + [(file, 0) for file in amendfiles if not os.path.exists(file)])
+
+ existing = (file for file in amendfiles if os.path.exists(file))
+ try:
+ bb.parse.handle(existing.next(), d, 1)
+ except StopIteration:
+ pass
+}