more efficient detection of C++ modules, fixed bug in C++ pch support, always clean...
[reactos.git] / reactos / tools / rbuild / backend / mingw / modulehandler.cpp
index 7656034..90bd48e 100644 (file)
@@ -1056,24 +1056,27 @@ MingwModuleHandler::GenerateObjectFileTargets (
        const string& windresflagsMacro,\r
        string_list& clean_files ) const\r
 {\r
        const string& windresflagsMacro,\r
        string_list& clean_files ) const\r
 {\r
-       if ( module.pch && use_pch )\r
+       if ( module.pch )\r
        {\r
                const string& pch_file = module.pch->header;\r
                string gch_file = pch_file + ".gch";\r
                CLEAN_FILE(gch_file);\r
        {\r
                const string& pch_file = module.pch->header;\r
                string gch_file = pch_file + ".gch";\r
                CLEAN_FILE(gch_file);\r
-               fprintf (\r
-                       fMakefile,\r
-                       "%s: %s\n",\r
-                       gch_file.c_str(),\r
-                       pch_file.c_str() );\r
-               fprintf ( fMakefile, "\t$(ECHO_PCH)\n" );\r
-               fprintf (\r
-                       fMakefile,\r
-                       "\t%s -c %s -o %s %s\n\n",\r
-                       cc.c_str(),\r
-                       pch_file.c_str(),\r
-                       gch_file.c_str(),\r
-                       cflagsMacro.c_str() );\r
+               if ( use_pch )\r
+               {\r
+                       fprintf (\r
+                               fMakefile,\r
+                               "%s: %s\n",\r
+                               gch_file.c_str(),\r
+                               pch_file.c_str() );\r
+                       fprintf ( fMakefile, "\t$(ECHO_PCH)\n" );\r
+                       fprintf (\r
+                               fMakefile,\r
+                               "\t%s -o %s %s -g %s\n\n",\r
+                               ( module.cplusplus ? cppc.c_str() : cc.c_str() ),\r
+                               gch_file.c_str(),\r
+                               cflagsMacro.c_str(),\r
+                               pch_file.c_str() );\r
+               }\r
        }\r
 \r
        GenerateObjectFileTargets ( module,\r
        }\r
 \r
        GenerateObjectFileTargets ( module,\r
@@ -1456,18 +1459,10 @@ MingwModuleHandler::GetDefinitionDependencies ( const Module& module ) const
        return dependencies;\r
 }\r
 \r
        return dependencies;\r
 }\r
 \r
-// TODO FIXME - check for C++ extensions when parsing XML, and set a\r
-// bool in the Module class\r
 bool\r
 MingwModuleHandler::IsCPlusPlusModule ( const Module& module ) const\r
 {\r
 bool\r
 MingwModuleHandler::IsCPlusPlusModule ( const Module& module ) const\r
 {\r
-       if ( module.HasFileWithExtension ( module.non_if_data, ".cc" ) )\r
-               return true;\r
-       if ( module.HasFileWithExtension ( module.non_if_data, ".cxx" ) )\r
-               return true;\r
-       if ( module.HasFileWithExtension ( module.non_if_data, ".cpp" ) )\r
-               return true;\r
-       return false;\r
+       return module.cplusplus;\r
 }\r
 \r
 \r
 }\r
 \r
 \r