Hi,
I'm not very sure about r32018-r32022.
Some compiler warnings are stupid and useless, some others not. I think we
should solve the underlying problem when possible. Yes, I know it's easier
to say than to do but silent them in an indiscriminate way just because
clean builds are cooler is not the solution. Warnings are there for
something...
Also, we should work to actually remove <compilerflags> and <linkerflags>
elements and express that information in a compiler/linker agnostic language
now that we want to support at least an additional compiler and linker(MSVC)
Regards,
/Marc
  -----Original Message-----
 From: ros-diffs-bounces(a)reactos.org [mailto:ros-diffs-bounces@reactos.org]
 On Behalf Of cwittich(a)svn.reactos.org
 Sent: Saturday, January 26, 2008 7:28 PM
 To: ros-diffs(a)reactos.org
 Subject: [ros-diffs] [cwittich] 32018: compilerflags can be set for
 compiler {ALL|CC|CPP} now (ALL is default)
 Author: cwittich
 Date: Sat Jan 26 21:27:37 2008
 New Revision: 32018
 URL: 
http://svn.reactos.org/svn/reactos?rev=32018&view=rev
 Log:
 compilerflags can be set for compiler {ALL|CC|CPP} now (ALL is default)
 Modified:
     trunk/reactos/tools/rbuild/backend/mingw/mingw.cpp
     trunk/reactos/tools/rbuild/backend/mingw/modulehandler.cpp
     trunk/reactos/tools/rbuild/backend/mingw/modulehandler.h
     trunk/reactos/tools/rbuild/compilerflag.cpp
     trunk/reactos/tools/rbuild/rbuild.h
 Modified: trunk/reactos/tools/rbuild/backend/mingw/mingw.cpp
 URL:
 
http://svn.reactos.org/svn/reactos/trunk/reactos/tools/rbuild/backend/ming
 w/mingw.cpp?rev=32018&r1=32017&r2=32018&view=diff
 ==========================================================================
 ====
 --- trunk/reactos/tools/rbuild/backend/mingw/mingw.cpp (original)
 +++ trunk/reactos/tools/rbuild/backend/mingw/mingw.cpp Sat Jan 26 21:27:37
 2008
 @@ -448,10 +448,13 @@
        for ( i = 0; i < data.compilerFlags.size(); i++ )
        {
 -              fprintf (
 -                      fMakefile,
 -                      " %s",
 -                      data.compilerFlags[i]->flag.c_str() );
 +              if ( data.compilerFlags[i]->compiler == CompilerTypeDontCare 
  +               {
 +                      fprintf (
 +                              fMakefile,
 +                              " %s",
 +                              data.compilerFlags[i]->flag.c_str() );
 +              }
        }
        fprintf ( fMakefile, "\n" );
 Modified: trunk/reactos/tools/rbuild/backend/mingw/modulehandler.cpp
 URL:
 
http://svn.reactos.org/svn/reactos/trunk/reactos/tools/rbuild/backend/ming
 w/modulehandler.cpp?rev=32018&r1=32017&r2=32018&view=diff
 ==========================================================================
 ====
 --- trunk/reactos/tools/rbuild/backend/mingw/modulehandler.cpp (original)
 +++ trunk/reactos/tools/rbuild/backend/mingw/modulehandler.cpp Sat Jan 26
 21:27:37 2008
 @@ -764,15 +764,18 @@
  }
  string
 -MingwModuleHandler::GenerateCompilerParametersFromVector ( const
 vector<CompilerFlag*>& compilerFlags ) const
 +MingwModuleHandler::GenerateCompilerParametersFromVector ( const
 vector<CompilerFlag*>& compilerFlags, const CompilerType type ) const
  {
        string parameters;
        for ( size_t i = 0; i < compilerFlags.size (); i++ )
        {
                CompilerFlag& compilerFlag = *compilerFlags[i];
 -              if ( parameters.length () > 0 )
 -                      parameters += " ";
 -              parameters += compilerFlag.flag;
 +              if ( compilerFlag.compiler == type )
 +              {
 +                      if ( parameters.length () > 0 )
 +                              parameters += " ";
 +                      parameters += compilerFlag.flag;
 +              }
        }
        return parameters;
  }
 @@ -848,7 +851,7 @@
        if ( generatingCompilerMacro )
        {
 -              string compilerParameters =
 GenerateCompilerParametersFromVector ( data.compilerFlags );
 +              string compilerParameters =
 GenerateCompilerParametersFromVector ( data.compilerFlags ,
 CompilerTypeDontCare );
                if ( compilerParameters.size () > 0 )
                {
                        fprintf (
 @@ -1719,21 +1722,25 @@
  {
        const FileLocation& sourceFile = compilationUnit.GetFilename ();
        string extension = GetExtension ( sourceFile );
 +      string flags = cflagsMacro;
 +      flags += " ";
        if ( extension == ".c" || extension == ".C" )
        {
 +              flags += GenerateCompilerParametersFromVector (
 module.non_if_data.compilerFlags , CompilerTypeCC );
                GenerateGccCommand ( &sourceFile,
                                     GetCompilationUnitDependencies (
 compilationUnit ) + extraDependencies,
                                     cc,
 -                                   cflagsMacro );
 +                                   flags );
        }
        else if ( extension == ".cc" || extension == ".CC" ||
                  extension == ".cpp" || extension == ".CPP" ||
                  extension == ".cxx" || extension == ".CXX" )
        {
 +              flags += GenerateCompilerParametersFromVector (
 module.non_if_data.compilerFlags , CompilerTypeCPP );
                GenerateGccCommand ( &sourceFile,
                                     GetCompilationUnitDependencies (
 compilationUnit ) + extraDependencies,
                                     cppc,
 -                                   cflagsMacro );
 +                                   flags );
        }
        else if ( extension == ".s" || extension == ".S" )
        {
 Modified: trunk/reactos/tools/rbuild/backend/mingw/modulehandler.h
 URL:
 
http://svn.reactos.org/svn/reactos/trunk/reactos/tools/rbuild/backend/ming
 w/modulehandler.h?rev=32018&r1=32017&r2=32018&view=diff
 ==========================================================================
 ====
 --- trunk/reactos/tools/rbuild/backend/mingw/modulehandler.h (original)
 +++ trunk/reactos/tools/rbuild/backend/mingw/modulehandler.h Sat Jan 26
 21:27:37 2008
 @@ -130,7 +130,7 @@
        std::string ConcatenatePaths ( const std::string& path1,
                                       const std::string& path2 ) const;
        std::string GenerateGccDefineParameters () const;
 -      std::string GenerateCompilerParametersFromVector ( const
 std::vector<CompilerFlag*>& compilerFlags ) const;
 +      std::string GenerateCompilerParametersFromVector ( const
 std::vector<CompilerFlag*>& compilerFlags, const CompilerType type )
 const;
        std::string GenerateLinkerParametersFromVector ( const
 std::vector<LinkerFlag*>& linkerFlags ) const;
        std::string GenerateImportLibraryDependenciesFromVector ( const
 std::vector<Library*>& libraries );
        std::string GenerateLinkerParameters () const;
 Modified: trunk/reactos/tools/rbuild/compilerflag.cpp
 URL:
 
http://svn.reactos.org/svn/reactos/trunk/reactos/tools/rbuild/compilerflag
 .cpp?rev=32018&r1=32017&r2=32018&view=diff
 ==========================================================================
 ====
 --- trunk/reactos/tools/rbuild/compilerflag.cpp (original)
 +++ trunk/reactos/tools/rbuild/compilerflag.cpp Sat Jan 26 21:27:37 2008
 @@ -55,7 +55,25 @@
                        node.location,
                        "<compilerflag> is empty." );
        }
 +
        flag = node.value;
 +      compiler = CompilerTypeDontCare;
 +
 +      const XMLAttribute* att = node.GetAttribute ( "compiler", false );
 +      if ( att != NULL)
 +      {
 +              if ( att->value == "cpp" )
 +                      compiler = CompilerTypeCPP;
 +              else if ( att->value == "cc" )
 +                      compiler = CompilerTypeCC;
 +              else
 +              {
 +                      throw InvalidAttributeValueException (
 +                              node.location,
 +                              "compiler",
 +                              att->value );
 +              }
 +      }
  }
  void
 Modified: trunk/reactos/tools/rbuild/rbuild.h
 URL:
 
http://svn.reactos.org/svn/reactos/trunk/reactos/tools/rbuild/rbuild.h?rev
 =32018&r1=32017&r2=32018&view=diff
 ==========================================================================
 ====
 --- trunk/reactos/tools/rbuild/rbuild.h (original)
 +++ trunk/reactos/tools/rbuild/rbuild.h Sat Jan 26 21:27:37 2008
 @@ -309,6 +309,13 @@
        HostDefault,
        HostTrue,
        HostDontCare,
 +};
 +
 +enum CompilerType
 +{
 +      CompilerTypeDontCare,
 +      CompilerTypeCC,
 +      CompilerTypeCPP,
  };
  class FileLocation
 @@ -592,6 +599,7 @@
        const Module* module;
        const XMLElement& node;
        std::string flag;
 +      CompilerType compiler;
        CompilerFlag ( const Project& project,
                       const XMLElement& compilerFlagNode );