mirror of
https://github.com/reactos/reactos.git
synced 2025-02-25 09:50:02 +00:00
Replace File by CompilationUnit
svn path=/trunk/; revision=19466
This commit is contained in:
parent
29f5dd15ed
commit
498c359615
8 changed files with 230 additions and 161 deletions
|
@ -129,11 +129,11 @@ void DevCppBackend::ProcessModules()
|
||||||
{
|
{
|
||||||
Module &module = *ProjectNode.modules[i];
|
Module &module = *ProjectNode.modules[i];
|
||||||
|
|
||||||
for(size_t k = 0; k < module.non_if_data.files.size(); k++)
|
for(size_t k = 0; k < module.non_if_data.compilationUnits.size(); k++)
|
||||||
{
|
{
|
||||||
File &file = *module.non_if_data.files[k];
|
CompilationUnit &compilationUnit = *module.non_if_data.compilationUnits[k];
|
||||||
|
string filename = compilationUnit.GetFilename();
|
||||||
ProcessFile(file.name);
|
ProcessFile(filename);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -388,13 +388,12 @@ MingwModuleHandler::GetSourceFilenames ( string_list& list,
|
||||||
{
|
{
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
const vector<File*>& files = module.non_if_data.files;
|
const vector<CompilationUnit*>& compilationUnits = module.non_if_data.compilationUnits;
|
||||||
for ( i = 0; i < files.size (); i++ )
|
for ( i = 0; i < compilationUnits.size (); i++ )
|
||||||
{
|
{
|
||||||
if ( includeGeneratedFiles || !files[i]->IsGeneratedFile () )
|
if ( includeGeneratedFiles || !compilationUnits[i]->IsGeneratedFile () )
|
||||||
{
|
{
|
||||||
list.push_back (
|
list.push_back ( GetActualSourceFilename ( compilationUnits[i]->GetFilename () ) );
|
||||||
GetActualSourceFilename ( files[i]->name ) );
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// intentionally make a copy so that we can append more work in
|
// intentionally make a copy so that we can append more work in
|
||||||
|
@ -408,15 +407,12 @@ MingwModuleHandler::GetSourceFilenames ( string_list& list,
|
||||||
const vector<If*>& ifs = rIf.data.ifs;
|
const vector<If*>& ifs = rIf.data.ifs;
|
||||||
for ( j = 0; j < ifs.size (); j++ )
|
for ( j = 0; j < ifs.size (); j++ )
|
||||||
v.push_back ( ifs[j] );
|
v.push_back ( ifs[j] );
|
||||||
const vector<File*>& files = rIf.data.files;
|
const vector<CompilationUnit*>& compilationUnits = rIf.data.compilationUnits;
|
||||||
for ( j = 0; j < files.size (); j++ )
|
for ( j = 0; j < compilationUnits.size (); j++ )
|
||||||
{
|
{
|
||||||
File& file = *files[j];
|
CompilationUnit& compilationUnit = *compilationUnits[j];
|
||||||
if ( includeGeneratedFiles || !file.IsGeneratedFile () )
|
if ( includeGeneratedFiles || !compilationUnit.IsGeneratedFile () )
|
||||||
{
|
list.push_back ( GetActualSourceFilename ( compilationUnit.GetFilename () ) );
|
||||||
list.push_back (
|
|
||||||
GetActualSourceFilename ( file.name ) );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -545,17 +541,16 @@ MingwModuleHandler::GenerateDependsTarget () const
|
||||||
string
|
string
|
||||||
MingwModuleHandler::GetObjectFilenames ()
|
MingwModuleHandler::GetObjectFilenames ()
|
||||||
{
|
{
|
||||||
const vector<File*>& files = module.non_if_data.files;
|
const vector<CompilationUnit*>& compilationUnits = module.non_if_data.compilationUnits;
|
||||||
if ( files.size () == 0 )
|
if ( compilationUnits.size () == 0 )
|
||||||
return "";
|
return "";
|
||||||
|
|
||||||
string objectFilenames ( "" );
|
string objectFilenames ( "" );
|
||||||
for ( size_t i = 0; i < files.size (); i++ )
|
for ( size_t i = 0; i < compilationUnits.size (); i++ )
|
||||||
{
|
{
|
||||||
if ( objectFilenames.size () > 0 )
|
if ( objectFilenames.size () > 0 )
|
||||||
objectFilenames += " ";
|
objectFilenames += " ";
|
||||||
objectFilenames +=
|
objectFilenames += GetObjectFilename ( compilationUnits[i]->GetFilename (), NULL );
|
||||||
GetObjectFilename ( files[i]->name, NULL );
|
|
||||||
}
|
}
|
||||||
return objectFilenames;
|
return objectFilenames;
|
||||||
}
|
}
|
||||||
|
@ -804,7 +799,7 @@ MingwModuleHandler::GenerateMacros (
|
||||||
if ( rIf.data.defines.size()
|
if ( rIf.data.defines.size()
|
||||||
|| rIf.data.includes.size()
|
|| rIf.data.includes.size()
|
||||||
|| rIf.data.libraries.size()
|
|| rIf.data.libraries.size()
|
||||||
|| rIf.data.files.size()
|
|| rIf.data.compilationUnits.size()
|
||||||
|| rIf.data.compilerFlags.size()
|
|| rIf.data.compilerFlags.size()
|
||||||
|| rIf.data.ifs.size() )
|
|| rIf.data.ifs.size() )
|
||||||
{
|
{
|
||||||
|
@ -826,14 +821,14 @@ MingwModuleHandler::GenerateMacros (
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
MingwModuleHandler::CleanupFileVector ( vector<File*>& sourceFiles )
|
MingwModuleHandler::CleanupCompilationUnitVector ( vector<CompilationUnit*>& compilationUnits )
|
||||||
{
|
{
|
||||||
for (size_t i = 0; i < sourceFiles.size (); i++)
|
for (size_t i = 0; i < compilationUnits.size (); i++)
|
||||||
delete sourceFiles[i];
|
delete compilationUnits[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
MingwModuleHandler::GetModuleSpecificSourceFiles ( vector<File*>& sourceFiles )
|
MingwModuleHandler::GetModuleSpecificCompilationUnits ( vector<CompilationUnit*>& compilationUnits )
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -845,19 +840,18 @@ MingwModuleHandler::GenerateObjectMacros (
|
||||||
{
|
{
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
const vector<File*>& files = data.files;
|
const vector<CompilationUnit*>& compilationUnits = data.compilationUnits;
|
||||||
if ( files.size () > 0 )
|
if ( compilationUnits.size () > 0 )
|
||||||
{
|
{
|
||||||
for ( i = 0; i < files.size (); i++ )
|
for ( i = 0; i < compilationUnits.size (); i++ )
|
||||||
{
|
{
|
||||||
File& file = *files[i];
|
CompilationUnit& compilationUnit = *compilationUnits[i];
|
||||||
if ( file.first )
|
if ( compilationUnit.IsFirstFile () )
|
||||||
{
|
{
|
||||||
fprintf ( fMakefile,
|
fprintf ( fMakefile,
|
||||||
"%s := %s $(%s)\n",
|
"%s := %s $(%s)\n",
|
||||||
objectsMacro.c_str(),
|
objectsMacro.c_str(),
|
||||||
GetObjectFilename (
|
GetObjectFilename ( compilationUnit.GetFilename (), NULL ).c_str (),
|
||||||
file.name, NULL ).c_str (),
|
|
||||||
objectsMacro.c_str() );
|
objectsMacro.c_str() );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -866,17 +860,16 @@ MingwModuleHandler::GenerateObjectMacros (
|
||||||
"%s %s",
|
"%s %s",
|
||||||
objectsMacro.c_str (),
|
objectsMacro.c_str (),
|
||||||
assignmentOperation );
|
assignmentOperation );
|
||||||
for ( i = 0; i < files.size(); i++ )
|
for ( i = 0; i < compilationUnits.size(); i++ )
|
||||||
{
|
{
|
||||||
File& file = *files[i];
|
CompilationUnit& compilationUnit = *compilationUnits[i];
|
||||||
if ( !file.first )
|
if ( !compilationUnit.IsFirstFile () )
|
||||||
{
|
{
|
||||||
fprintf (
|
fprintf (
|
||||||
fMakefile,
|
fMakefile,
|
||||||
"%s%s",
|
"%s%s",
|
||||||
( i%10 == 9 ? " \\\n\t" : " " ),
|
( i%10 == 9 ? " \\\n\t" : " " ),
|
||||||
GetObjectFilename (
|
GetObjectFilename ( compilationUnit.GetFilename (), NULL ).c_str () );
|
||||||
file.name, NULL ).c_str () );
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
fprintf ( fMakefile, "\n" );
|
fprintf ( fMakefile, "\n" );
|
||||||
|
@ -889,7 +882,7 @@ MingwModuleHandler::GenerateObjectMacros (
|
||||||
if ( rIf.data.defines.size()
|
if ( rIf.data.defines.size()
|
||||||
|| rIf.data.includes.size()
|
|| rIf.data.includes.size()
|
||||||
|| rIf.data.libraries.size()
|
|| rIf.data.libraries.size()
|
||||||
|| rIf.data.files.size()
|
|| rIf.data.compilationUnits.size()
|
||||||
|| rIf.data.compilerFlags.size()
|
|| rIf.data.compilerFlags.size()
|
||||||
|| rIf.data.ifs.size() )
|
|| rIf.data.ifs.size() )
|
||||||
{
|
{
|
||||||
|
@ -909,18 +902,17 @@ MingwModuleHandler::GenerateObjectMacros (
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
vector<File*> sourceFiles;
|
vector<CompilationUnit*> sourceCompilationUnits;
|
||||||
GetModuleSpecificSourceFiles ( sourceFiles );
|
GetModuleSpecificCompilationUnits ( sourceCompilationUnits );
|
||||||
for ( i = 0; i < sourceFiles.size (); i++ )
|
for ( i = 0; i < sourceCompilationUnits.size (); i++ )
|
||||||
{
|
{
|
||||||
fprintf (
|
fprintf (
|
||||||
fMakefile,
|
fMakefile,
|
||||||
"%s += %s\n",
|
"%s += %s\n",
|
||||||
objectsMacro.c_str(),
|
objectsMacro.c_str(),
|
||||||
GetObjectFilename (
|
GetObjectFilename ( sourceCompilationUnits[i]->GetFilename (), NULL ).c_str () );
|
||||||
sourceFiles[i]->name, NULL ).c_str () );
|
|
||||||
}
|
}
|
||||||
CleanupFileVector ( sourceFiles );
|
CleanupCompilationUnitVector ( sourceCompilationUnits );
|
||||||
}
|
}
|
||||||
|
|
||||||
string
|
string
|
||||||
|
@ -1104,9 +1096,9 @@ MingwModuleHandler::GenerateWinebuildCommands (
|
||||||
}
|
}
|
||||||
|
|
||||||
string
|
string
|
||||||
MingwModuleHandler::GetWidlFlags ( const File& file )
|
MingwModuleHandler::GetWidlFlags ( const CompilationUnit& compilationUnit )
|
||||||
{
|
{
|
||||||
return file.switches;
|
return compilationUnit.GetSwitches ();
|
||||||
}
|
}
|
||||||
|
|
||||||
string
|
string
|
||||||
|
@ -1118,13 +1110,14 @@ MingwModuleHandler::GetRpcServerHeaderFilename ( string basename ) const
|
||||||
|
|
||||||
void
|
void
|
||||||
MingwModuleHandler::GenerateWidlCommandsServer (
|
MingwModuleHandler::GenerateWidlCommandsServer (
|
||||||
const File& file,
|
const CompilationUnit& compilationUnit,
|
||||||
const string& widlflagsMacro )
|
const string& widlflagsMacro )
|
||||||
{
|
{
|
||||||
string dependencies = file.name;
|
string filename = compilationUnit.GetFilename ();
|
||||||
|
string dependencies = filename;
|
||||||
dependencies += " " + NormalizeFilename ( module.xmlbuildFile );
|
dependencies += " " + NormalizeFilename ( module.xmlbuildFile );
|
||||||
|
|
||||||
string basename = GetBasename ( file.name );
|
string basename = GetBasename ( filename );
|
||||||
|
|
||||||
string generatedHeaderFilename = GetRpcServerHeaderFilename ( basename );
|
string generatedHeaderFilename = GetRpcServerHeaderFilename ( basename );
|
||||||
CLEAN_FILE(generatedHeaderFilename);
|
CLEAN_FILE(generatedHeaderFilename);
|
||||||
|
@ -1144,11 +1137,11 @@ MingwModuleHandler::GenerateWidlCommandsServer (
|
||||||
fprintf ( fMakefile,
|
fprintf ( fMakefile,
|
||||||
"\t%s %s %s -h -H %s -s -S %s %s\n",
|
"\t%s %s %s -h -H %s -s -S %s %s\n",
|
||||||
"$(Q)$(WIDL_TARGET)",
|
"$(Q)$(WIDL_TARGET)",
|
||||||
GetWidlFlags ( file ).c_str (),
|
GetWidlFlags ( compilationUnit ).c_str (),
|
||||||
widlflagsMacro.c_str (),
|
widlflagsMacro.c_str (),
|
||||||
generatedHeaderFilename.c_str (),
|
generatedHeaderFilename.c_str (),
|
||||||
generatedServerFilename.c_str (),
|
generatedServerFilename.c_str (),
|
||||||
file.name.c_str () );
|
filename.c_str () );
|
||||||
}
|
}
|
||||||
|
|
||||||
string
|
string
|
||||||
|
@ -1160,13 +1153,14 @@ MingwModuleHandler::GetRpcClientHeaderFilename ( string basename ) const
|
||||||
|
|
||||||
void
|
void
|
||||||
MingwModuleHandler::GenerateWidlCommandsClient (
|
MingwModuleHandler::GenerateWidlCommandsClient (
|
||||||
const File& file,
|
const CompilationUnit& compilationUnit,
|
||||||
const string& widlflagsMacro )
|
const string& widlflagsMacro )
|
||||||
{
|
{
|
||||||
string dependencies = file.name;
|
string filename = compilationUnit.GetFilename ();
|
||||||
|
string dependencies = filename;
|
||||||
dependencies += " " + NormalizeFilename ( module.xmlbuildFile );
|
dependencies += " " + NormalizeFilename ( module.xmlbuildFile );
|
||||||
|
|
||||||
string basename = GetBasename ( file.name );
|
string basename = GetBasename ( filename );
|
||||||
|
|
||||||
string generatedHeaderFilename = GetRpcClientHeaderFilename ( basename );
|
string generatedHeaderFilename = GetRpcClientHeaderFilename ( basename );
|
||||||
CLEAN_FILE(generatedHeaderFilename);
|
CLEAN_FILE(generatedHeaderFilename);
|
||||||
|
@ -1186,29 +1180,29 @@ MingwModuleHandler::GenerateWidlCommandsClient (
|
||||||
fprintf ( fMakefile,
|
fprintf ( fMakefile,
|
||||||
"\t%s %s %s -h -H %s -c -C %s %s\n",
|
"\t%s %s %s -h -H %s -c -C %s %s\n",
|
||||||
"$(Q)$(WIDL_TARGET)",
|
"$(Q)$(WIDL_TARGET)",
|
||||||
GetWidlFlags ( file ).c_str (),
|
GetWidlFlags ( compilationUnit ).c_str (),
|
||||||
widlflagsMacro.c_str (),
|
widlflagsMacro.c_str (),
|
||||||
generatedHeaderFilename.c_str (),
|
generatedHeaderFilename.c_str (),
|
||||||
generatedClientFilename.c_str (),
|
generatedClientFilename.c_str (),
|
||||||
file.name.c_str () );
|
filename.c_str () );
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
MingwModuleHandler::GenerateWidlCommands (
|
MingwModuleHandler::GenerateWidlCommands (
|
||||||
const File& file,
|
const CompilationUnit& compilationUnit,
|
||||||
const string& widlflagsMacro )
|
const string& widlflagsMacro )
|
||||||
{
|
{
|
||||||
if ( module.type == RpcServer )
|
if ( module.type == RpcServer )
|
||||||
GenerateWidlCommandsServer ( file,
|
GenerateWidlCommandsServer ( compilationUnit,
|
||||||
widlflagsMacro );
|
widlflagsMacro );
|
||||||
else
|
else
|
||||||
GenerateWidlCommandsClient ( file,
|
GenerateWidlCommandsClient ( compilationUnit,
|
||||||
widlflagsMacro );
|
widlflagsMacro );
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
MingwModuleHandler::GenerateCommands (
|
MingwModuleHandler::GenerateCommands (
|
||||||
const File& file,
|
const CompilationUnit& compilationUnit,
|
||||||
const string& cc,
|
const string& cc,
|
||||||
const string& cppc,
|
const string& cppc,
|
||||||
const string& cflagsMacro,
|
const string& cflagsMacro,
|
||||||
|
@ -1216,10 +1210,11 @@ MingwModuleHandler::GenerateCommands (
|
||||||
const string& windresflagsMacro,
|
const string& windresflagsMacro,
|
||||||
const string& widlflagsMacro )
|
const string& widlflagsMacro )
|
||||||
{
|
{
|
||||||
string extension = GetExtension ( file.name );
|
string filename = compilationUnit.GetFilename ();
|
||||||
|
string extension = GetExtension ( filename );
|
||||||
if ( extension == ".c" || extension == ".C" )
|
if ( extension == ".c" || extension == ".C" )
|
||||||
{
|
{
|
||||||
GenerateGccCommand ( file.name,
|
GenerateGccCommand ( filename,
|
||||||
"",
|
"",
|
||||||
cc,
|
cc,
|
||||||
cflagsMacro );
|
cflagsMacro );
|
||||||
|
@ -1229,7 +1224,7 @@ MingwModuleHandler::GenerateCommands (
|
||||||
extension == ".cpp" || extension == ".CPP" ||
|
extension == ".cpp" || extension == ".CPP" ||
|
||||||
extension == ".cxx" || extension == ".CXX" )
|
extension == ".cxx" || extension == ".CXX" )
|
||||||
{
|
{
|
||||||
GenerateGccCommand ( file.name,
|
GenerateGccCommand ( filename,
|
||||||
"",
|
"",
|
||||||
cppc,
|
cppc,
|
||||||
cflagsMacro );
|
cflagsMacro );
|
||||||
|
@ -1237,27 +1232,27 @@ MingwModuleHandler::GenerateCommands (
|
||||||
}
|
}
|
||||||
else if ( extension == ".s" || extension == ".S" )
|
else if ( extension == ".s" || extension == ".S" )
|
||||||
{
|
{
|
||||||
GenerateGccAssemblerCommand ( file.name,
|
GenerateGccAssemblerCommand ( filename,
|
||||||
cc,
|
cc,
|
||||||
cflagsMacro );
|
cflagsMacro );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if ( extension == ".asm" || extension == ".ASM" )
|
else if ( extension == ".asm" || extension == ".ASM" )
|
||||||
{
|
{
|
||||||
GenerateNasmCommand ( file.name,
|
GenerateNasmCommand ( filename,
|
||||||
nasmflagsMacro );
|
nasmflagsMacro );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if ( extension == ".rc" || extension == ".RC" )
|
else if ( extension == ".rc" || extension == ".RC" )
|
||||||
{
|
{
|
||||||
GenerateWindresCommand ( file.name,
|
GenerateWindresCommand ( filename,
|
||||||
windresflagsMacro );
|
windresflagsMacro );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if ( extension == ".spec" || extension == ".SPEC" )
|
else if ( extension == ".spec" || extension == ".SPEC" )
|
||||||
{
|
{
|
||||||
GenerateWinebuildCommands ( file.name );
|
GenerateWinebuildCommands ( filename );
|
||||||
GenerateGccCommand ( GetActualSourceFilename ( file.name ),
|
GenerateGccCommand ( GetActualSourceFilename ( filename ),
|
||||||
"",
|
"",
|
||||||
cc,
|
cc,
|
||||||
cflagsMacro );
|
cflagsMacro );
|
||||||
|
@ -1265,10 +1260,10 @@ MingwModuleHandler::GenerateCommands (
|
||||||
}
|
}
|
||||||
else if ( extension == ".idl" || extension == ".IDL" )
|
else if ( extension == ".idl" || extension == ".IDL" )
|
||||||
{
|
{
|
||||||
GenerateWidlCommands ( file,
|
GenerateWidlCommands ( compilationUnit,
|
||||||
widlflagsMacro );
|
widlflagsMacro );
|
||||||
GenerateGccCommand ( GetActualSourceFilename ( file.name ),
|
GenerateGccCommand ( GetActualSourceFilename ( filename ),
|
||||||
GetExtraDependencies ( file.name ),
|
GetExtraDependencies ( filename ),
|
||||||
cc,
|
cc,
|
||||||
cflagsMacro );
|
cflagsMacro );
|
||||||
return;
|
return;
|
||||||
|
@ -1278,7 +1273,7 @@ MingwModuleHandler::GenerateCommands (
|
||||||
__LINE__,
|
__LINE__,
|
||||||
"Unsupported filename extension '%s' in file '%s'",
|
"Unsupported filename extension '%s' in file '%s'",
|
||||||
extension.c_str (),
|
extension.c_str (),
|
||||||
file.name.c_str () );
|
filename.c_str () );
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -1371,10 +1366,10 @@ void
|
||||||
MingwModuleHandler::GetObjectsVector ( const IfableData& data,
|
MingwModuleHandler::GetObjectsVector ( const IfableData& data,
|
||||||
vector<string>& objectFiles ) const
|
vector<string>& objectFiles ) const
|
||||||
{
|
{
|
||||||
for ( size_t i = 0; i < data.files.size (); i++ )
|
for ( size_t i = 0; i < data.compilationUnits.size (); i++ )
|
||||||
{
|
{
|
||||||
File& file = *data.files[i];
|
CompilationUnit& compilationUnit = *data.compilationUnits[i];
|
||||||
objectFiles.push_back ( GetObjectFilename ( file.name, NULL ) );
|
objectFiles.push_back ( GetObjectFilename ( compilationUnit.GetFilename (), NULL ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1519,10 +1514,10 @@ MingwModuleHandler::GenerateObjectFileTargets (
|
||||||
{
|
{
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
const vector<File*>& files = data.files;
|
const vector<CompilationUnit*>& compilationUnits = data.compilationUnits;
|
||||||
for ( i = 0; i < files.size (); i++ )
|
for ( i = 0; i < compilationUnits.size (); i++ )
|
||||||
{
|
{
|
||||||
GenerateCommands ( *files[i],
|
GenerateCommands ( *compilationUnits[i],
|
||||||
cc,
|
cc,
|
||||||
cppc,
|
cppc,
|
||||||
cflagsMacro,
|
cflagsMacro,
|
||||||
|
@ -1545,11 +1540,11 @@ MingwModuleHandler::GenerateObjectFileTargets (
|
||||||
widlflagsMacro );
|
widlflagsMacro );
|
||||||
}
|
}
|
||||||
|
|
||||||
vector<File*> sourceFiles;
|
vector<CompilationUnit*> sourceCompilationUnits;
|
||||||
GetModuleSpecificSourceFiles ( sourceFiles );
|
GetModuleSpecificCompilationUnits ( sourceCompilationUnits );
|
||||||
for ( i = 0; i < sourceFiles.size (); i++ )
|
for ( i = 0; i < sourceCompilationUnits.size (); i++ )
|
||||||
{
|
{
|
||||||
GenerateCommands ( *sourceFiles[i],
|
GenerateCommands ( *sourceCompilationUnits[i],
|
||||||
cc,
|
cc,
|
||||||
cppc,
|
cppc,
|
||||||
cflagsMacro,
|
cflagsMacro,
|
||||||
|
@ -1557,7 +1552,7 @@ MingwModuleHandler::GenerateObjectFileTargets (
|
||||||
windresflagsMacro,
|
windresflagsMacro,
|
||||||
widlflagsMacro );
|
widlflagsMacro );
|
||||||
}
|
}
|
||||||
CleanupFileVector ( sourceFiles );
|
CleanupCompilationUnitVector ( sourceCompilationUnits );
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -1703,13 +1698,14 @@ MingwModuleHandler::GetRpcHeaderDependencies (
|
||||||
if ( library.importedModule->type == RpcServer ||
|
if ( library.importedModule->type == RpcServer ||
|
||||||
library.importedModule->type == RpcClient )
|
library.importedModule->type == RpcClient )
|
||||||
{
|
{
|
||||||
for ( size_t j = 0; j < library.importedModule->non_if_data.files.size (); j++ )
|
for ( size_t j = 0; j < library.importedModule->non_if_data.compilationUnits.size (); j++ )
|
||||||
{
|
{
|
||||||
File& file = *library.importedModule->non_if_data.files[j];
|
CompilationUnit& compilationUnit = *library.importedModule->non_if_data.compilationUnits[j];
|
||||||
string extension = GetExtension ( file.name );
|
string filename = compilationUnit.GetFilename ();
|
||||||
|
string extension = GetExtension ( filename );
|
||||||
if ( extension == ".idl" || extension == ".IDL" )
|
if ( extension == ".idl" || extension == ".IDL" )
|
||||||
{
|
{
|
||||||
string basename = GetBasename ( file.name );
|
string basename = GetBasename ( filename );
|
||||||
if ( library.importedModule->type == RpcServer )
|
if ( library.importedModule->type == RpcServer )
|
||||||
dependencies.push_back ( GetRpcServerHeaderFilename ( basename ) );
|
dependencies.push_back ( GetRpcServerHeaderFilename ( basename ) );
|
||||||
if ( library.importedModule->type == RpcClient )
|
if ( library.importedModule->type == RpcClient )
|
||||||
|
@ -1739,13 +1735,14 @@ MingwModuleHandler::GenerateOtherMacros ()
|
||||||
vector<string> s;
|
vector<string> s;
|
||||||
if ( module.importLibrary )
|
if ( module.importLibrary )
|
||||||
{
|
{
|
||||||
const vector<File*>& files = module.non_if_data.files;
|
const vector<CompilationUnit*>& compilationUnits = module.non_if_data.compilationUnits;
|
||||||
for ( size_t i = 0; i < files.size (); i++ )
|
for ( size_t i = 0; i < compilationUnits.size (); i++ )
|
||||||
{
|
{
|
||||||
File& file = *files[i];
|
CompilationUnit& compilationUnit = *compilationUnits[i];
|
||||||
string extension = GetExtension ( file.name );
|
string filename = compilationUnit.GetFilename ();
|
||||||
|
string extension = GetExtension ( filename );
|
||||||
if ( extension == ".spec" || extension == ".SPEC" )
|
if ( extension == ".spec" || extension == ".SPEC" )
|
||||||
GetSpecObjectDependencies ( s, file.name );
|
GetSpecObjectDependencies ( s, filename );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ( s.size () > 0 )
|
if ( s.size () > 0 )
|
||||||
|
@ -2093,19 +2090,16 @@ MingwModuleHandler::GetDefinitionDependencies (
|
||||||
string_list& dependencies ) const
|
string_list& dependencies ) const
|
||||||
{
|
{
|
||||||
string dkNkmLibNoFixup = "dk/nkm/lib";
|
string dkNkmLibNoFixup = "dk/nkm/lib";
|
||||||
const vector<File*>& files = module.non_if_data.files;
|
const vector<CompilationUnit*>& compilationUnits = module.non_if_data.compilationUnits;
|
||||||
for ( size_t i = 0; i < files.size (); i++ )
|
for ( size_t i = 0; i < compilationUnits.size (); i++ )
|
||||||
{
|
{
|
||||||
File& file = *files[i];
|
CompilationUnit& compilationUnit = *compilationUnits[i];
|
||||||
string extension = GetExtension ( file.name );
|
string filename = compilationUnit.GetFilename ();
|
||||||
|
string extension = GetExtension ( filename );
|
||||||
if ( extension == ".spec" || extension == ".SPEC" )
|
if ( extension == ".spec" || extension == ".SPEC" )
|
||||||
{
|
GetSpecObjectDependencies ( dependencies, filename );
|
||||||
GetSpecObjectDependencies ( dependencies, file.name );
|
|
||||||
}
|
|
||||||
if ( extension == ".idl" || extension == ".IDL" )
|
if ( extension == ".idl" || extension == ".IDL" )
|
||||||
{
|
GetWidlObjectDependencies ( dependencies, filename );
|
||||||
GetWidlObjectDependencies ( dependencies, file.name );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2176,7 +2170,7 @@ MingwKernelModuleHandler::GenerateKernelModuleTarget ()
|
||||||
|
|
||||||
GenerateImportLibraryTargetIfNeeded ();
|
GenerateImportLibraryTargetIfNeeded ();
|
||||||
|
|
||||||
if ( module.non_if_data.files.size () > 0 )
|
if ( module.non_if_data.compilationUnits.size () > 0 )
|
||||||
{
|
{
|
||||||
GenerateRules ();
|
GenerateRules ();
|
||||||
|
|
||||||
|
@ -2265,7 +2259,7 @@ MingwKernelModeDLLModuleHandler::GenerateKernelModeDLLModuleTarget ()
|
||||||
|
|
||||||
GenerateImportLibraryTargetIfNeeded ();
|
GenerateImportLibraryTargetIfNeeded ();
|
||||||
|
|
||||||
if ( module.non_if_data.files.size () > 0 )
|
if ( module.non_if_data.compilationUnits.size () > 0 )
|
||||||
{
|
{
|
||||||
GenerateRules ();
|
GenerateRules ();
|
||||||
|
|
||||||
|
@ -2313,7 +2307,7 @@ MingwKernelModeDriverModuleHandler::GenerateKernelModeDriverModuleTarget ()
|
||||||
|
|
||||||
GenerateImportLibraryTargetIfNeeded ();
|
GenerateImportLibraryTargetIfNeeded ();
|
||||||
|
|
||||||
if ( module.non_if_data.files.size () > 0 )
|
if ( module.non_if_data.compilationUnits.size () > 0 )
|
||||||
{
|
{
|
||||||
GenerateRules ();
|
GenerateRules ();
|
||||||
|
|
||||||
|
@ -2360,7 +2354,7 @@ MingwNativeDLLModuleHandler::GenerateNativeDLLModuleTarget ()
|
||||||
|
|
||||||
GenerateImportLibraryTargetIfNeeded ();
|
GenerateImportLibraryTargetIfNeeded ();
|
||||||
|
|
||||||
if ( module.non_if_data.files.size () > 0 )
|
if ( module.non_if_data.compilationUnits.size () > 0 )
|
||||||
{
|
{
|
||||||
GenerateRules ();
|
GenerateRules ();
|
||||||
|
|
||||||
|
@ -2407,7 +2401,7 @@ MingwNativeCUIModuleHandler::GenerateNativeCUIModuleTarget ()
|
||||||
|
|
||||||
GenerateImportLibraryTargetIfNeeded ();
|
GenerateImportLibraryTargetIfNeeded ();
|
||||||
|
|
||||||
if ( module.non_if_data.files.size () > 0 )
|
if ( module.non_if_data.compilationUnits.size () > 0 )
|
||||||
{
|
{
|
||||||
GenerateRules ();
|
GenerateRules ();
|
||||||
|
|
||||||
|
@ -2454,7 +2448,7 @@ MingwWin32DLLModuleHandler::GenerateWin32DLLModuleTarget ()
|
||||||
|
|
||||||
GenerateImportLibraryTargetIfNeeded ();
|
GenerateImportLibraryTargetIfNeeded ();
|
||||||
|
|
||||||
if ( module.non_if_data.files.size () > 0 )
|
if ( module.non_if_data.compilationUnits.size () > 0 )
|
||||||
{
|
{
|
||||||
GenerateRules ();
|
GenerateRules ();
|
||||||
|
|
||||||
|
@ -2507,7 +2501,7 @@ MingwWin32CUIModuleHandler::GenerateWin32CUIModuleTarget ()
|
||||||
|
|
||||||
GenerateImportLibraryTargetIfNeeded ();
|
GenerateImportLibraryTargetIfNeeded ();
|
||||||
|
|
||||||
if ( module.non_if_data.files.size () > 0 )
|
if ( module.non_if_data.compilationUnits.size () > 0 )
|
||||||
{
|
{
|
||||||
GenerateRules ();
|
GenerateRules ();
|
||||||
|
|
||||||
|
@ -2560,7 +2554,7 @@ MingwWin32GUIModuleHandler::GenerateWin32GUIModuleTarget ()
|
||||||
|
|
||||||
GenerateImportLibraryTargetIfNeeded ();
|
GenerateImportLibraryTargetIfNeeded ();
|
||||||
|
|
||||||
if ( module.non_if_data.files.size () > 0 )
|
if ( module.non_if_data.compilationUnits.size () > 0 )
|
||||||
{
|
{
|
||||||
GenerateRules ();
|
GenerateRules ();
|
||||||
|
|
||||||
|
@ -3043,12 +3037,12 @@ MingwTestModuleHandler::Process ()
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
MingwTestModuleHandler::GetModuleSpecificSourceFiles ( vector<File*>& sourceFiles )
|
MingwTestModuleHandler::GetModuleSpecificCompilationUnits ( vector<CompilationUnit*>& compilationUnits )
|
||||||
{
|
{
|
||||||
string basePath = "$(INTERMEDIATE)" + sSep + module.GetBasePath ();
|
string basePath = "$(INTERMEDIATE)" + sSep + module.GetBasePath ();
|
||||||
sourceFiles.push_back ( new File ( basePath + sSep + "_hooks.c", false, "", false ) );
|
compilationUnits.push_back ( new CompilationUnit ( new File ( basePath + sSep + "_hooks.c", false, "", false ) ) );
|
||||||
sourceFiles.push_back ( new File ( basePath + sSep + "_stubs.S", false, "", false ) );
|
compilationUnits.push_back ( new CompilationUnit ( new File ( basePath + sSep + "_stubs.S", false, "", false ) ) );
|
||||||
sourceFiles.push_back ( new File ( basePath + sSep + "_startup.c", false, "", false ) );
|
compilationUnits.push_back ( new CompilationUnit ( new File ( basePath + sSep + "_startup.c", false, "", false ) ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -3062,7 +3056,7 @@ MingwTestModuleHandler::GenerateTestModuleTarget ()
|
||||||
|
|
||||||
GenerateImportLibraryTargetIfNeeded ();
|
GenerateImportLibraryTargetIfNeeded ();
|
||||||
|
|
||||||
if ( module.non_if_data.files.size () > 0 )
|
if ( module.non_if_data.compilationUnits.size () > 0 )
|
||||||
{
|
{
|
||||||
GenerateRules ();
|
GenerateRules ();
|
||||||
|
|
||||||
|
|
|
@ -81,7 +81,7 @@ public:
|
||||||
void GenerateDependsTarget () const;
|
void GenerateDependsTarget () const;
|
||||||
static bool ReferenceObjects ( const Module& module );
|
static bool ReferenceObjects ( const Module& module );
|
||||||
protected:
|
protected:
|
||||||
virtual void GetModuleSpecificSourceFiles ( std::vector<File*>& sourceFiles );
|
virtual void GetModuleSpecificCompilationUnits ( std::vector<CompilationUnit*>& compilationUnits );
|
||||||
std::string GetWorkingDirectory () const;
|
std::string GetWorkingDirectory () const;
|
||||||
std::string GetBasename ( const std::string& filename ) const;
|
std::string GetBasename ( const std::string& filename ) const;
|
||||||
std::string GetActualSourceFilename ( const std::string& filename ) const;
|
std::string GetActualSourceFilename ( const std::string& filename ) const;
|
||||||
|
@ -156,16 +156,16 @@ private:
|
||||||
void GenerateWindresCommand ( const std::string& sourceFilename,
|
void GenerateWindresCommand ( const std::string& sourceFilename,
|
||||||
const std::string& windresflagsMacro );
|
const std::string& windresflagsMacro );
|
||||||
void GenerateWinebuildCommands ( const std::string& sourceFilename );
|
void GenerateWinebuildCommands ( const std::string& sourceFilename );
|
||||||
std::string GetWidlFlags ( const File& file );
|
std::string GetWidlFlags ( const CompilationUnit& compilationUnit );
|
||||||
void GenerateWidlCommandsServer (
|
void GenerateWidlCommandsServer (
|
||||||
const File& file,
|
const CompilationUnit& compilationUnit,
|
||||||
const std::string& widlflagsMacro );
|
const std::string& widlflagsMacro );
|
||||||
void GenerateWidlCommandsClient (
|
void GenerateWidlCommandsClient (
|
||||||
const File& file,
|
const CompilationUnit& compilationUnit,
|
||||||
const std::string& widlflagsMacro );
|
const std::string& widlflagsMacro );
|
||||||
void GenerateWidlCommands ( const File& file,
|
void GenerateWidlCommands ( const CompilationUnit& compilationUnit,
|
||||||
const std::string& widlflagsMacro );
|
const std::string& widlflagsMacro );
|
||||||
void GenerateCommands ( const File& file,
|
void GenerateCommands ( const CompilationUnit& compilationUnit,
|
||||||
const std::string& cc,
|
const std::string& cc,
|
||||||
const std::string& cppc,
|
const std::string& cppc,
|
||||||
const std::string& cflagsMacro,
|
const std::string& cflagsMacro,
|
||||||
|
@ -198,7 +198,7 @@ private:
|
||||||
static std::string RemoveVariables ( std::string path);
|
static std::string RemoveVariables ( std::string path);
|
||||||
void GenerateBuildMapCode ();
|
void GenerateBuildMapCode ();
|
||||||
void GenerateBuildNonSymbolStrippedCode ();
|
void GenerateBuildNonSymbolStrippedCode ();
|
||||||
void CleanupFileVector ( std::vector<File*>& sourceFiles );
|
void CleanupCompilationUnitVector ( std::vector<CompilationUnit*>& compilationUnits );
|
||||||
void GetRpcHeaderDependencies ( std::vector<std::string>& dependencies ) const;
|
void GetRpcHeaderDependencies ( std::vector<std::string>& dependencies ) const;
|
||||||
std::string GetRpcServerHeaderFilename ( std::string basename ) const;
|
std::string GetRpcServerHeaderFilename ( std::string basename ) const;
|
||||||
std::string GetRpcClientHeaderFilename ( std::string basename ) const;
|
std::string GetRpcClientHeaderFilename ( std::string basename ) const;
|
||||||
|
@ -420,7 +420,7 @@ public:
|
||||||
virtual HostType DefaultHost() { return HostFalse; }
|
virtual HostType DefaultHost() { return HostFalse; }
|
||||||
virtual void Process ();
|
virtual void Process ();
|
||||||
protected:
|
protected:
|
||||||
virtual void GetModuleSpecificSourceFiles ( std::vector<File*>& sourceFiles );
|
virtual void GetModuleSpecificCompilationUnits ( std::vector<CompilationUnit*>& compilationUnits );
|
||||||
private:
|
private:
|
||||||
void GenerateTestModuleTarget ();
|
void GenerateTestModuleTarget ();
|
||||||
};
|
};
|
||||||
|
|
|
@ -23,9 +23,17 @@
|
||||||
using std::string;
|
using std::string;
|
||||||
using std::vector;
|
using std::vector;
|
||||||
|
|
||||||
CompilationUnit::CompilationUnit ( const Project& project,
|
CompilationUnit::CompilationUnit ( File* file )
|
||||||
|
: project(NULL),
|
||||||
|
module(NULL),
|
||||||
|
node(NULL)
|
||||||
|
{
|
||||||
|
files.push_back ( file );
|
||||||
|
}
|
||||||
|
|
||||||
|
CompilationUnit::CompilationUnit ( const Project* project,
|
||||||
const Module* module,
|
const Module* module,
|
||||||
const XMLElement& node )
|
const XMLElement* node )
|
||||||
: project(project),
|
: project(project),
|
||||||
module(module),
|
module(module),
|
||||||
node(node)
|
node(node)
|
||||||
|
@ -34,9 +42,69 @@ CompilationUnit::CompilationUnit ( const Project& project,
|
||||||
|
|
||||||
CompilationUnit::~CompilationUnit ()
|
CompilationUnit::~CompilationUnit ()
|
||||||
{
|
{
|
||||||
|
size_t i;
|
||||||
|
for ( i = 0; i < files.size (); i++ )
|
||||||
|
delete files[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
CompilationUnit::ProcessXML ()
|
CompilationUnit::ProcessXML ()
|
||||||
{
|
{
|
||||||
|
size_t i;
|
||||||
|
for ( i = 0; i < files.size (); i++ )
|
||||||
|
files[i]->ProcessXML ();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
CompilationUnit::IsGeneratedFile () const
|
||||||
|
{
|
||||||
|
if ( files.size () != 1 )
|
||||||
|
return false;
|
||||||
|
File* file = files[0];
|
||||||
|
string extension = GetExtension ( file->name );
|
||||||
|
return ( extension == ".spec" || extension == ".SPEC" );
|
||||||
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
CompilationUnit::HasFileWithExtension ( const std::string& extension ) const
|
||||||
|
{
|
||||||
|
size_t i;
|
||||||
|
for ( i = 0; i < files.size (); i++ )
|
||||||
|
{
|
||||||
|
File& file = *files[i];
|
||||||
|
string fileExtension = GetExtension ( file.name );
|
||||||
|
if ( !stricmp ( fileExtension.c_str (), extension.c_str () ) )
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
CompilationUnit::IsFirstFile () const
|
||||||
|
{
|
||||||
|
if ( files.size () == 0 || files.size () > 1 )
|
||||||
|
{
|
||||||
|
printf("fs:'%d'\n", files.size ());
|
||||||
|
throw InvalidOperationException ( __FILE__, __LINE__ );
|
||||||
|
}
|
||||||
|
File* file = files[0];
|
||||||
|
return file->first;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string
|
||||||
|
CompilationUnit::GetFilename () const
|
||||||
|
{
|
||||||
|
if ( files.size () == 0 || files.size () > 1 )
|
||||||
|
throw InvalidOperationException ( __FILE__, __LINE__ );
|
||||||
|
File* file = files[0];
|
||||||
|
return file->name;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string
|
||||||
|
CompilationUnit::GetSwitches () const
|
||||||
|
{
|
||||||
|
if ( files.size () == 0 || files.size () > 1 )
|
||||||
|
throw InvalidOperationException ( __FILE__, __LINE__ );
|
||||||
|
File* file = files[0];
|
||||||
|
return file->switches;
|
||||||
}
|
}
|
||||||
|
|
|
@ -182,8 +182,6 @@ GetBooleanValue ( const string& value )
|
||||||
IfableData::~IfableData()
|
IfableData::~IfableData()
|
||||||
{
|
{
|
||||||
size_t i;
|
size_t i;
|
||||||
for ( i = 0; i < files.size (); i++ )
|
|
||||||
delete files[i];
|
|
||||||
for ( i = 0; i < includes.size (); i++ )
|
for ( i = 0; i < includes.size (); i++ )
|
||||||
delete includes[i];
|
delete includes[i];
|
||||||
for ( i = 0; i < defines.size (); i++ )
|
for ( i = 0; i < defines.size (); i++ )
|
||||||
|
@ -203,8 +201,6 @@ IfableData::~IfableData()
|
||||||
void IfableData::ProcessXML ()
|
void IfableData::ProcessXML ()
|
||||||
{
|
{
|
||||||
size_t i;
|
size_t i;
|
||||||
for ( i = 0; i < files.size (); i++ )
|
|
||||||
files[i]->ProcessXML ();
|
|
||||||
for ( i = 0; i < includes.size (); i++ )
|
for ( i = 0; i < includes.size (); i++ )
|
||||||
includes[i]->ProcessXML ();
|
includes[i]->ProcessXML ();
|
||||||
for ( i = 0; i < defines.size (); i++ )
|
for ( i = 0; i < defines.size (); i++ )
|
||||||
|
@ -478,12 +474,20 @@ Module::ProcessXMLSubElement ( const XMLElement& e,
|
||||||
first,
|
first,
|
||||||
switches,
|
switches,
|
||||||
false );
|
false );
|
||||||
|
if ( parseContext.compilationUnit )
|
||||||
|
parseContext.compilationUnit->files.push_back ( pFile );
|
||||||
|
else
|
||||||
|
{
|
||||||
|
CompilationUnit* pCompilationUnit = new CompilationUnit ( pFile );
|
||||||
|
if ( parseContext.ifData )
|
||||||
|
parseContext.ifData->data.compilationUnits.push_back ( pCompilationUnit );
|
||||||
|
else
|
||||||
|
non_if_data.compilationUnits.push_back ( pCompilationUnit );
|
||||||
|
}
|
||||||
if ( parseContext.ifData )
|
if ( parseContext.ifData )
|
||||||
parseContext.ifData->data.files.push_back ( pFile );
|
parseContext.ifData->data.files.push_back ( pFile );
|
||||||
else
|
else
|
||||||
non_if_data.files.push_back ( pFile );
|
non_if_data.files.push_back ( pFile );
|
||||||
if ( parseContext.compilationUnit )
|
|
||||||
parseContext.compilationUnit->files.push_back ( pFile );
|
|
||||||
subs_invalid = true;
|
subs_invalid = true;
|
||||||
}
|
}
|
||||||
else if ( e.name == "library" && e.value.size () )
|
else if ( e.name == "library" && e.value.size () )
|
||||||
|
@ -623,7 +627,7 @@ Module::ProcessXMLSubElement ( const XMLElement& e,
|
||||||
}
|
}
|
||||||
else if ( e.name == "compilationunit" )
|
else if ( e.name == "compilationunit" )
|
||||||
{
|
{
|
||||||
CompilationUnit* pCompilationUnit = new CompilationUnit ( project, this, e );
|
CompilationUnit* pCompilationUnit = new CompilationUnit ( &project, this, &e );
|
||||||
if ( parseContext.ifData )
|
if ( parseContext.ifData )
|
||||||
parseContext.ifData->data.compilationUnits.push_back ( pCompilationUnit );
|
parseContext.ifData->data.compilationUnits.push_back ( pCompilationUnit );
|
||||||
else
|
else
|
||||||
|
@ -925,11 +929,10 @@ Module::HasFileWithExtension (
|
||||||
const std::string& extension ) const
|
const std::string& extension ) const
|
||||||
{
|
{
|
||||||
size_t i;
|
size_t i;
|
||||||
for ( i = 0; i < data.files.size (); i++ )
|
for ( i = 0; i < data.compilationUnits.size (); i++ )
|
||||||
{
|
{
|
||||||
File& file = *data.files[i];
|
CompilationUnit* compilationUnit = data.compilationUnits[i];
|
||||||
string file_ext = GetExtension ( file.name );
|
if ( compilationUnit->HasFileWithExtension ( extension ) )
|
||||||
if ( !stricmp ( file_ext.c_str (), extension.c_str () ) )
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
for ( i = 0; i < data.ifs.size (); i++ )
|
for ( i = 0; i < data.ifs.size (); i++ )
|
||||||
|
@ -971,13 +974,6 @@ File::ProcessXML()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
|
||||||
File::IsGeneratedFile () const
|
|
||||||
{
|
|
||||||
string extension = GetExtension ( name );
|
|
||||||
return ( extension == ".spec" || extension == ".SPEC" );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
Library::Library ( const XMLElement& _node,
|
Library::Library ( const XMLElement& _node,
|
||||||
const Module& _module,
|
const Module& _module,
|
||||||
|
|
|
@ -353,7 +353,6 @@ public:
|
||||||
bool _isPreCompiledHeader );
|
bool _isPreCompiledHeader );
|
||||||
|
|
||||||
void ProcessXML();
|
void ProcessXML();
|
||||||
bool IsGeneratedFile () const;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -788,16 +787,22 @@ private:
|
||||||
class CompilationUnit
|
class CompilationUnit
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
const Project& project;
|
const Project* project;
|
||||||
const Module* module;
|
const Module* module;
|
||||||
const XMLElement& node;
|
const XMLElement* node;
|
||||||
std::vector<File*> files;
|
std::vector<File*> files;
|
||||||
|
|
||||||
CompilationUnit ( const Project& project,
|
CompilationUnit ( File* file );
|
||||||
|
CompilationUnit ( const Project* project,
|
||||||
const Module* module,
|
const Module* module,
|
||||||
const XMLElement& node );
|
const XMLElement* node );
|
||||||
~CompilationUnit ();
|
~CompilationUnit ();
|
||||||
void ProcessXML();
|
void ProcessXML();
|
||||||
|
bool IsGeneratedFile () const;
|
||||||
|
bool HasFileWithExtension ( const std::string& extension ) const;
|
||||||
|
bool IsFirstFile () const;
|
||||||
|
std::string GetFilename () const;
|
||||||
|
std::string GetSwitches () const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -29,8 +29,14 @@ void CompilationUnitTest::Run()
|
||||||
IS_TRUE ( module1.type == BuildTool );
|
IS_TRUE ( module1.type == BuildTool );
|
||||||
|
|
||||||
ARE_EQUAL ( 2, module1.non_if_data.files.size());
|
ARE_EQUAL ( 2, 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 ( 1, module1.non_if_data.compilationUnits.size () );
|
ARE_EQUAL ( 1, module1.non_if_data.compilationUnits.size () );
|
||||||
|
|
||||||
CompilationUnit& compilationUnit1 = *module1.non_if_data.compilationUnits[0];
|
CompilationUnit& compilationUnit1 = *module1.non_if_data.compilationUnits[0];
|
||||||
ARE_EQUAL ( 2, compilationUnit1.files.size () );
|
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 );
|
||||||
}
|
}
|
||||||
|
|
|
@ -294,11 +294,12 @@ TestSupportCode::GetSourceFilenames ( string_list& list,
|
||||||
{
|
{
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
const vector<File*>& files = module.non_if_data.files;
|
const vector<CompilationUnit*>& compilationUnits = module.non_if_data.compilationUnits;
|
||||||
for ( i = 0; i < files.size (); i++ )
|
for ( i = 0; i < compilationUnits.size (); i++ )
|
||||||
{
|
{
|
||||||
if ( !files[i]->IsGeneratedFile () && IsTestFile ( files[i]->name ) )
|
string filename = compilationUnits[i]->GetFilename();
|
||||||
list.push_back ( files[i]->name );
|
if ( !compilationUnits[i]->IsGeneratedFile () && IsTestFile ( filename ) )
|
||||||
|
list.push_back ( filename );
|
||||||
}
|
}
|
||||||
// intentionally make a copy so that we can append more work in
|
// intentionally make a copy so that we can append more work in
|
||||||
// the middle of processing without having to go recursive
|
// the middle of processing without having to go recursive
|
||||||
|
@ -311,14 +312,13 @@ TestSupportCode::GetSourceFilenames ( string_list& list,
|
||||||
const vector<If*>& ifs = rIf.data.ifs;
|
const vector<If*>& ifs = rIf.data.ifs;
|
||||||
for ( j = 0; j < ifs.size (); j++ )
|
for ( j = 0; j < ifs.size (); j++ )
|
||||||
v.push_back ( ifs[j] );
|
v.push_back ( ifs[j] );
|
||||||
const vector<File*>& files = rIf.data.files;
|
const vector<CompilationUnit*>& compilationUnits = rIf.data.compilationUnits;
|
||||||
for ( j = 0; j < files.size (); j++ )
|
for ( j = 0; j < compilationUnits.size (); j++ )
|
||||||
{
|
{
|
||||||
File& file = *files[j];
|
CompilationUnit& compilationUnit = *compilationUnits[j];
|
||||||
if ( !file.IsGeneratedFile () && IsTestFile ( file.name ) )
|
string filename = compilationUnits[j]->GetFilename();
|
||||||
{
|
if ( !compilationUnit.IsGeneratedFile () && IsTestFile ( filename ) )
|
||||||
list.push_back ( file.name );
|
list.push_back ( filename );
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue