Add a Module argument to GetObjectFilename()

Fix a typo when a define in incorrectly overridden

svn path=/trunk/; revision=30181
This commit is contained in:
Hervé Poussineau 2007-11-05 15:57:06 +00:00
parent a6cd1d84e7
commit c42e45b512
2 changed files with 15 additions and 13 deletions

View file

@ -395,7 +395,7 @@ MingwModuleHandler::GetImportLibraryDependency (
for ( i = 0; i < compilationUnits.size (); i++ ) for ( i = 0; i < compilationUnits.size (); i++ )
{ {
CompilationUnit& compilationUnit = *compilationUnits[i]; CompilationUnit& compilationUnit = *compilationUnits[i];
const FileLocation *objectFilename = GetObjectFilename ( compilationUnit.GetFilename (), NULL ); const FileLocation *objectFilename = GetObjectFilename ( compilationUnit.GetFilename (), importedModule, NULL );
if ( GetExtension ( *objectFilename ) == ".h" ) if ( GetExtension ( *objectFilename ) == ".h" )
{ {
dep += ssprintf ( " $(%s_HEADERS)", importedModule.name.c_str () ); dep += ssprintf ( " $(%s_HEADERS)", importedModule.name.c_str () );
@ -500,6 +500,7 @@ MingwModuleHandler::GetSourceFilenamesWithoutGeneratedFiles (
const FileLocation* const FileLocation*
MingwModuleHandler::GetObjectFilename ( MingwModuleHandler::GetObjectFilename (
const FileLocation* sourceFile, const FileLocation* sourceFile,
const Module& module,
string_list* pclean_files ) const string_list* pclean_files ) const
{ {
DirectoryLocation destination_directory; DirectoryLocation destination_directory;
@ -621,7 +622,7 @@ MingwModuleHandler::GetObjectFilenames ()
{ {
if ( objectFilenames.size () > 0 ) if ( objectFilenames.size () > 0 )
objectFilenames += " "; objectFilenames += " ";
objectFilenames += backend->GetFullName ( *GetObjectFilename ( compilationUnits[i]->GetFilename (), NULL ) ); objectFilenames += backend->GetFullName ( *GetObjectFilename ( compilationUnits[i]->GetFilename (), module, NULL ) );
} }
return objectFilenames; return objectFilenames;
} }
@ -825,11 +826,11 @@ MingwModuleHandler::GenerateMacro (
continue; continue;
if ( !define.overridable ) if ( !define.overridable )
{ {
throw InvalidOperationException ( define.node->location.c_str (), throw InvalidOperationException ( (*last_define)->node->location.c_str (),
0, 0,
"Invalid override of define '%s', already defined at %s", "Invalid override of define '%s', already defined at %s",
define.name.c_str (), define.name.c_str (),
(*last_define)->node->location.c_str () ); define.node->location.c_str () );
} }
if ( backend->configuration.Verbose ) if ( backend->configuration.Verbose )
printf("%s: Overriding '%s' already defined at %s\n", printf("%s: Overriding '%s' already defined at %s\n",
@ -1033,7 +1034,7 @@ MingwModuleHandler::GenerateObjectMacros (
fprintf ( fMakefile, fprintf ( fMakefile,
"%s := %s $(%s)\n", "%s := %s $(%s)\n",
objectsMacro.c_str(), objectsMacro.c_str(),
backend->GetFullName ( *GetObjectFilename ( compilationUnit.GetFilename (), NULL ) ).c_str (), backend->GetFullName ( *GetObjectFilename ( compilationUnit.GetFilename (), module, NULL ) ).c_str (),
objectsMacro.c_str() ); objectsMacro.c_str() );
} }
} }
@ -1047,7 +1048,7 @@ MingwModuleHandler::GenerateObjectMacros (
CompilationUnit& compilationUnit = *compilationUnits[i]; CompilationUnit& compilationUnit = *compilationUnits[i];
if ( !compilationUnit.IsFirstFile () ) if ( !compilationUnit.IsFirstFile () )
{ {
const FileLocation *objectFilename = GetObjectFilename ( compilationUnit.GetFilename (), NULL ); const FileLocation *objectFilename = GetObjectFilename ( compilationUnit.GetFilename (), module, NULL );
if ( GetExtension ( *objectFilename ) == ".h" ) if ( GetExtension ( *objectFilename ) == ".h" )
headers.push_back ( objectFilename ); headers.push_back ( objectFilename );
else else
@ -1110,7 +1111,7 @@ MingwModuleHandler::GenerateObjectMacros (
fMakefile, fMakefile,
"%s += %s\n", "%s += %s\n",
objectsMacro.c_str(), objectsMacro.c_str(),
backend->GetFullName ( *GetObjectFilename ( sourceCompilationUnits[i]->GetFilename (), NULL ) ).c_str () ); backend->GetFullName ( *GetObjectFilename ( sourceCompilationUnits[i]->GetFilename (), module, NULL ) ).c_str () );
} }
CleanupCompilationUnitVector ( sourceCompilationUnits ); CleanupCompilationUnitVector ( sourceCompilationUnits );
} }
@ -1144,7 +1145,7 @@ MingwModuleHandler::GenerateGccCommand (
dependencies += " " + NormalizeFilename ( module.xmlbuildFile ); dependencies += " " + NormalizeFilename ( module.xmlbuildFile );
const FileLocation *objectFilename = GetObjectFilename ( const FileLocation *objectFilename = GetObjectFilename (
sourceFile, &clean_files ); sourceFile, module, &clean_files );
fprintf ( fMakefile, fprintf ( fMakefile,
"%s: %s | %s\n", "%s: %s | %s\n",
backend->GetFullName ( *objectFilename ).c_str (), backend->GetFullName ( *objectFilename ).c_str (),
@ -1167,7 +1168,7 @@ MingwModuleHandler::GenerateGccAssemblerCommand (
dependencies += " " + NormalizeFilename ( module.xmlbuildFile ); dependencies += " " + NormalizeFilename ( module.xmlbuildFile );
const FileLocation *objectFilename = GetObjectFilename ( const FileLocation *objectFilename = GetObjectFilename (
sourceFile, &clean_files ); sourceFile, module, &clean_files );
fprintf ( fMakefile, fprintf ( fMakefile,
"%s: %s | %s\n", "%s: %s | %s\n",
backend->GetFullName ( *objectFilename ).c_str (), backend->GetFullName ( *objectFilename ).c_str (),
@ -1189,7 +1190,7 @@ MingwModuleHandler::GenerateNasmCommand (
dependencies += " " + NormalizeFilename ( module.xmlbuildFile ); dependencies += " " + NormalizeFilename ( module.xmlbuildFile );
const FileLocation *objectFilename = GetObjectFilename ( const FileLocation *objectFilename = GetObjectFilename (
sourceFile, &clean_files ); sourceFile, module, &clean_files );
fprintf ( fMakefile, fprintf ( fMakefile,
"%s: %s | %s\n", "%s: %s | %s\n",
backend->GetFullName ( *objectFilename ).c_str (), backend->GetFullName ( *objectFilename ).c_str (),
@ -1210,7 +1211,7 @@ MingwModuleHandler::GenerateWindresCommand (
string dependencies = backend->GetFullName ( *sourceFile ); string dependencies = backend->GetFullName ( *sourceFile );
dependencies += " " + NormalizeFilename ( module.xmlbuildFile ); dependencies += " " + NormalizeFilename ( module.xmlbuildFile );
const FileLocation *objectFilename = GetObjectFilename ( sourceFile, &clean_files ); const FileLocation *objectFilename = GetObjectFilename ( sourceFile, module, &clean_files );
string sourceFilenamePart = module.name + "." + ReplaceExtension ( sourceFile->name, "" ); string sourceFilenamePart = module.name + "." + ReplaceExtension ( sourceFile->name, "" );
FileLocation rciFilename ( TemporaryDirectory, FileLocation rciFilename ( TemporaryDirectory,
@ -1642,7 +1643,7 @@ MingwModuleHandler::GetObjectsVector ( const IfableData& data,
for ( size_t i = 0; i < data.compilationUnits.size (); i++ ) for ( size_t i = 0; i < data.compilationUnits.size (); i++ )
{ {
CompilationUnit& compilationUnit = *data.compilationUnits[i]; CompilationUnit& compilationUnit = *data.compilationUnits[i];
objectFiles.push_back ( *GetObjectFilename ( compilationUnit.GetFilename (), NULL ) ); objectFiles.push_back ( *GetObjectFilename ( compilationUnit.GetFilename (), module, NULL ) );
} }
} }
@ -1819,7 +1820,7 @@ MingwModuleHandler::GenerateObjectFileTargets (
for ( i = 0; i < compilationUnits.size (); i++ ) for ( i = 0; i < compilationUnits.size (); i++ )
{ {
CompilationUnit& compilationUnit = *compilationUnits[i]; CompilationUnit& compilationUnit = *compilationUnits[i];
const FileLocation *objectFilename = GetObjectFilename ( compilationUnit.GetFilename (), NULL ); const FileLocation *objectFilename = GetObjectFilename ( compilationUnit.GetFilename (), module, NULL );
if ( GetExtension ( *objectFilename ) == ".h" ) if ( GetExtension ( *objectFilename ) == ".h" )
{ {
moduleDependencies = ssprintf ( " $(%s_HEADERS)", module.name.c_str () ); moduleDependencies = ssprintf ( " $(%s_HEADERS)", module.name.c_str () );

View file

@ -97,6 +97,7 @@ protected:
bool includeGeneratedFiles ) const; bool includeGeneratedFiles ) const;
void GetSourceFilenamesWithoutGeneratedFiles ( std::vector<FileLocation>& list ) const; void GetSourceFilenamesWithoutGeneratedFiles ( std::vector<FileLocation>& list ) const;
const FileLocation* GetObjectFilename ( const FileLocation* sourceFile, const FileLocation* GetObjectFilename ( const FileLocation* sourceFile,
const Module& module,
string_list* pclean_files ) const; string_list* pclean_files ) const;
std::string GetObjectFilenames (); std::string GetObjectFilenames ();