scons: Build GTests in the directory they're declared.
authorGabe Black <gabeblack@google.com>
Tue, 28 Nov 2017 02:59:27 +0000 (18:59 -0800)
committerGabe Black <gabeblack@google.com>
Tue, 28 Nov 2017 11:00:18 +0000 (11:00 +0000)
This will let us move unit tests into the directory of the code they're
testing.

Change-Id: I611582eb00a06a848f3ce7da89f64e42660cb844
Reviewed-on: https://gem5-review.googlesource.com/6141
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>

src/SConscript

index 2a495bffad1d78481dbf01afb70e99a31be3d396..73e9f82448c2a4719bf5dc22999a8287c4f525d7 100755 (executable)
@@ -275,6 +275,9 @@ class GTest(UnitTest):
     '''Create a unit test based on the google test framework.'''
 
     all = []
+    def __init__(self, *args, **kwargs):
+        super(GTest, self).__init__(*args, **kwargs)
+        self.dir = Dir('.')
 
 # Children should have access
 Export('Source')
@@ -1031,7 +1034,8 @@ def makeEnv(env, label, objsfx, strip=False, disable_partial=False, **kwargs):
     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)
+        gtest_env.Program(test.dir.File('%s.%s' % (test.target, label)),
+                          test_objs)
 
     progname = exename
     if strip: