host vs target refactoring, <module> has two new attributes 'host' and
'prefix' ( this should fix sedwards' host.zlib.a issue, and also forgot
to commit change to buildno's makefile in support of new macros in
top-level makefile ( which should fix build bug arty experiencing re
buildno.h )
Modified: branches/xmlbuildsystem/reactos/lib/zlib/zlib.xml
Added: branches/xmlbuildsystem/reactos/lib/zlib/zlib_common.xml
Modified: branches/xmlbuildsystem/reactos/tools/buildno/makefile
Modified: branches/xmlbuildsystem/reactos/tools/cabman/cabman.xml
Modified:
branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/mingw.cpp
Modified:
branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler
.cpp
Modified:
branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler
.h
Modified: branches/xmlbuildsystem/reactos/tools/rbuild/module.cpp
Modified: branches/xmlbuildsystem/reactos/tools/rbuild/rbuild.h
_____
Modified: branches/xmlbuildsystem/reactos/lib/zlib/zlib.xml
--- branches/xmlbuildsystem/reactos/lib/zlib/zlib.xml 2005-03-11
07:41:19 UTC (rev 13923)
+++ branches/xmlbuildsystem/reactos/lib/zlib/zlib.xml 2005-03-11
07:46:22 UTC (rev 13924)
@@ -1,17 +1,7 @@
<module name="zlib" type="staticlibrary">
- <include base="zlib">.</include>
- <file>adler32.c</file>
- <file>compress.c</file>
- <file>crc32.c</file>
- <file>gzio.c</file>
- <file>uncompr.c</file>
- <file>deflate.c</file>
- <file>trees.c</file>
- <file>zutil.c</file>
- <file>inflate.c</file>
- <file>infblock.c</file>
- <file>inftrees.c</file>
- <file>infcodes.c</file>
- <file>infutil.c</file>
- <file>inffast.c</file>
+ <xi:include href="zlib_common.xml" />
</module>
+
+<module name="hostzlib" type="staticlibrary"
host="true"
prefix="host_">
+ <xi:include href="zlib_common.xml" />
+</module>
_____
Added: branches/xmlbuildsystem/reactos/lib/zlib/zlib_common.xml
--- branches/xmlbuildsystem/reactos/lib/zlib/zlib_common.xml
2005-03-11 07:41:19 UTC (rev 13923)
+++ branches/xmlbuildsystem/reactos/lib/zlib/zlib_common.xml
2005-03-11 07:46:22 UTC (rev 13924)
@@ -0,0 +1,16 @@
+<include base="zlib">.</include>
+
+<file>adler32.c</file>
+<file>compress.c</file>
+<file>crc32.c</file>
+<file>gzio.c</file>
+<file>uncompr.c</file>
+<file>deflate.c</file>
+<file>trees.c</file>
+<file>zutil.c</file>
+<file>inflate.c</file>
+<file>infblock.c</file>
+<file>inftrees.c</file>
+<file>infcodes.c</file>
+<file>infutil.c</file>
+<file>inffast.c</file>
_____
Modified: branches/xmlbuildsystem/reactos/tools/buildno/makefile
--- branches/xmlbuildsystem/reactos/tools/buildno/makefile
2005-03-11 07:41:19 UTC (rev 13923)
+++ branches/xmlbuildsystem/reactos/tools/buildno/makefile
2005-03-11 07:46:22 UTC (rev 13924)
@@ -28,7 +28,8 @@
buildno_clean:
-@$(rm) $(BUILDNO_TARGET) $(BUILDNO_OBJECTS) 2>$(NUL)
-BUILDNO_H = include$(SEP)reactos$(SEP)buildno.h
+# BUILDNO_H is defined from the top-level makefile now...
+#BUILDNO_H = .$(SEP)include$(SEP)reactos$(SEP)buildno.h
$(BUILDNO_H): $(BUILDNO_TARGET)
$(EXEPREFIX)$(BUILDNO_TARGET) $(BUILDNO_H)
_____
Modified: branches/xmlbuildsystem/reactos/tools/cabman/cabman.xml
--- branches/xmlbuildsystem/reactos/tools/cabman/cabman.xml
2005-03-11 07:41:19 UTC (rev 13923)
+++ branches/xmlbuildsystem/reactos/tools/cabman/cabman.xml
2005-03-11 07:46:22 UTC (rev 13924)
@@ -1,10 +1,10 @@
<module name="cabman" type="buildtool">
<include base="cabman">.</include>
<include base="zlib">.</include>
- <library>zlib</library>
+ <library>hostzlib</library>
<file>cabinet.cxx</file>
<file>dfp.cxx</file>
<file>main.cxx</file>
<file>mszip.cxx</file>
<file>raw.cxx</file>
-</module>
+</module>
\ No newline at end of file
_____
Modified:
branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/mingw.cpp
--- branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/mingw.cpp
2005-03-11 07:41:19 UTC (rev 13923)
+++ branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/mingw.cpp
2005-03-11 07:46:22 UTC (rev 13924)
@@ -312,6 +312,11 @@
module.node.location,
module.type );
MingwModuleHandler::string_list clean_files;
+ if ( module.host == HostDefault )
+ {
+ module.host = h->DefaultHost();
+ assert ( module.host != HostDefault );
+ }
h->Process ( module, clean_files );
h->GenerateCleanTarget ( module, clean_files );
h->GenerateDirectoryTargets ();
_____
Modified:
branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler
.cpp
---
branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler
.cpp 2005-03-11 07:41:19 UTC (rev 13923)
+++
branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler
.cpp 2005-03-11 07:46:22 UTC (rev 13924)
@@ -31,15 +31,41 @@
const string& newExtension )
{
size_t index = filename.find_last_of ( '/' );
- if (index == string::npos) index = 0;
- string tmp = filename.substr( index, filename.size() - index );
+ if ( index == string::npos )
+ index = 0;
+ size_t index2 = filename.find_last_of ( '\\' );
+ if ( index2 != string::npos && index2 > index )
+ index = index2;
+ string tmp = filename.substr( index /*, filename.size() -
index*/ );
size_t ext_index = tmp.find_last_of( '.' );
- if (ext_index != string::npos)
+ if ( ext_index != string::npos )
return filename.substr ( 0, index + ext_index ) +
newExtension;
return filename + newExtension;
}
+string
+PrefixFilename (
+ const string& filename,
+ const string& prefix )
+{
+ if ( !prefix.length() )
+ return filename;
+ string out;
+ const char* pfilename = filename.c_str();
+ const char* p1 = strrchr ( pfilename, '/' );
+ const char* p2 = strrchr ( pfilename, '\\' );
+ if ( p1 || p2 )
+ {
+ if ( p2 > p1 )
+ p1 = p2;
+ out += string(pfilename,p1-pfilename) + CSEP;
+ pfilename = p1 + 1;
+ }
+ out += prefix + pfilename;
+ return out;
+}
+
MingwModuleHandler::MingwModuleHandler ( ModuleType moduletype )
{
if ( !ref++ )
@@ -167,22 +193,9 @@
return dependencies;
}
-/*string
-MingwModuleHandler::GetAllDependencies ( const Module& module ) const
-{
- string dependencies = GetImportMacro ( module );
- string s = GetModuleDependencies ( module );
- if ( s.length () > 0 )
- {
- dependencies += " ";
- dependencies += s;
- }
- return dependencies;
-}*/
-
string
MingwModuleHandler::GetSourceFilenames ( const Module& module,
- bool includeGeneratedFiles
) const
+ bool includeGeneratedFiles )
const
{
size_t i;
@@ -229,8 +242,8 @@
false );
}
-string
-MingwModuleHandler::GetObjectFilename ( const string& sourceFilename )
+static string
+GetObjectFilename ( const Module& module, const string& sourceFilename
)
{
string newExtension;
string extension = GetExtension ( sourceFilename );
@@ -240,7 +253,10 @@
newExtension = ".stubs.o";
else
newExtension = ".o";
- return FixupTargetFilename ( ReplaceExtension ( sourceFilename,
newExtension ) );
+ return FixupTargetFilename (
+ ReplaceExtension (
+ PrefixFilename(sourceFilename,module.prefix),
+ newExtension ) );
}
void
@@ -274,7 +290,8 @@
{
if ( objectFilenames.size () > 0 )
objectFilenames += " ";
- objectFilenames += PassThruCacheDirectory (
MingwModuleHandler::GetObjectFilename ( files[i]->name ) );
+ objectFilenames += PassThruCacheDirectory (
+ GetObjectFilename ( module, files[i]->name ) );
}
return objectFilenames;
}
@@ -514,6 +531,7 @@
void
MingwModuleHandler::GenerateMacros (
+ const Module& module,
const char* assignmentOperation,
const IfableData& data,
const vector<CompilerFlag*>* compilerFlags,
@@ -580,7 +598,7 @@
"%s := %s $(%s)\n",
objs_macro.c_str(),
PassThruCacheDirectory (
-
MingwModuleHandler::GetObjectFilename ( file.name ) ).c_str (),
+ GetObjectFilename (
module, file.name ) ).c_str (),
objs_macro.c_str() );
}
}
@@ -599,7 +617,7 @@
"%s%s",
( i%10 == 9 ? "\\\n\t" : " " ),
PassThruCacheDirectory (
-
MingwModuleHandler::GetObjectFilename ( file.name ) ).c_str () );
+ GetObjectFilename (
module, file.name ) ).c_str () );
}
}
fprintf ( fMakefile, "\n" );
@@ -621,6 +639,7 @@
rIf.property.c_str(),
rIf.value.c_str() );
GenerateMacros (
+ module,
"+=",
rIf.data,
NULL,
@@ -651,6 +670,7 @@
const string& linkdeps_macro ) const
{
GenerateMacros (
+ module,
"=",
module.non_if_data,
&module.compilerFlags,
@@ -721,7 +741,8 @@
string deps = sourceFilename;
if ( module.pch && use_pch )
deps += " " + module.pch->header + ".gch";
- string objectFilename = PassThruCacheDirectory (
MingwModuleHandler::GetObjectFilename ( sourceFilename ) );
+ string objectFilename = PassThruCacheDirectory (
+ GetObjectFilename ( module, sourceFilename ) );
fprintf ( fMakefile,
"%s: %s\n",
objectFilename.c_str (),
@@ -741,7 +762,8 @@
const string& cc,
const string&
cflagsMacro ) const
{
- string objectFilename = PassThruCacheDirectory (
MingwModuleHandler::GetObjectFilename ( sourceFilename ) );
+ string objectFilename = PassThruCacheDirectory (
+ GetObjectFilename ( module, sourceFilename ) );
fprintf ( fMakefile,
"%s: %s\n",
objectFilename.c_str (),
@@ -760,7 +782,8 @@
const string& sourceFilename,
const string& nasmflagsMacro
) const
{
- string objectFilename = PassThruCacheDirectory (
MingwModuleHandler::GetObjectFilename ( sourceFilename ) );
+ string objectFilename = PassThruCacheDirectory (
+ GetObjectFilename ( module, sourceFilename ) );
fprintf ( fMakefile,
"%s: %s\n",
objectFilename.c_str (),
@@ -779,7 +802,8 @@
const string&
sourceFilename,
const string&
windresflagsMacro ) const
{
- string objectFilename = PassThruCacheDirectory (
MingwModuleHandler::GetObjectFilename ( sourceFilename ) );
+ string objectFilename = PassThruCacheDirectory (
+ GetObjectFilename ( module, sourceFilename ) );
string rciFilename = ReplaceExtension ( sourceFilename,
".rci" );
string resFilename = ReplaceExtension ( sourceFilename,
@@ -859,7 +883,7 @@
const string& windresflagsMacro,
string_list& clean_files ) const
{
- CLEAN_FILE ( GetObjectFilename(sourceFilename) );
+ CLEAN_FILE ( GetObjectFilename(module,sourceFilename) );
string extension = GetExtension ( sourceFilename );
if ( extension == ".c" || extension == ".C" )
{
@@ -1090,22 +1114,6 @@
fprintf ( fMakefile, "\n" );
}
-void
-MingwModuleHandler::GetCleanTargets (
- string_list& out,
- const IfableData& data ) const
-{
- size_t i;
-
- const vector<File*>& files = data.files;
- for ( i = 0; i < files.size(); i++ )
- out.push_back ( PassThruCacheDirectory (
MingwModuleHandler::GetObjectFilename ( files[i]->name ) ) );
-
- const vector<If*>& ifs = data.ifs;
- for ( i = 0; i < ifs.size(); i++ )
- GetCleanTargets ( out, ifs[i]->data );
-}
-
string
MingwModuleHandler::GenerateArchiveTarget ( const Module& module,
const string& ar,
@@ -1165,13 +1173,14 @@
void
MingwModuleHandler::GenerateMacrosAndTargets (
const Module& module,
- const string& cc,
- const string& cppc,
- const string& ar,
const string* cflags,
const string* nasmflags,
string_list& clean_files ) const
{
+ string cc = ( module.host ? "${host_gcc}" : "${gcc}" );
+ string cppc = ( module.host ? "${host_gpp}" : "${gpp}" );
+ string ar = ( module.host ? "${host_ar}" : "${ar}" );
+
string cflagsMacro = ssprintf ("%s_CFLAGS", module.name.c_str
());
string nasmflagsMacro = ssprintf ("%s_NASMFLAGS",
module.name.c_str ());
string windresflagsMacro = ssprintf ("%s_RCFLAGS",
module.name.c_str ());
@@ -1234,50 +1243,6 @@
}
}
-void
-MingwModuleHandler::GenerateMacrosAndTargetsHost (
- const Module& module,
- string_list& clean_files ) const
-{
- GenerateMacrosAndTargets (
- module,
- "${host_gcc}",
- "${host_gpp}",
- "${host_ar}",
- NULL,
- NULL,
- clean_files );
-}
-
-void
-MingwModuleHandler::GenerateMacrosAndTargetsTarget (
- const Module& module,
- string_list& clean_files ) const
-{
- GenerateMacrosAndTargetsTarget (
- module,
- NULL,
- NULL,
- clean_files );
-}
-
-void
-MingwModuleHandler::GenerateMacrosAndTargetsTarget (
- const Module& module,
- const string* cflags,
- const string* nasmflags,
- string_list& clean_files ) const
-{
- GenerateMacrosAndTargets (
- module,
- "${gcc}",
- "${gpp}",
- "${ar}",
- cflags,
- nasmflags,
- clean_files );
-}
-
string
MingwModuleHandler::GetInvocationDependencies ( const Module& module )
const
{
@@ -1489,7 +1454,11 @@
string linkDepsMacro = GetLinkingDependenciesMacro ( module );
string libsMacro = GetLibsMacro ( module );
- GenerateMacrosAndTargetsHost ( module, clean_files );
+ GenerateMacrosAndTargets (
+ module,
+ NULL,
+ NULL,
+ clean_files );
string linker;
if ( IsCPlusPlusModule ( module ) )
@@ -1548,7 +1517,7 @@
module.entrypoint.c_str (),
module.baseaddress.c_str () );
- GenerateMacrosAndTargetsTarget ( module, clean_files );
+ GenerateMacrosAndTargets ( module, NULL, NULL, clean_files );
GenerateImportLibraryTargetIfNeeded ( module, clean_files );
@@ -1615,7 +1584,7 @@
void
MingwStaticLibraryModuleHandler::GenerateStaticLibraryModuleTarget (
const Module& module, string_list& clean_files )
{
- GenerateMacrosAndTargetsTarget ( module, clean_files );
+ GenerateMacrosAndTargets ( module, NULL, NULL, clean_files );
}
@@ -1637,7 +1606,7 @@
void
MingwObjectLibraryModuleHandler::GenerateObjectLibraryModuleTarget (
const Module& module, string_list& clean_files )
{
- GenerateMacrosAndTargetsTarget ( module, clean_files );
+ GenerateMacrosAndTargets ( module, NULL, NULL, clean_files );
}
@@ -1672,7 +1641,7 @@
if ( module.non_if_data.files.size () > 0 )
{
- GenerateMacrosAndTargetsTarget ( module, clean_files );
+ GenerateMacrosAndTargets ( module, NULL, NULL,
clean_files );
fprintf ( fMakefile, "%s: %s %s\n",
target.c_str (),
@@ -1732,10 +1701,10 @@
if ( module.non_if_data.files.size () > 0 )
{
string cflags ( "-D__NTDRIVER__" );
- GenerateMacrosAndTargetsTarget ( module,
- &cflags,
- NULL,
- clean_files);
+ GenerateMacrosAndTargets ( module,
+ &cflags,
+ NULL,
+ clean_files );
fprintf ( fMakefile, "%s: %s %s\n",
target.c_str (),
@@ -1791,7 +1760,7 @@
if ( module.non_if_data.files.size () > 0 )
{
- GenerateMacrosAndTargetsTarget ( module, clean_files );
+ GenerateMacrosAndTargets ( module, NULL, NULL,
clean_files );
fprintf ( fMakefile, "%s: %s %s\n",
target.c_str (),
@@ -1848,10 +1817,10 @@
if ( module.non_if_data.files.size () > 0 )
{
string cflags ( "-D__NTAPP__" );
- GenerateMacrosAndTargetsTarget ( module,
- &cflags,
- NULL,
- clean_files );
+ GenerateMacrosAndTargets ( module,
+ &cflags,
+ NULL,
+ clean_files );
fprintf ( fMakefile, "%s: %s %s\n",
target.c_str (),
@@ -1931,7 +1900,7 @@
if ( module.non_if_data.files.size () > 0 )
{
- GenerateMacrosAndTargetsTarget ( module, clean_files );
+ GenerateMacrosAndTargets ( module, NULL, NULL,
clean_files );
fprintf ( fMakefile, "%s: %s %s\n",
target.c_str (),
@@ -1939,7 +1908,7 @@
linkDepsMacro.c_str () );
string linker;
- if ( IsCPlusPlusModule ( module ) )
+ if ( module.cplusplus )
linker = "${gpp}";
else
linker = "${gcc}";
@@ -1993,7 +1962,7 @@
if ( module.non_if_data.files.size () > 0 )
{
- GenerateMacrosAndTargetsTarget ( module, clean_files );
+ GenerateMacrosAndTargets ( module, NULL, NULL,
clean_files );
fprintf ( fMakefile, "%s: %s %s\n",
target.c_str (),
@@ -2001,7 +1970,7 @@
linkDepsMacro.c_str () );
string linker;
- if ( IsCPlusPlusModule ( module ) )
+ if ( module.cplusplus )
linker = "${gpp}";
else
linker = "${gcc}";
@@ -2055,7 +2024,7 @@
if ( module.non_if_data.files.size () > 0 )
{
- GenerateMacrosAndTargetsTarget ( module, clean_files );
+ GenerateMacrosAndTargets ( module, NULL, NULL, clean_files );
fprintf ( fMakefile, "%s: %s %s\n",
target.c_str (),
@@ -2063,7 +2032,7 @@
linkDepsMacro.c_str () );
string linker;
- if ( IsCPlusPlusModule ( module ) )
+ if ( module.cplusplus )
linker = "${gpp}";
else
linker = "${gcc}";
@@ -2118,7 +2087,7 @@
string linkDepsMacro = GetLinkingDependenciesMacro ( module );
string libsMacro = GetLibsMacro ( module );
- GenerateMacrosAndTargetsTarget ( module, clean_files );
+ GenerateMacrosAndTargets ( module, NULL, NULL, clean_files );
fprintf ( fMakefile, "%s: %s %s\n",
target.c_str (),
@@ -2164,10 +2133,10 @@
string objectsMacro = GetObjectsMacro ( module );
string* nasmflags = new string ( "-f bin" );
- GenerateMacrosAndTargetsTarget ( module,
- NULL,
- nasmflags,
- clean_files );
+ GenerateMacrosAndTargets ( module,
+ NULL,
+ nasmflags,
+ clean_files );
fprintf ( fMakefile, ".PHONY: %s\n\n",
module.name.c_str ());
_____
Modified:
branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler
.h
---
branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler
.h 2005-03-11 07:41:19 UTC (rev 13923)
+++
branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler
.h 2005-03-11 07:46:22 UTC (rev 13924)
@@ -7,6 +7,10 @@
ReplaceExtension ( const std::string& filename,
const std::string& newExtension );
+extern std::string
+PrefixFilename (
+ const std::string& filename,
+ const std::string& prefix );
class MingwModuleHandler
{
@@ -23,10 +27,10 @@
static void SetUsePch ( bool use_pch );
static MingwModuleHandler* LookupHandler ( const std::string&
location,
ModuleType
moduletype_ );
+ virtual HostType DefaultHost() = 0;
virtual void Process ( const Module& module, string_list&
clean_files ) = 0;
bool IncludeDirectoryTarget ( const std::string& directory )
const;
void GenerateDirectoryTargets () const;
- static std::string GetObjectFilename ( const std::string&
sourceFilename );
void GenerateCleanTarget ( const Module& module,
const string_list& clean_files )
const;
protected:
@@ -45,14 +49,6 @@
std::string GetSourceFilenamesWithoutGeneratedFiles ( const
Module& module ) const;
std::string GetObjectFilenames ( const Module& module ) const;
- void GenerateMacrosAndTargetsHost ( const Module& module,
- string_list& clean_files )
const;
- void GenerateMacrosAndTargetsTarget ( const Module& module,
- string_list& clean_files )
const;
- void GenerateMacrosAndTargetsTarget ( const Module& module,
- const std::string* cflags,
- const std::string*
nasmflags,
- string_list& clean_files )
const;
std::string GetInvocationDependencies ( const Module& module )
const;
void GenerateInvocations ( const Module& module ) const;
@@ -69,6 +65,10 @@
const std::string& objectsMacro,
const std::string& libsMacro,
string_list& clean_files ) const;
+ void GenerateMacrosAndTargets ( const Module& module,
+ const std::string* clags,
+ const std::string* nasmflags,
+ string_list& clean_files )
const;
void GenerateImportLibraryTargetIfNeeded ( const Module& module,
string_list& clean_files ) const;
std::string GetDefinitionDependencies ( const Module& module )
const;
std::string GetLinkingDependencies ( const Module& module )
const;
@@ -90,7 +90,9 @@
const std::string& macro,
const IfableData& data,
const std::vector<CompilerFlag*>*
compilerFlags ) const;
- void GenerateMacros ( const char* op,
+ void GenerateMacros (
+ const Module& module,
+ const char* op,
const IfableData& data,
const std::vector<CompilerFlag*>*
compilerFlags,
const std::vector<LinkerFlag*>*
linkerFlags,
@@ -152,18 +154,9 @@
const std::string&
nasmflagsMacro,
const std::string&
windresflagsMacro,
string_list& clean_files )
const;
- void GetCleanTargets ( string_list& out,
- const IfableData& data ) const;
std::string GenerateArchiveTarget ( const Module& module,
const std::string& ar,
const std::string&
objs_macro ) const;
- void GenerateMacrosAndTargets ( const Module& module,
- const std::string& cc,
- const std::string& cppc,
- const std::string& ar,
- const std::string* clags,
- const std::string* nasmflags,
- string_list& clean_files )
const;
std::string GetSpecObjectDependencies ( const std::string&
filename ) const;
std::string GetDefaultDependencies ( const Module& module )
const;
};
@@ -173,6 +166,7 @@
{
public:
MingwBuildToolModuleHandler ();
+ virtual HostType DefaultHost() { return HostTrue; }
virtual void Process ( const Module& module, string_list&
clean_files );
private:
void GenerateBuildToolModuleTarget ( const Module& module,
string_list& clean_files );
@@ -183,6 +177,7 @@
{
public:
MingwKernelModuleHandler ();
+ virtual HostType DefaultHost() { return HostFalse; }
virtual void Process ( const Module& module, string_list&
clean_files );
private:
void GenerateKernelModuleTarget ( const Module& module,
string_list& clean_files );
@@ -193,6 +188,7 @@
{
public:
MingwStaticLibraryModuleHandler ();
+ virtual HostType DefaultHost() { return HostFalse; }
virtual void Process ( const Module& module, string_list&
clean_files );
private:
void GenerateStaticLibraryModuleTarget ( const Module& module,
string_list& clean_files );
@@ -203,6 +199,7 @@
{
public:
MingwObjectLibraryModuleHandler ();
+ virtual HostType DefaultHost() { return HostFalse; }
virtual void Process ( const Module& module, string_list&
clean_files );
private:
void GenerateObjectLibraryModuleTarget ( const Module& module,
string_list& clean_files );
@@ -213,6 +210,7 @@
{
public:
MingwKernelModeDLLModuleHandler ();
+ virtual HostType DefaultHost() { return HostFalse; }
virtual void Process ( const Module& module, string_list&
clean_files );
private:
void GenerateKernelModeDLLModuleTarget ( const Module& module,
string_list& clean_files );
@@ -223,6 +221,7 @@
{
public:
MingwKernelModeDriverModuleHandler ();
+ virtual HostType DefaultHost() { return HostFalse; }
virtual void Process ( const Module& module, string_list&
clean_files );
private:
void GenerateKernelModeDriverModuleTarget ( const Module&
module, string_list& clean_files );
@@ -233,6 +232,7 @@
{
public:
MingwNativeDLLModuleHandler ();
+ virtual HostType DefaultHost() { return HostFalse; }
virtual void Process ( const Module& module, string_list&
clean_files );
private:
void GenerateNativeDLLModuleTarget ( const Module& module,
string_list& clean_files );
@@ -243,6 +243,7 @@
{
public:
MingwNativeCUIModuleHandler ();
+ virtual HostType DefaultHost() { return HostFalse; }
virtual void Process ( const Module& module, string_list&
clean_files );
private:
void GenerateNativeCUIModuleTarget ( const Module& module,
string_list& clean_files );
@@ -253,6 +254,7 @@
{
public:
MingwWin32DLLModuleHandler ();
+ virtual HostType DefaultHost() { return HostFalse; }
virtual void Process ( const Module& module, string_list&
clean_files );
private:
void GenerateExtractWineDLLResourcesTarget ( const Module&
module, string_list& clean_files );
@@ -264,6 +266,7 @@
{
public:
MingwWin32CUIModuleHandler ();
+ virtual HostType DefaultHost() { return HostFalse; }
virtual void Process ( const Module& module, string_list&
clean_files );
private:
void GenerateWin32CUIModuleTarget ( const Module& module,
string_list& clean_files );
@@ -274,6 +277,7 @@
{
public:
MingwWin32GUIModuleHandler ();
+ virtual HostType DefaultHost() { return HostFalse; }
virtual void Process ( const Module& module, string_list&
clean_files );
private:
void GenerateWin32GUIModuleTarget ( const Module& module,
string_list& clean_files );
@@ -284,6 +288,7 @@
{
public:
MingwBootLoaderModuleHandler ();
+ virtual HostType DefaultHost() { return HostFalse; }
virtual void Process ( const Module& module, string_list&
clean_files );
private:
void GenerateBootLoaderModuleTarget ( const Module& module,
string_list& clean_files );
@@ -294,6 +299,7 @@
{
public:
MingwBootSectorModuleHandler ();
+ virtual HostType DefaultHost() { return HostFalse; }
virtual void Process ( const Module& module, string_list&
clean_files );
private:
void GenerateBootSectorModuleTarget ( const Module& module,
string_list& clean_files );
@@ -304,6 +310,7 @@
{
public:
MingwIsoModuleHandler ();
+ virtual HostType DefaultHost() { return HostFalse; }
virtual void Process ( const Module& module, string_list&
clean_files );
private:
void GenerateIsoModuleTarget ( const Module& module,
string_list& clean_files );
_____
Modified: branches/xmlbuildsystem/reactos/tools/rbuild/module.cpp
--- branches/xmlbuildsystem/reactos/tools/rbuild/module.cpp
2005-03-11 07:41:19 UTC (rev 13923)
+++ branches/xmlbuildsystem/reactos/tools/rbuild/module.cpp
2005-03-11 07:46:22 UTC (rev 13924)
@@ -92,7 +92,8 @@
importLibrary (NULL),
bootstrap (NULL),
pch (NULL),
- cplusplus (false)
+ cplusplus (false),
+ host (HostDefault)
{
if ( node.name != "module" )
throw Exception ( "internal tool error: Module created
with non-<module> node" );
@@ -127,9 +128,43 @@
att = moduleNode.GetAttribute ( "mangledsymbols", false );
if ( att != NULL )
- mangledSymbols = att->value != "false";
+ {
+ const char* p = att->value.c_str();
+ if ( !stricmp ( p, "true" ) || !stricmp ( p, "yes" ) )
+ mangledSymbols = true;
+ else if ( !stricmp ( p, "false" ) || !stricmp ( p, "no"
) )
+ mangledSymbols = false;
+ else
+ {
+ throw InvalidAttributeValueException (
+ moduleNode.location,
+ "mangledsymbols",
+ att->value );
+ }
+ }
else
mangledSymbols = false;
+
+ att = moduleNode.GetAttribute ( "host", false );
+ if ( att != NULL )
+ {
+ const char* p = att->value.c_str();
+ if ( !stricmp ( p, "true" ) || !stricmp ( p, "yes" ) )
+ host = HostTrue;
+ else if ( !stricmp ( p, "false" ) || !stricmp ( p, "no"
) )
+ host = HostFalse;
+ else
+ {
+ throw InvalidAttributeValueException (
+ moduleNode.location,
+ "host",
+ att->value );
+ }
+ }
+
+ att = moduleNode.GetAttribute ( "prefix", false );
+ if ( att != NULL )
+ prefix = att->value;
}
Module::~Module ()
_____
Modified: branches/xmlbuildsystem/reactos/tools/rbuild/rbuild.h
--- branches/xmlbuildsystem/reactos/tools/rbuild/rbuild.h
2005-03-11 07:41:19 UTC (rev 13923)
+++ branches/xmlbuildsystem/reactos/tools/rbuild/rbuild.h
2005-03-11 07:46:22 UTC (rev 13924)
@@ -131,6 +131,12 @@
Iso
};
+enum HostType
+{
+ HostDefault,
+ HostTrue,
+ HostFalse
+};
class Module
{
@@ -153,6 +159,8 @@
std::vector<LinkerFlag*> linkerFlags;
PchFile* pch;
bool cplusplus;
+ std::string prefix;
+ HostType host;
Module ( const Project& project,
const XMLElement& moduleNode,