Add headers dependencies for modules which declare a .idl in their rbuild file

svn path=/trunk/; revision=29185
This commit is contained in:
Hervé Poussineau 2007-09-24 12:53:33 +00:00
parent 9fea5a34a6
commit 7e0ebf1fc6
2 changed files with 19 additions and 3 deletions

View file

@ -1364,6 +1364,7 @@ MingwModuleHandler::GenerateWidlCommands (
void
MingwModuleHandler::GenerateCommands (
const CompilationUnit& compilationUnit,
const string& extraDependencies,
const string& cc,
const string& cppc,
const string& cflagsMacro,
@ -1376,7 +1377,7 @@ MingwModuleHandler::GenerateCommands (
if ( extension == ".c" || extension == ".C" )
{
GenerateGccCommand ( sourceFile,
GetCompilationUnitDependencies ( compilationUnit ),
GetCompilationUnitDependencies ( compilationUnit ) + extraDependencies,
cc,
cflagsMacro );
return;
@ -1386,7 +1387,7 @@ MingwModuleHandler::GenerateCommands (
extension == ".cxx" || extension == ".CXX" )
{
GenerateGccCommand ( sourceFile,
GetCompilationUnitDependencies ( compilationUnit ),
GetCompilationUnitDependencies ( compilationUnit ) + extraDependencies,
cppc,
cflagsMacro );
return;
@ -1414,7 +1415,7 @@ MingwModuleHandler::GenerateCommands (
{
GenerateWinebuildCommands ( sourceFile );
GenerateGccCommand ( GetActualSourceFilename ( sourceFile ),
"",
extraDependencies,
cc,
cflagsMacro );
return;
@ -1696,11 +1697,24 @@ MingwModuleHandler::GenerateObjectFileTargets (
const string& widlflagsMacro )
{
size_t i;
string moduleDependencies;
const vector<CompilationUnit*>& compilationUnits = data.compilationUnits;
for ( i = 0; i < compilationUnits.size (); i++ )
{
CompilationUnit& compilationUnit = *compilationUnits[i];
const FileLocation *objectFilename = GetObjectFilename ( compilationUnit.GetFilename (), NULL );
if ( GetExtension ( *objectFilename ) == ".h" )
{
moduleDependencies = ssprintf ( " $(%s_HEADERS)", module.name.c_str () );
break;
}
}
for ( i = 0; i < compilationUnits.size (); i++ )
{
GenerateCommands ( *compilationUnits[i],
moduleDependencies,
cc,
cppc,
cflagsMacro,
@ -1728,6 +1742,7 @@ MingwModuleHandler::GenerateObjectFileTargets (
for ( i = 0; i < sourceCompilationUnits.size (); i++ )
{
GenerateCommands ( *sourceCompilationUnits[i],
moduleDependencies,
cc,
cppc,
cflagsMacro,

View file

@ -174,6 +174,7 @@ private:
void GenerateWidlCommands ( const CompilationUnit& compilationUnit,
const std::string& widlflagsMacro );
void GenerateCommands ( const CompilationUnit& compilationUnit,
const std::string& extraDependencies,
const std::string& cc,
const std::string& cppc,
const std::string& cflagsMacro,