diff options
Diffstat (limited to 'src/SConscript')
-rwxr-xr-x | src/SConscript | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/SConscript b/src/SConscript index 2930bab55..2a495bffa 100755 --- a/src/SConscript +++ b/src/SConscript @@ -269,7 +269,12 @@ class UnitTest(object): self.sources = srcs self.target = target self.main = kwargs.get('main', False) - UnitTest.all.append(self) + self.all.append(self) + +class GTest(UnitTest): + '''Create a unit test based on the google test framework.''' + + all = [] # Children should have access Export('Source') @@ -277,6 +282,7 @@ Export('PySource') Export('SimObject') Export('ProtoBuf') Export('UnitTest') +Export('GTest') ######################################################################## # @@ -1019,6 +1025,14 @@ def makeEnv(env, label, objsfx, strip=False, disable_partial=False, **kwargs): path = 'unittest/%s.%s' % (test.target, label) new_env.Program(path, test_objs + static_objs) + gtest_env = new_env.Clone() + gtest_env.Append(LIBS=gtest_env['GTEST_LIBS']) + gtest_env.Append(CPPFLAGS=gtest_env['GTEST_CPPFLAGS']) + for test in GTest.all: + test_sources = Source.all.with_tag(str(test.target)) + test_objs = [ gtest_env.StaticObject(s.tnode) for s in test_sources ] + gtest_env.Program('unittest/%s.%s' % (test.target, label), test_objs) + progname = exename if strip: progname += '.unstripped' |