Depend on generated RPC headers
Modified:
branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler
.cpp
Modified:
branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler
.h
_____
Modified:
branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler
.cpp
---
branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler
.cpp 2005-05-15 23:24:11 UTC (rev 15326)
+++
branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler
.cpp 2005-05-15 23:43:28 UTC (rev 15327)
@@ -1003,6 +1003,12 @@
{
return file.switches;
}
+
+string
+MingwModuleHandler::GetRpcServerHeaderFilename ( string basename )
const
+{
+ return basename + "_s.h";
+}
void
MingwModuleHandler::GenerateWidlCommandsServer (
@@ -1019,7 +1025,7 @@
backend->intermediateDirectory );
CLEAN_FILE(generatedHeaderFilename);
*/
- string generatedHeaderFilename = basename + "_s.h";
+ string generatedHeaderFilename = GetRpcServerHeaderFilename (
basename );
CLEAN_FILE(generatedHeaderFilename);
string generatedServerFilename = PassThruCacheDirectory (
@@ -1044,6 +1050,12 @@
file.name.c_str () );
}
+string
+MingwModuleHandler::GetRpcClientHeaderFilename ( string basename )
const
+{
+ return basename + "_c.h";
+}
+
void
MingwModuleHandler::GenerateWidlCommandsClient (
const File& file,
@@ -1059,7 +1071,7 @@
backend->intermediateDirectory );
CLEAN_FILE(generatedHeaderFilename);
*/
- string generatedHeaderFilename = basename + "_c.h";
+ string generatedHeaderFilename = GetRpcClientHeaderFilename (
basename );
CLEAN_FILE(generatedHeaderFilename);
string generatedClientFilename = PassThruCacheDirectory (
@@ -1582,6 +1594,34 @@
}
void
+MingwModuleHandler::GetRpcHeaderDependencies (
+ string_list& dependencies ) const
+{
+ for ( size_t i = 0; i < module.non_if_data.libraries.size ();
i++ )
+ {
+ Library& library = *module.non_if_data.libraries[i];
+ if ( library.imported_module->type == RpcServer ||
+ library.imported_module->type == RpcClient )
+ {
+
+ for ( size_t j = 0; j <
library.imported_module->non_if_data.files.size (); j++ )
+ {
+ File& file =
*library.imported_module->non_if_data.files[j];
+ string extension = GetExtension (
file.name );
+ if ( extension == ".idl" || extension ==
".IDL" )
+ {
+ string basename = GetBasename (
file.name );
+ if (
library.imported_module->type == RpcServer )
+ dependencies.push_back (
GetRpcServerHeaderFilename ( basename ) );
+ if (
library.imported_module->type == RpcClient )
+ dependencies.push_back (
GetRpcClientHeaderFilename ( basename ) );
+ }
+ }
+ }
+ }
+}
+
+void
MingwModuleHandler::GenerateOtherMacros ()
{
cflagsMacro = ssprintf ("%s_CFLAGS", module.name.c_str ());
@@ -1597,9 +1637,9 @@
module.non_if_data,
&module.linkerFlags );
+ string_list s;
if ( module.importLibrary )
{
- string_list s;
const vector<File*>& files = module.non_if_data.files;
for ( size_t i = 0; i < files.size (); i++ )
{
@@ -1608,19 +1648,20 @@
if ( extension == ".spec" || extension ==
".SPEC" )
GetSpecObjectDependencies ( s, file.name
);
}
- if ( s.size () > 0 )
- {
- fprintf (
- fMakefile,
- "%s +=",
- linkDepsMacro.c_str() );
- for ( size_t i = 0; i < s.size(); i++ )
- fprintf ( fMakefile,
- " %s",
- s[i].c_str () );
- fprintf ( fMakefile, "\n" );
- }
}
+ GetRpcHeaderDependencies ( s );
+ if ( s.size () > 0 )
+ {
+ fprintf (
+ fMakefile,
+ "%s +=",
+ linkDepsMacro.c_str() );
+ for ( size_t i = 0; i < s.size(); i++ )
+ fprintf ( fMakefile,
+ " %s",
+ s[i].c_str () );
+ fprintf ( fMakefile, "\n" );
+ }
string globalCflags = "-g";
if ( backend->usePipe )
_____
Modified:
branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler
.h
---
branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler
.h 2005-05-15 23:24:11 UTC (rev 15326)
+++
branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler
.h 2005-05-15 23:43:28 UTC (rev 15327)
@@ -177,6 +177,9 @@
void GenerateBuildMapCode ();
void GenerateBuildNonSymbolStrippedCode ();
void CleanupFileVector ( std::vector<File*>& sourceFiles );
+ void GetRpcHeaderDependencies ( string_list& dependencies )
const;
+ std::string GetRpcServerHeaderFilename ( std::string basename )
const;
+ std::string GetRpcClientHeaderFilename ( std::string basename )
const;
public:
const Module& module;
string_list clean_files;