[ros-dev] [ros-diffs] [cwittich] 32018: compilerflags can be set for compiler {ALL|CC|CPP} now (ALL is default)

Alex Ionescu ionucu at videotron.ca
Sat Jan 26 21:46:52 CET 2008


On 26-Jan-08, at 2:34 PM, Marc Piulachs wrote:

> Hi,
>
> I'm not very sure about r32018-r32022.
>
> Some compiler warnings are stupid and useless, some others not.

This one is stupid.

>
> 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)

Not all of them can be agnostic -- for example MSVC doesn't generate  
those warnings, and warnings that MSVC generates are only for MSVC.

The only thing you could really have agnostically are the Optimization  
flags, which match -- somewhat.

>
>
> Regards,
> /Marc
>
>> -----Original Message-----
>> From: ros-diffs-bounces at reactos.org [mailto:ros-diffs-bounces at reactos.org 
>> ]
>> On Behalf Of cwittich at svn.reactos.org
>> Sent: Saturday, January 26, 2008 7:28 PM
>> To: ros-diffs at 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 at reactos.org
> http://www.reactos.org/mailman/listinfo/ros-dev

Best regards,
Alex Ionescu



More information about the Ros-dev mailing list