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=…
==============================================================================
--- 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?re…
==============================================================================
--- 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=…
==============================================================================
--- 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;