Don't include files from outside a compilation unit
Modified: trunk/reactos/tools/rbuild/module.cpp
Modified: trunk/reactos/tools/rbuild/tests/compilationunittest.cpp
Modified: trunk/reactos/tools/rbuild/tests/data/compilationunit.xml
_____
Modified: trunk/reactos/tools/rbuild/module.cpp
--- trunk/reactos/tools/rbuild/module.cpp 2005-11-25 14:31:45 UTC
(rev 19553)
+++ trunk/reactos/tools/rbuild/module.cpp 2005-11-25 14:38:59 UTC
(rev 19554)
@@ -448,6 +448,7 @@
ParseContext& parseContext )
{
If* pOldIf = parseContext.ifData;
+ CompilationUnit* pOldCompilationUnit =
parseContext.compilationUnit;
bool subs_invalid = false;
string subpath ( path );
if ( e.name == "file" && e.value.size () > 0 )
@@ -654,6 +655,7 @@
for ( size_t i = 0; i < e.subElements.size (); i++ )
ProcessXMLSubElement ( *e.subElements[i], subpath,
parseContext );
parseContext.ifData = pOldIf;
+ parseContext.compilationUnit = pOldCompilationUnit;
}
ModuleType
_____
Modified: trunk/reactos/tools/rbuild/tests/compilationunittest.cpp
--- trunk/reactos/tools/rbuild/tests/compilationunittest.cpp
2005-11-25 14:31:45 UTC (rev 19553)
+++ trunk/reactos/tools/rbuild/tests/compilationunittest.cpp
2005-11-25 14:38:59 UTC (rev 19554)
@@ -29,15 +29,21 @@
Module& module1 = *project.modules[0];
IS_TRUE ( module1.type == BuildTool );
- ARE_EQUAL ( 2, module1.non_if_data.files.size());
+ ARE_EQUAL ( 3, module1.non_if_data.files.size());
ARE_EQUAL ( "dir1" SSEP "file1.c",
module1.non_if_data.files[0]->name );
ARE_EQUAL ( "dir1" SSEP "file2.c",
module1.non_if_data.files[1]->name );
+ ARE_EQUAL ( "dir1" SSEP "file3.c",
module1.non_if_data.files[2]->name );
- ARE_EQUAL ( 1, module1.non_if_data.compilationUnits.size () );
+ ARE_EQUAL ( 2, module1.non_if_data.compilationUnits.size () );
CompilationUnit& compilationUnit1 =
*module1.non_if_data.compilationUnits[0];
ARE_EQUAL ( 2, compilationUnit1.files.size () );
ARE_EQUAL ( "dir1" SSEP "file1.c",
compilationUnit1.files[0]->name );
ARE_EQUAL ( "dir1" SSEP "file2.c",
compilationUnit1.files[1]->name );
+
+ CompilationUnit& compilationUnit2 =
*module1.non_if_data.compilationUnits[1];
+ ARE_EQUAL ( 1, compilationUnit2.files.size () );
+
+ ARE_EQUAL ( "dir1" SSEP "file3.c",
compilationUnit2.files[0]->name );
}
_____
Modified: trunk/reactos/tools/rbuild/tests/data/compilationunit.xml
--- trunk/reactos/tools/rbuild/tests/data/compilationunit.xml
2005-11-25 14:31:45 UTC (rev 19553)
+++ trunk/reactos/tools/rbuild/tests/data/compilationunit.xml
2005-11-25 14:38:59 UTC (rev 19554)
@@ -6,6 +6,7 @@
<file>file1.c</file>
<file>file2.c</file>
</compilationunit>
+ <file>file3.c</file>
</module>
</directory>
</project>
Show replies by date