Author: hpoussin Date: Fri Mar 7 10:17:12 2008 New Revision: 32594
URL: http://svn.reactos.org/svn/reactos?rev=3D32594&view=3Drev Log: Don't mix host and targets include files Add HostStaticLibrary type
Modified: trunk/reactos/tools/rbuild/backend/codeblocks/codeblocks.cpp trunk/reactos/tools/rbuild/backend/mingw/modulehandler.cpp trunk/reactos/tools/rbuild/backend/mingw/modulehandler.h trunk/reactos/tools/rbuild/bootstrap.cpp trunk/reactos/tools/rbuild/module.cpp trunk/reactos/tools/rbuild/rbuild.h
Modified: trunk/reactos/tools/rbuild/backend/codeblocks/codeblocks.cpp URL: http://svn.reactos.org/svn/reactos/trunk/reactos/tools/rbuild/backend/= codeblocks/codeblocks.cpp?rev=3D32594&r1=3D32593&r2=3D32594&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/reactos/tools/rbuild/backend/codeblocks/codeblocks.cpp (original) +++ trunk/reactos/tools/rbuild/backend/codeblocks/codeblocks.cpp Fri Mar 7= 10:17:12 2008 @@ -37,6 +37,7 @@ #undef OUT #endif//OUT =
+#define IsStaticLibrary( module ) ( ( module.type =3D=3D StaticLibrary ) |= | ( module.type =3D=3D HostStaticLibrary ) ) =
static class CBFactory : public Backend::Factory { @@ -497,7 +498,7 @@ if ( !module.allowWarnings ) compiler_flags.push_back ( "-Werror" ); =
- if ( module.type =3D=3D StaticLibrary && module.isStartupLib ) + if ( IsStaticLibrary ( module ) && module.isStartupLib ) compiler_flags.push_back ( "-Wno-main" ); =
=
@@ -524,7 +525,7 @@ =
if ( configuration.UseConfigurationInPath ) { - if ( module.type =3D=3D StaticLibrary ||module.type =3D=3D ObjectLibrar= y ) + if ( IsStaticLibrary ( module ) ||module.type =3D=3D ObjectLibrary ) fprintf ( OUT, "\t\t\t\t<Option output=3D"%s\%s%s\%s%s" prefix_aut= o=3D"0" extension_auto=3D"0" />\r\n", intdir.c_str (), module.output->r= elative_path.c_str (), cfg.name.c_str(), module.name.c_str(), module_type.c= _str()); else fprintf ( OUT, "\t\t\t\t<Option output=3D"%s\%s%s\%s%s" prefix_aut= o=3D"0" extension_auto=3D"0" />\r\n", outdir.c_str (), module.output->r= elative_path.c_str (), cfg.name.c_str(), module.name.c_str(), module_type.c= _str()); @@ -532,7 +533,7 @@ } else { - if ( module.type =3D=3D StaticLibrary || module.type =3D=3D ObjectLibra= ry ) + if ( IsStaticLibrary ( module ) || module.type =3D=3D ObjectLibrary ) fprintf ( OUT, "\t\t\t\t<Option output=3D"%s\%s\%s%s" prefix_auto= =3D"0" extension_auto=3D"0" />\r\n", intdir.c_str (), module.output->re= lative_path.c_str (), module.name.c_str(), module_type.c_str() ); else fprintf ( OUT, "\t\t\t\t<Option output=3D"%s\%s\%s%s" prefix_auto= =3D"0" extension_auto=3D"0" />\r\n", outdir.c_str (), module.output->re= lative_path.c_str (), module.name.c_str(), module_type.c_str() ); @@ -672,7 +673,7 @@ fprintf ( OUT, "\t\t\t\t<ExtraCommands>\r\n" ); =
#if 0 - if ( module.type =3D=3D StaticLibrary && module.importLibrary ) + if ( IsStaticLibrary ( module ) && module.importLibrary ) fprintf ( OUT, "\t\t\t\t\t<Add after=3D"dlltool --dllname %s --def %s = --output-lib $exe_output; %s -U" />\r\n", module.importLibrary->dllname.c_= str (), module.importLibrary->definition.c_str(), module.mangledSymbols ? "= " : "--kill-at" ); else if ( module.importLibrary !=3D NULL ) fprintf ( OUT, "\t\t\t\t\t<Add after=3D"dlltool --dllname %s --def %s = --output-lib "$(TARGET_OBJECT_DIR)lib$(TARGET_OUTPUT_BASENAME).a"= %s" />\r\n", module.GetTargetName ().c_str(), module.importLibrary->defin= ition.c_str(), module.mangledSymbols ? "" : "--kill-at" );
Modified: trunk/reactos/tools/rbuild/backend/mingw/modulehandler.cpp URL: http://svn.reactos.org/svn/reactos/trunk/reactos/tools/rbuild/backend/= mingw/modulehandler.cpp?rev=3D32594&r1=3D32593&r2=3D32594&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/reactos/tools/rbuild/backend/mingw/modulehandler.cpp (original) +++ trunk/reactos/tools/rbuild/backend/mingw/modulehandler.cpp Fri Mar 7 1= 0:17:12 2008 @@ -30,6 +30,7 @@ using std::vector; =
#define CLEAN_FILE(f) clean_files.push_back ( (f).name.length () > 0 ? bac= kend->GetFullName ( f ) : backend->GetFullPath ( f ) ); +#define IsStaticLibrary( module ) ( ( module.type =3D=3D StaticLibrary ) |= | ( module.type =3D=3D HostStaticLibrary ) ) =
MingwBackend* MingwModuleHandler::backend =3D NULL; @@ -169,6 +170,9 @@ break; case StaticLibrary: handler =3D new MingwStaticLibraryModuleHandler ( module ); + break; + case HostStaticLibrary: + handler =3D new MingwHostStaticLibraryModuleHandler ( module ); break; case ObjectLibrary: handler =3D new MingwObjectLibraryModuleHandler ( module ); @@ -359,7 +363,7 @@ const FileLocation* MingwModuleHandler::GetModuleArchiveFilename () const { - if ( module.type =3D=3D StaticLibrary ) + if ( IsStaticLibrary ( module ) ) return GetTargetFilename ( module, NULL ); return new FileLocation ( IntermediateDirectory, module.output->relative_path, @@ -1842,7 +1846,7 @@ =
arRule1.Execute ( fMakefile, backend, module, archiveFilename, clean_file= s ); =
- if ( module.type =3D=3D StaticLibrary && module.importLibrary ) + if ( IsStaticLibrary ( module ) && module.importLibrary ) { const FileLocation *definitionFilename =3D GetDefinitionFilename (); =
@@ -2016,11 +2020,14 @@ &module.linkerFlags, used_defs ); =
- GenerateMacros ( - "+=3D", - module.project.non_if_data, - NULL, - used_defs ); + if ( module.host =3D=3D HostFalse ) + { + GenerateMacros ( + "+=3D", + module.project.non_if_data, + NULL, + used_defs ); + } =
vector<FileLocation> s; if ( module.importLibrary ) @@ -2048,7 +2055,12 @@ fprintf ( fMakefile, "\n" ); } =
- string globalCflags =3D "-g"; + string globalCflags =3D ""; + if ( module.host =3D=3D HostFalse ) + globalCflags +=3D " $(PROJECT_CFLAGS)"; + else + globalCflags +=3D " -Wall -Wpointer-arith -D__REACTOS__"; + globalCflags +=3D " -g"; if ( backend->usePipe ) globalCflags +=3D " -pipe"; if ( !module.allowWarnings ) @@ -2058,7 +2070,7 @@ if ( module.cplusplus ) globalCflags +=3D " $(HOST_CPPFLAGS)"; else - globalCflags +=3D " $(HOST_CFLAGS)"; + globalCflags +=3D " -Wno-strict-aliasing $(HOST_CFLAGS)"; } else { @@ -2077,25 +2089,35 @@ =
fprintf ( fMakefile, - "%s +=3D $(PROJECT_CFLAGS) %s\n", + "%s +=3D%s\n", cflagsMacro.c_str (), globalCflags.c_str () ); =
- fprintf ( - fMakefile, - "%s +=3D $(PROJECT_RCFLAGS)\n", - windresflagsMacro.c_str () ); - - fprintf ( - fMakefile, - "%s +=3D $(PROJECT_WIDLFLAGS) -I%s\n", - widlflagsMacro.c_str (), - module.output->relative_path.c_str () ); - - fprintf ( - fMakefile, - "%s_LFLAGS +=3D $(PROJECT_LFLAGS) -g\n", - module.name.c_str () ); + if ( module.host =3D=3D HostFalse ) + { + fprintf ( + fMakefile, + "%s +=3D $(PROJECT_RCFLAGS)\n", + windresflagsMacro.c_str () ); + + fprintf ( + fMakefile, + "%s +=3D $(PROJECT_WIDLFLAGS) -I%s\n", + widlflagsMacro.c_str (), + module.output->relative_path.c_str () ); + + fprintf ( + fMakefile, + "%s_LFLAGS +=3D $(PROJECT_LFLAGS) -g\n", + module.name.c_str () ); + } + else + { + fprintf ( + fMakefile, + "%s_LFLAGS +=3D $(HOST_LFLAGS)\n", + module.name.c_str () ); + } =
fprintf ( fMakefile, @@ -2130,7 +2152,7 @@ linkerflags.c_str () ); } =
- if ( module.type =3D=3D StaticLibrary && module.isStartupLib ) + if ( IsStaticLibrary ( module ) && module.isStartupLib ) { fprintf ( fMakefile, "%s +=3D -Wno-main\n\n", @@ -2596,6 +2618,26 @@ } =
=
+MingwHostStaticLibraryModuleHandler::MingwHostStaticLibraryModuleHandler ( + const Module& module_ ) + + : MingwModuleHandler ( module_ ) +{ +} + +void +MingwHostStaticLibraryModuleHandler::Process () +{ + GenerateHostStaticLibraryModuleTarget (); +} + +void +MingwHostStaticLibraryModuleHandler::GenerateHostStaticLibraryModuleTarget= () +{ + GenerateRules (); +} + + MingwObjectLibraryModuleHandler::MingwObjectLibraryModuleHandler ( const Module& module_ ) =
Modified: trunk/reactos/tools/rbuild/backend/mingw/modulehandler.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/tools/rbuild/backend/= mingw/modulehandler.h?rev=3D32594&r1=3D32593&r2=3D32594&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/reactos/tools/rbuild/backend/mingw/modulehandler.h (original) +++ trunk/reactos/tools/rbuild/backend/mingw/modulehandler.h Fri Mar 7 10:= 17:12 2008 @@ -226,6 +226,17 @@ }; =
=
+class MingwHostStaticLibraryModuleHandler : public MingwModuleHandler +{ +public: + MingwHostStaticLibraryModuleHandler ( const Module& module ); + virtual HostType DefaultHost() { return HostTrue; } + virtual void Process (); +private: + void GenerateHostStaticLibraryModuleTarget (); +}; + + class MingwObjectLibraryModuleHandler : public MingwModuleHandler { public:
Modified: trunk/reactos/tools/rbuild/bootstrap.cpp URL: http://svn.reactos.org/svn/reactos/trunk/reactos/tools/rbuild/bootstra= p.cpp?rev=3D32594&r1=3D32593&r2=3D32594&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/reactos/tools/rbuild/bootstrap.cpp (original) +++ trunk/reactos/tools/rbuild/bootstrap.cpp Fri Mar 7 10:17:12 2008 @@ -57,6 +57,7 @@ return true; case BuildTool: case StaticLibrary: + case HostStaticLibrary: case ObjectLibrary: case Iso: case LiveIso:
Modified: trunk/reactos/tools/rbuild/module.cpp URL: http://svn.reactos.org/svn/reactos/trunk/reactos/tools/rbuild/module.c= pp?rev=3D32594&r1=3D32593&r2=3D32594&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/reactos/tools/rbuild/module.cpp (original) +++ trunk/reactos/tools/rbuild/module.cpp Fri Mar 7 10:17:12 2008 @@ -880,6 +880,8 @@ return BuildTool; if ( attribute.value =3D=3D "staticlibrary" ) return StaticLibrary; + if ( attribute.value =3D=3D "hoststaticlibrary" ) + return HostStaticLibrary; if ( attribute.value =3D=3D "objectlibrary" ) return ObjectLibrary; if ( attribute.value =3D=3D "kernel" ) @@ -965,6 +967,7 @@ case ElfExecutable: return OutputDirectory; case StaticLibrary: + case HostStaticLibrary: case ObjectLibrary: case RpcServer: case RpcClient: @@ -990,6 +993,7 @@ return ExePostfix; case BootProgram: case StaticLibrary: + case HostStaticLibrary: return ".a"; case ObjectLibrary: return ".o"; @@ -1067,6 +1071,7 @@ return "WinMainCRTStartup"; case BuildTool: case StaticLibrary: + case HostStaticLibrary: case ObjectLibrary: case BootLoader: case BootSector: @@ -1115,6 +1120,7 @@ return "0xe00000"; case BuildTool: case StaticLibrary: + case HostStaticLibrary: case ObjectLibrary: case BootLoader: case BootSector: @@ -1140,7 +1146,7 @@ bool Module::HasImportLibrary () const { - return importLibrary !=3D NULL && type !=3D StaticLibrary; + return importLibrary !=3D NULL && type !=3D StaticLibrary && type !=3D Ho= stStaticLibrary; } =
bool @@ -1162,6 +1168,7 @@ case Win32GUI: case BuildTool: case StaticLibrary: + case HostStaticLibrary: case ObjectLibrary: case BootLoader: case BootSector: @@ -1613,7 +1620,7 @@ =
if ( dllname ) this->dllname =3D dllname->value; - else if ( module.type =3D=3D StaticLibrary ) + else if ( module.type =3D=3D StaticLibrary || module.type =3D=3D HostStat= icLibrary ) throw XMLInvalidBuildFileException ( node.location, "<importlibrary> dllname attribute required." );
Modified: trunk/reactos/tools/rbuild/rbuild.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/tools/rbuild/rbuild.h= ?rev=3D32594&r1=3D32593&r2=3D32594&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/reactos/tools/rbuild/rbuild.h (original) +++ trunk/reactos/tools/rbuild/rbuild.h Fri Mar 7 10:17:12 2008 @@ -300,6 +300,7 @@ EmbeddedTypeLib =3D 26, ElfExecutable =3D 27, RpcProxy, + HostStaticLibrary, TypeDontCare, }; =