-----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 );
 
 _______________________________________________
 Ros-dev mailing list
 Ros-dev(a)reactos.org