diff --git a/python/mozbuild/mozbuild/frontend/data.py b/python/mozbuild/mozbuild/frontend/data.py index 959f6a42301e2a..6e44938f333aad 100644 --- a/python/mozbuild/mozbuild/frontend/data.py +++ b/python/mozbuild/mozbuild/frontend/data.py @@ -185,10 +185,11 @@ def __init__(self, sandbox, defines): def get_defines(self): for define, value in self.defines.iteritems(): if value is True: - defstr = define + yield('-D%s' % define) + elif value is False: + yield('-U%s' % define) else: - defstr = '%s=%s' % (define, shell_quote(value)) - yield('-D%s' % defstr) + yield('-D%s=%s' % (define, shell_quote(value))) class Exports(SandboxDerived): """Sandbox container object for EXPORTS, which is a HierarchicalStringList. diff --git a/python/mozbuild/mozbuild/test/backend/data/defines/moz.build b/python/mozbuild/mozbuild/test/backend/data/defines/moz.build index 29cc9735cec5b8..be4b3114348226 100644 --- a/python/mozbuild/mozbuild/test/backend/data/defines/moz.build +++ b/python/mozbuild/mozbuild/test/backend/data/defines/moz.build @@ -9,5 +9,6 @@ DEFINES = { DEFINES['BAZ'] = '"ab\'cd"' DEFINES.update({ 'BAR': 7, - 'VALUE': value + 'VALUE': value, + 'QUX': False, }) diff --git a/python/mozbuild/mozbuild/test/backend/test_recursivemake.py b/python/mozbuild/mozbuild/test/backend/test_recursivemake.py index 86519dbd7938c7..191a744af7f73e 100644 --- a/python/mozbuild/mozbuild/test/backend/test_recursivemake.py +++ b/python/mozbuild/mozbuild/test/backend/test_recursivemake.py @@ -524,7 +524,7 @@ def test_defines(self): var = 'DEFINES' defines = [val for val in lines if val.startswith(var)] - expected = ['DEFINES += -DFOO -DBAZ=\'"ab\'\\\'\'cd"\' -DBAR=7 -DVALUE=\'xyz\''] + expected = ['DEFINES += -DFOO -DBAZ=\'"ab\'\\\'\'cd"\' -UQUX -DBAR=7 -DVALUE=\'xyz\''] self.assertEqual(defines, expected) def test_local_includes(self): diff --git a/python/mozbuild/mozbuild/test/frontend/data/defines/moz.build b/python/mozbuild/mozbuild/test/frontend/data/defines/moz.build index 240eb70315b564..ccb0d5e3606cfe 100644 --- a/python/mozbuild/mozbuild/test/frontend/data/defines/moz.build +++ b/python/mozbuild/mozbuild/test/frontend/data/defines/moz.build @@ -9,5 +9,6 @@ DEFINES = { DEFINES['BAZ'] = '"abcd"' DEFINES.update({ 'BAR': 7, - 'VALUE': value + 'VALUE': value, + 'QUX': False, }) diff --git a/python/mozbuild/mozbuild/test/frontend/test_emitter.py b/python/mozbuild/mozbuild/test/frontend/test_emitter.py index 730dea7a31a476..18b5d11fbcb63b 100644 --- a/python/mozbuild/mozbuild/test/frontend/test_emitter.py +++ b/python/mozbuild/mozbuild/test/frontend/test_emitter.py @@ -532,6 +532,7 @@ def test_defines(self): 'BAZ': '"abcd"', 'FOO': True, 'VALUE': 'xyz', + 'QUX': False, } self.assertEqual(defines, expected)