void\r
MingwBackend::Process ()\r
{\r
+ DetectPCHSupport();\r
+\r
CreateMakefile ();\r
GenerateHeader ();\r
GenerateGlobalVariables ();\r
{\r
return string("$(ROS_INTERMEDIATE)") + NormalizeFilename ( targetFilename );\r
}\r
+\r
+void\r
+MingwBackend::DetectPCHSupport()\r
+{\r
+ string path = "tools" SSEP "rbuild" SSEP "backend" SSEP "mingw" SSEP "pch_detection.h";\r
+ system ( ssprintf("gcc -c %s", path.c_str()).c_str() );\r
+ path += ".gch";\r
+ {\r
+ FILE* f = fopen ( path.c_str(), "rb" );\r
+ if ( f )\r
+ {\r
+ use_pch = true;\r
+ fclose(f);\r
+ unlink ( path.c_str() );\r
+ }\r
+ else\r
+ use_pch = false;\r
+ }\r
+ // TODO FIXME - eventually check for ROS_USE_PCH env var and\r
+ // allow that to override use_pch if true\r
+}\r
void GenerateInitTarget () const;\r
void GenerateXmlBuildFilesMacro() const;\r
void CheckAutomaticDependencies ();\r
+ void DetectPCHSupport();\r
+\r
FILE* fMakefile;\r
+ bool use_pch;\r
};\r
\r
std::string FixupTargetFilename ( const std::string& targetFilename );\r