Merge 14551:14980 from trunk
[reactos.git] / reactos / tools / rbuild / backend / mingw / modulehandler.cpp
index d18cf9e..a8c0c49 100644 (file)
@@ -949,15 +949,21 @@ MingwModuleHandler::GenerateWinebuildCommands (
                  stub_file.c_str () );\r
 }\r
 \r
+string\r
+MingwModuleHandler::GetWidlFlags ( const File& file )\r
+{\r
+       return file.switches;\r
+}\r
+               \r
 void\r
 MingwModuleHandler::GenerateWidlCommandsServer (\r
-       const string& sourceFilename,\r
+       const File& file,\r
        const string& widlflagsMacro )\r
 {\r
-       string dependencies = sourceFilename;\r
+       string dependencies = file.name;\r
        dependencies += " " + NormalizeFilename ( module.xmlbuildFile );\r
 \r
-       string basename = GetBasename ( sourceFilename );\r
+       string basename = GetBasename ( file.name );\r
 \r
        /*string generatedHeaderFilename = PassThruCacheDirectory (\r
                basename + ".h",\r
@@ -980,23 +986,24 @@ MingwModuleHandler::GenerateWidlCommandsServer (
                  GetDirectory ( generatedServerFilename ).c_str () );\r
        fprintf ( fMakefile, "\t$(ECHO_WIDL)\n" );\r
        fprintf ( fMakefile,\r
-                 "\t%s %s -h -H %s -s -S %s %s\n",\r
+                 "\t%s %s %s -h -H %s -s -S %s %s\n",\r
                  "$(Q)$(WIDL_TARGET)",\r
+                 GetWidlFlags ( file ).c_str (),\r
                  widlflagsMacro.c_str (),\r
                  generatedHeaderFilename.c_str (),\r
                  generatedServerFilename.c_str (),\r
-                 sourceFilename.c_str () );\r
+                 file.name.c_str () );\r
 }\r
 \r
 void\r
 MingwModuleHandler::GenerateWidlCommandsClient (\r
-       const string& sourceFilename,\r
+       const File& file,\r
        const string& widlflagsMacro )\r
 {\r
-       string dependencies = sourceFilename;\r
+       string dependencies = file.name;\r
        dependencies += " " + NormalizeFilename ( module.xmlbuildFile );\r
 \r
-       string basename = GetBasename ( sourceFilename );\r
+       string basename = GetBasename ( file.name );\r
 \r
        /*string generatedHeaderFilename = PassThruCacheDirectory (\r
                basename + ".h",\r
@@ -1019,30 +1026,31 @@ MingwModuleHandler::GenerateWidlCommandsClient (
                  GetDirectory ( generatedClientFilename ).c_str () );\r
        fprintf ( fMakefile, "\t$(ECHO_WIDL)\n" );\r
        fprintf ( fMakefile,\r
-                 "\t%s %s -h -H %s -c -C %s %s\n",\r
+                 "\t%s %s %s -h -H %s -c -C %s %s\n",\r
                  "$(Q)$(WIDL_TARGET)",\r
+                 GetWidlFlags ( file ).c_str (),\r
                  widlflagsMacro.c_str (),\r
                  generatedHeaderFilename.c_str (),\r
                  generatedClientFilename.c_str (),\r
-                 sourceFilename.c_str () );\r
+                 file.name.c_str () );\r
 }\r
 \r
 void\r
 MingwModuleHandler::GenerateWidlCommands (\r
-       const string& sourceFilename,\r
+       const File& file,\r
        const string& widlflagsMacro )\r
 {\r
        if ( module.type == RpcServer )\r
-               GenerateWidlCommandsServer ( sourceFilename,\r
+               GenerateWidlCommandsServer ( file,\r
                                             widlflagsMacro );\r
        else\r
-               GenerateWidlCommandsClient ( sourceFilename,\r
+               GenerateWidlCommandsClient ( file,\r
                                             widlflagsMacro );\r
 }\r
 \r
 void\r
 MingwModuleHandler::GenerateCommands (\r
-       const string& sourceFilename,\r
+       const File& file,\r
        const string& cc,\r
        const string& cppc,\r
        const string& cflagsMacro,\r
@@ -1050,10 +1058,10 @@ MingwModuleHandler::GenerateCommands (
        const string& windresflagsMacro,\r
        const string& widlflagsMacro )\r
 {\r
-       string extension = GetExtension ( sourceFilename );\r
+       string extension = GetExtension ( file.name );\r
        if ( extension == ".c" || extension == ".C" )\r
        {\r
-               GenerateGccCommand ( sourceFilename,\r
+               GenerateGccCommand ( file.name,\r
                                     cc,\r
                                     cflagsMacro );\r
                return;\r
@@ -1062,43 +1070,43 @@ MingwModuleHandler::GenerateCommands (
                  extension == ".cpp" || extension == ".CPP" ||\r
                  extension == ".cxx" || extension == ".CXX" )\r
        {\r
-               GenerateGccCommand ( sourceFilename,\r
+               GenerateGccCommand ( file.name,\r
                                     cppc,\r
                                     cflagsMacro );\r
                return;\r
        }\r
        else if ( extension == ".s" || extension == ".S" )\r
        {\r
-               GenerateGccAssemblerCommand ( sourceFilename,\r
+               GenerateGccAssemblerCommand ( file.name,\r
                                              cc,\r
                                              cflagsMacro );\r
                return;\r
        }\r
        else if ( extension == ".asm" || extension == ".ASM" )\r
        {\r
-               GenerateNasmCommand ( sourceFilename,\r
+               GenerateNasmCommand ( file.name,\r
                                      nasmflagsMacro );\r
                return;\r
        }\r
        else if ( extension == ".rc" || extension == ".RC" )\r
        {\r
-               GenerateWindresCommand ( sourceFilename,\r
+               GenerateWindresCommand ( file.name,\r
                                         windresflagsMacro );\r
                return;\r
        }\r
        else if ( extension == ".spec" || extension == ".SPEC" )\r
        {\r
-               GenerateWinebuildCommands ( sourceFilename );\r
-               GenerateGccCommand ( GetActualSourceFilename ( sourceFilename ),\r
+               GenerateWinebuildCommands ( file.name );\r
+               GenerateGccCommand ( GetActualSourceFilename ( file.name ),\r
                                     cc,\r
                                     cflagsMacro );\r
                return;\r
        }\r
        else if ( extension == ".idl" || extension == ".IDL" )\r
        {\r
-               GenerateWidlCommands ( sourceFilename,\r
+               GenerateWidlCommands ( file,\r
                                       widlflagsMacro );\r
-               GenerateGccCommand ( GetActualSourceFilename ( sourceFilename ),\r
+               GenerateGccCommand ( GetActualSourceFilename ( file.name ),\r
                                     cc,\r
                                     cflagsMacro );\r
                return;\r
@@ -1108,7 +1116,7 @@ MingwModuleHandler::GenerateCommands (
                                          __LINE__,\r
                                          "Unsupported filename extension '%s' in file '%s'",\r
                                          extension.c_str (),\r
-                                         sourceFilename.c_str () );\r
+                                         file.name.c_str () );\r
 }\r
 \r
 void\r
@@ -1349,8 +1357,7 @@ MingwModuleHandler::GenerateObjectFileTargets (
        const vector<File*>& files = data.files;\r
        for ( i = 0; i < files.size (); i++ )\r
        {\r
-               string sourceFilename = files[i]->name;\r
-               GenerateCommands ( sourceFilename,\r
+               GenerateCommands ( *files[i],\r
                                   cc,\r
                                   cppc,\r
                                   cflagsMacro,\r