diff --git a/python/mozbuild/mozbuild/frontend/emitter.py b/python/mozbuild/mozbuild/frontend/emitter.py index cc2d1f3d827b..2924c770e24a 100644 --- a/python/mozbuild/mozbuild/frontend/emitter.py +++ b/python/mozbuild/mozbuild/frontend/emitter.py @@ -83,6 +83,7 @@ class TreeMetadataEmitter(object): ASFILES='ASFILES', CMMSRCS='CMMSRCS', CPPSRCS='CPP_SOURCES', + CPP_UNIT_TESTS='CPP_UNIT_TESTS', CSRCS='CSRCS', DEFINES='DEFINES', EXTRA_COMPONENTS='EXTRA_COMPONENTS', diff --git a/python/mozbuild/mozbuild/frontend/sandbox_symbols.py b/python/mozbuild/mozbuild/frontend/sandbox_symbols.py index 3160b76984a5..d9b4ac8b055c 100644 --- a/python/mozbuild/mozbuild/frontend/sandbox_symbols.py +++ b/python/mozbuild/mozbuild/frontend/sandbox_symbols.py @@ -119,6 +119,13 @@ VARIABLES = { files will be installed in the /components directory of the distribution. """), + 'CPP_UNIT_TESTS': (StrictOrderingOnAppendList, list, [], + """C++ source files for unit tests. + + This is a list of C++ unit test sources. Entries must be files that + exist. These generally have .cpp extensions. + """), + 'GTEST_C_SOURCES': (StrictOrderingOnAppendList, list, [], """C code source files for GTest unit tests. diff --git a/python/mozbuild/mozbuild/test/backend/data/variable_passthru/moz.build b/python/mozbuild/mozbuild/test/backend/data/variable_passthru/moz.build index 172be89b5d99..73a6c31f1c7a 100644 --- a/python/mozbuild/mozbuild/test/backend/data/variable_passthru/moz.build +++ b/python/mozbuild/mozbuild/test/backend/data/variable_passthru/moz.build @@ -13,6 +13,8 @@ DEFINES = ['-Dbar', '-Dfoo'] EXTRA_COMPONENTS = ['bar.js', 'foo.js'] EXTRA_PP_COMPONENTS = ['bar.pp.js', 'foo.pp.js'] +CPP_UNIT_TESTS = ['foo.cpp'] + GTEST_C_SOURCES = ['test1.c', 'test2.c'] GTEST_CMM_SOURCES = ['test1.mm', 'test2.mm'] GTEST_CPP_SOURCES = ['test1.cpp', 'test2.cpp'] diff --git a/python/mozbuild/mozbuild/test/backend/test_recursivemake.py b/python/mozbuild/mozbuild/test/backend/test_recursivemake.py index f674aefe035e..95997ab96e30 100644 --- a/python/mozbuild/mozbuild/test/backend/test_recursivemake.py +++ b/python/mozbuild/mozbuild/test/backend/test_recursivemake.py @@ -147,6 +147,9 @@ class TestRecursiveMakeBackend(BackendTester): 'CMMSRCS += bar.mm', 'CMMSRCS += foo.mm', ], + 'CPP_UNIT_TESTS': [ + 'CPP_UNIT_TESTS += foo.cpp', + ], 'CSRCS': [ 'CSRCS += bar.c', 'CSRCS += foo.c', diff --git a/python/mozbuild/mozbuild/test/frontend/data/variable-passthru/moz.build b/python/mozbuild/mozbuild/test/frontend/data/variable-passthru/moz.build index 60ad1bc8bb26..47813fd7f23e 100644 --- a/python/mozbuild/mozbuild/test/frontend/data/variable-passthru/moz.build +++ b/python/mozbuild/mozbuild/test/frontend/data/variable-passthru/moz.build @@ -13,6 +13,8 @@ DEFINES=['-Dfans', '-Dtans'] EXTRA_COMPONENTS=['fans.js', 'tans.js'] EXTRA_PP_COMPONENTS=['fans.pp.js', 'tans.pp.js'] +CPP_UNIT_TESTS = ['foo.cpp'] + GTEST_C_SOURCES = ['test1.c', 'test2.c'] GTEST_CMM_SOURCES = ['test1.mm', 'test2.mm'] GTEST_CPP_SOURCES = ['test1.cpp', 'test2.cpp'] diff --git a/python/mozbuild/mozbuild/test/frontend/test_emitter.py b/python/mozbuild/mozbuild/test/frontend/test_emitter.py index d5134acf6172..baf1dd0b9646 100644 --- a/python/mozbuild/mozbuild/test/frontend/test_emitter.py +++ b/python/mozbuild/mozbuild/test/frontend/test_emitter.py @@ -129,6 +129,7 @@ class TestEmitterBasic(unittest.TestCase): ASFILES=['fans.asm', 'tans.s'], CMMSRCS=['fans.mm', 'tans.mm'], CSRCS=['fans.c', 'tans.c'], + CPP_UNIT_TESTS=['foo.cpp'], DEFINES=['-Dfans', '-Dtans'], EXTRA_COMPONENTS=['fans.js', 'tans.js'], EXTRA_PP_COMPONENTS=['fans.pp.js', 'tans.pp.js'],