Author: hpoussin Date: Sun Jun 29 07:42:11 2008 New Revision: 34186
URL: http://svn.reactos.org/svn/reactos?rev=34186&view=rev Log: Add an option to disable precompiled headers
Modified: trunk/reactos/Makefile trunk/reactos/tools/rbuild/backend/mingw/mingw.cpp trunk/reactos/tools/rbuild/configuration.cpp trunk/reactos/tools/rbuild/rbuild.cpp trunk/reactos/tools/rbuild/rbuild.h
Modified: trunk/reactos/Makefile URL: http://svn.reactos.org/svn/reactos/trunk/reactos/Makefile?rev=34186&r1=3... ============================================================================== --- trunk/reactos/Makefile [iso-8859-1] (original) +++ trunk/reactos/Makefile [iso-8859-1] Sun Jun 29 07:42:11 2008 @@ -118,6 +118,7 @@ # -c Clean as you go. Delete generated files as soon as they are not needed anymore. # -dd Disable automatic dependencies. # -dm{module} Check only automatic dependencies for this module. +# -hd Disable precompiled headers. # -mi Let make handle creation of install directories. Rbuild will not generate the directories. # -ps Generate proxy makefiles in source tree instead of the output tree. # -ud Disable compilation units.
Modified: trunk/reactos/tools/rbuild/backend/mingw/mingw.cpp URL: http://svn.reactos.org/svn/reactos/trunk/reactos/tools/rbuild/backend/mingw/... ============================================================================== --- trunk/reactos/tools/rbuild/backend/mingw/mingw.cpp [iso-8859-1] (original) +++ trunk/reactos/tools/rbuild/backend/mingw/mingw.cpp [iso-8859-1] Sun Jun 29 07:42:11 2008 @@ -1074,30 +1074,38 @@ { printf ( "Detecting compiler pre-compiled header support..." );
- string path = "tools" + sSep + "rbuild" + sSep + "backend" + sSep + "mingw" + sSep + "pch_detection.h"; - string cmd = ssprintf ( - "%s -c %s 1>%s 2>%s", - FixSeparatorForSystemCommand(compilerCommand).c_str (), - path.c_str (), - NUL, - NUL ); - system ( cmd.c_str () ); - path += ".gch"; - - FILE* f = fopen ( path.c_str (), "rb" ); - if ( f ) - { - use_pch = true; - fclose ( f ); - unlink ( path.c_str () ); + if ( configuration.PrecompiledHeadersEnabled ) + { + string path = "tools" + sSep + "rbuild" + sSep + "backend" + sSep + "mingw" + sSep + "pch_detection.h"; + string cmd = ssprintf ( + "%s -c %s 1>%s 2>%s", + FixSeparatorForSystemCommand(compilerCommand).c_str (), + path.c_str (), + NUL, + NUL ); + system ( cmd.c_str () ); + path += ".gch"; + + FILE* f = fopen ( path.c_str (), "rb" ); + if ( f ) + { + use_pch = true; + fclose ( f ); + unlink ( path.c_str () ); + } + else + use_pch = false; + + if ( use_pch ) + printf ( "detected\n" ); + else + printf ( "not detected\n" ); } else + { use_pch = false; - - if ( use_pch ) - printf ( "detected\n" ); - else - printf ( "not detected\n" ); + printf ( "disabled\n" ); + } }
void
Modified: trunk/reactos/tools/rbuild/configuration.cpp URL: http://svn.reactos.org/svn/reactos/trunk/reactos/tools/rbuild/configuration.... ============================================================================== --- trunk/reactos/tools/rbuild/configuration.cpp [iso-8859-1] (original) +++ trunk/reactos/tools/rbuild/configuration.cpp [iso-8859-1] Sun Jun 29 07:42:11 2008 @@ -27,6 +27,7 @@ AutomaticDependencies = true; CheckDependenciesForModuleOnly = false; CompilationUnitsEnabled = true; + PrecompiledHeadersEnabled = true; MakeHandlesInstallDirectories = false; GenerateProxyMakefilesInSourceTree = false; InstallFiles = false;
Modified: trunk/reactos/tools/rbuild/rbuild.cpp URL: http://svn.reactos.org/svn/reactos/trunk/reactos/tools/rbuild/rbuild.cpp?rev... ============================================================================== --- trunk/reactos/tools/rbuild/rbuild.cpp [iso-8859-1] (original) +++ trunk/reactos/tools/rbuild/rbuild.cpp [iso-8859-1] Sun Jun 29 07:42:11 2008 @@ -83,6 +83,24 @@ }
bool +ParsePrecompiledHeaderSwitch ( + char switchChar2, + char* switchStart ) +{ + switch ( switchChar2 ) + { + case 'd': + configuration.PrecompiledHeadersEnabled = false; + break; + default: + printf ( "Unknown switch -h%c\n", + switchChar2 ); + return false; + } + return true; +} + +bool ParseVCProjectSwitch ( char switchChar2, char* switchStart ) @@ -214,6 +232,11 @@ return ParseAutomaticDependencySwitch ( switchChar2, argv[index] ); + case 'h': + return ParsePrecompiledHeaderSwitch ( + switchChar2, + argv[index] ); + case 'u': return ParseCompilationUnitSwitch ( switchChar2,
Modified: trunk/reactos/tools/rbuild/rbuild.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/tools/rbuild/rbuild.h?rev=3... ============================================================================== --- trunk/reactos/tools/rbuild/rbuild.h [iso-8859-1] (original) +++ trunk/reactos/tools/rbuild/rbuild.h [iso-8859-1] Sun Jun 29 07:42:11 2008 @@ -160,6 +160,7 @@ bool AutomaticDependencies; bool CheckDependenciesForModuleOnly; bool CompilationUnitsEnabled; + bool PrecompiledHeadersEnabled; std::string CheckDependenciesForModuleOnlyModule; std::string VSProjectVersion; std::string VSConfigurationType;