Advertisement
Guest User

Untitled

a guest
Jul 20th, 2016
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 3.75 KB | None | 0 0
  1. diff --git a/bitbake/lib/bb/build.py b/bitbake/lib/bb/build.py
  2. index a4deb00..5e508fe 100644
  3. --- a/bitbake/lib/bb/build.py
  4. +++ b/bitbake/lib/bb/build.py
  5. @@ -771,21 +771,22 @@ def add_tasks(tasklist, d):
  6.              task_deps['tasks'].append(task)
  7.  
  8.          flags = d.getVarFlags(task)
  9. -        def getTask(name):
  10. +        def getTask(name,isFlag=False):
  11.              if not name in task_deps:
  12.                  task_deps[name] = {}
  13.              if name in flags:
  14.                  deptask = d.expand(flags[name])
  15. -                task_deps[name][task] = deptask
  16. +                if not isFlag or deptask != "0":
  17. +                    task_deps[name][task] = deptask
  18.          getTask('depends')
  19.          getTask('rdepends')
  20.          getTask('deptask')
  21.          getTask('rdeptask')
  22.          getTask('recrdeptask')
  23.          getTask('recideptask')
  24. -        getTask('nostamp')
  25. -        getTask('fakeroot')
  26. -        getTask('noexec')
  27. +        getTask('nostamp',True)
  28. +        getTask('fakeroot',True)
  29. +        getTask('noexec',True)
  30.          getTask('umask')
  31.          task_deps['parents'][task] = []
  32.          if 'deps' in flags:
  33. diff --git a/bitbake/lib/bb/parse/ast.py b/bitbake/lib/bb/parse/ast.py
  34. index 8b9baa7..bf06f62 100644
  35. --- a/bitbake/lib/bb/parse/ast.py
  36. +++ b/bitbake/lib/bb/parse/ast.py
  37. @@ -69,6 +69,23 @@ class ExportNode(AstNode):
  38.      def eval(self, data):
  39.          data.setVarFlag(self.var, "export", 1, op = 'exported')
  40.  
  41. +class UnsetNode(AstNode):
  42. +    def __init__(self, filename, lineno, var):
  43. +        AstNode.__init__(self, filename, lineno)
  44. +        self.var = var
  45. +
  46. +    def eval(self, data):
  47. +        data.delVar(self.var)
  48. +
  49. +class UnsetFlagNode(AstNode):
  50. +    def __init__(self, filename, lineno, var, flag):
  51. +        AstNode.__init__(self, filename, lineno)
  52. +        self.var = var
  53. +        self.flag = flag
  54. +
  55. +    def eval(self, data):
  56. +        data.delVarFlag(self.var, self.flag)
  57. +
  58.  class DataNode(AstNode):
  59.      """
  60.      Various data related updates. For the sake of sanity
  61. @@ -270,6 +287,12 @@ def handleInclude(statements, filename, lineno, m, force):
  62.  def handleExport(statements, filename, lineno, m):
  63.      statements.append(ExportNode(filename, lineno, m.group(1)))
  64.  
  65. +def handleUnset(statements, filename, lineno, m):
  66. +    statements.append(UnsetNode(filename, lineno, m.group(1)))
  67. +
  68. +def handleUnsetFlag(statements, filename, lineno, m):
  69. +    statements.append(UnsetFlagNode(filename, lineno, m.group(1), m.group(2)))
  70. +
  71.  def handleData(statements, filename, lineno, groupd):
  72.      statements.append(DataNode(filename, lineno, groupd))
  73.  
  74. diff --git a/bitbake/lib/bb/parse/parse_py/ConfHandler.py b/bitbake/lib/bb/parse/parse_py/ConfHandler.py
  75. index b971292..875250d 100644
  76. --- a/bitbake/lib/bb/parse/parse_py/ConfHandler.py
  77. +++ b/bitbake/lib/bb/parse/parse_py/ConfHandler.py
  78. @@ -57,6 +57,8 @@ __config_regexp__  = re.compile( r"""
  79.  __include_regexp__ = re.compile( r"include\s+(.+)" )
  80.  __require_regexp__ = re.compile( r"require\s+(.+)" )
  81.  __export_regexp__ = re.compile( r"export\s+([a-zA-Z0-9\-_+.${}/]+)$" )
  82. +__unset_regexp__ = re.compile( r"unset\s+([a-zA-Z0-9\-_+.${}/]+)$" )
  83. +__unset_flag_regexp__ = re.compile( r"unset\s+([a-zA-Z0-9\-_+.${}/]+)\[([a-zA-Z0-9\-_+.${}/]+)\]$" )
  84.  
  85.  def init(data):
  86.      topdir = data.getVar('TOPDIR', False)
  87. @@ -185,6 +187,16 @@ def feeder(lineno, s, fn, statements):
  88.          ast.handleExport(statements, fn, lineno, m)
  89.          return
  90.  
  91. +    m = __unset_regexp__.match(s)
  92. +    if m:
  93. +        ast.handleUnset(statements, fn, lineno, m)
  94. +        return
  95. +
  96. +    m = __unset_flag_regexp__.match(s)
  97. +    if m:
  98. +        ast.handleUnsetFlag(statements, fn, lineno, m)
  99. +        return
  100. +
  101.      raise ParseError("unparsed line: '%s'" % s, fn, lineno);
  102.  
  103.  # Add us to the handlers list
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement