mirror of
https://github.com/reactos/reactos.git
synced 2025-07-31 11:21:51 +00:00
* Build cabman and zlib
* Add iso module type svn path=/branches/xmlbuildsystem/; revision=13214
This commit is contained in:
parent
cd93112435
commit
ac58a35d34
11 changed files with 177 additions and 36 deletions
|
@ -50,4 +50,7 @@
|
||||||
<directory name="subsys">
|
<directory name="subsys">
|
||||||
<xi:include href="subsys/directory.xml" />
|
<xi:include href="subsys/directory.xml" />
|
||||||
</directory>
|
</directory>
|
||||||
|
|
||||||
|
<module name="bootcd" type="iso">
|
||||||
|
</module>
|
||||||
</project>
|
</project>
|
||||||
|
|
|
@ -100,3 +100,6 @@
|
||||||
<directory name="ws2_32">
|
<directory name="ws2_32">
|
||||||
<xi:include href="ws2_32/ws2_32.xml" />
|
<xi:include href="ws2_32/ws2_32.xml" />
|
||||||
</directory>
|
</directory>
|
||||||
|
<directory name="zlib">
|
||||||
|
<xi:include href="zlib/zlib.xml" />
|
||||||
|
</directory>
|
||||||
|
|
17
reactos/lib/zlib/zlib.xml
Normal file
17
reactos/lib/zlib/zlib.xml
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
<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>
|
||||||
|
</module>
|
10
reactos/tools/cabman/cabman.xml
Normal file
10
reactos/tools/cabman/cabman.xml
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
<module name="cabman" type="buildtool">
|
||||||
|
<include base="cabman">.</include>
|
||||||
|
<include base="zlib">.</include>
|
||||||
|
<library>zlib</library>
|
||||||
|
<file>cabinet.cxx</file>
|
||||||
|
<file>dfp.cxx</file>
|
||||||
|
<file>main.cxx</file>
|
||||||
|
<file>mszip.cxx</file>
|
||||||
|
<file>raw.cxx</file>
|
||||||
|
</module>
|
|
@ -48,14 +48,14 @@ MingwBackend::CreateMakefile ()
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
MingwBackend::CloseMakefile ()
|
MingwBackend::CloseMakefile () const
|
||||||
{
|
{
|
||||||
if (fMakefile)
|
if (fMakefile)
|
||||||
fclose ( fMakefile );
|
fclose ( fMakefile );
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
MingwBackend::GenerateHeader ()
|
MingwBackend::GenerateHeader () const
|
||||||
{
|
{
|
||||||
fprintf ( fMakefile, "# THIS FILE IS AUTOMATICALLY GENERATED, EDIT 'ReactOS.xml' INSTEAD\n\n" );
|
fprintf ( fMakefile, "# THIS FILE IS AUTOMATICALLY GENERATED, EDIT 'ReactOS.xml' INSTEAD\n\n" );
|
||||||
}
|
}
|
||||||
|
@ -101,7 +101,7 @@ MingwBackend::GenerateGlobalCFlagsAndProperties (
|
||||||
const vector<Property*>& properties,
|
const vector<Property*>& properties,
|
||||||
const vector<Include*>& includes,
|
const vector<Include*>& includes,
|
||||||
const vector<Define*>& defines,
|
const vector<Define*>& defines,
|
||||||
const vector<If*>& ifs )
|
const vector<If*>& ifs ) const
|
||||||
{
|
{
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
|
@ -144,7 +144,7 @@ MingwBackend::GenerateGlobalCFlagsAndProperties (
|
||||||
}
|
}
|
||||||
|
|
||||||
string
|
string
|
||||||
MingwBackend::GenerateProjectLFLAGS ()
|
MingwBackend::GenerateProjectLFLAGS () const
|
||||||
{
|
{
|
||||||
string lflags;
|
string lflags;
|
||||||
for ( size_t i = 0; i < ProjectNode.linkerFlags.size (); i++ )
|
for ( size_t i = 0; i < ProjectNode.linkerFlags.size (); i++ )
|
||||||
|
@ -158,15 +158,17 @@ MingwBackend::GenerateProjectLFLAGS ()
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
MingwBackend::GenerateGlobalVariables ()
|
MingwBackend::GenerateGlobalVariables () const
|
||||||
{
|
{
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
fprintf ( fMakefile, "host_gcc = gcc\n" );
|
fprintf ( fMakefile, "host_gcc = gcc\n" );
|
||||||
|
fprintf ( fMakefile, "host_gpp = g++\n" );
|
||||||
fprintf ( fMakefile, "host_ld = ld\n" );
|
fprintf ( fMakefile, "host_ld = ld\n" );
|
||||||
fprintf ( fMakefile, "host_ar = ar\n" );
|
fprintf ( fMakefile, "host_ar = ar\n" );
|
||||||
fprintf ( fMakefile, "host_objcopy = objcopy\n" );
|
fprintf ( fMakefile, "host_objcopy = objcopy\n" );
|
||||||
fprintf ( fMakefile, "rm = del /f /q\n" );
|
fprintf ( fMakefile, "rm = del /f /q\n" );
|
||||||
fprintf ( fMakefile, "gcc = gcc\n" );
|
fprintf ( fMakefile, "gcc = gcc\n" );
|
||||||
|
fprintf ( fMakefile, "gpp = g++\n" );
|
||||||
fprintf ( fMakefile, "ld = ld\n" );
|
fprintf ( fMakefile, "ld = ld\n" );
|
||||||
fprintf ( fMakefile, "ar = ar\n" );
|
fprintf ( fMakefile, "ar = ar\n" );
|
||||||
fprintf ( fMakefile, "objcopy = objcopy\n" );
|
fprintf ( fMakefile, "objcopy = objcopy\n" );
|
||||||
|
@ -174,11 +176,13 @@ MingwBackend::GenerateGlobalVariables ()
|
||||||
fprintf ( fMakefile, "windres = windres\n" );
|
fprintf ( fMakefile, "windres = windres\n" );
|
||||||
#else
|
#else
|
||||||
fprintf ( fMakefile, "host_gcc = gcc\n" );
|
fprintf ( fMakefile, "host_gcc = gcc\n" );
|
||||||
|
fprintf ( fMakefile, "host_gpp = g++\n" );
|
||||||
fprintf ( fMakefile, "host_ld = ld\n" );
|
fprintf ( fMakefile, "host_ld = ld\n" );
|
||||||
fprintf ( fMakefile, "host_ar = ar\n" );
|
fprintf ( fMakefile, "host_ar = ar\n" );
|
||||||
fprintf ( fMakefile, "host_objcopy = objcopy\n" );
|
fprintf ( fMakefile, "host_objcopy = objcopy\n" );
|
||||||
fprintf ( fMakefile, "rm = rm -f\n" );
|
fprintf ( fMakefile, "rm = rm -f\n" );
|
||||||
fprintf ( fMakefile, "gcc = mingw32-gcc\n" );
|
fprintf ( fMakefile, "gcc = mingw32-gcc\n" );
|
||||||
|
fprintf ( fMakefile, "gpp = mingw32-g++\n" );
|
||||||
fprintf ( fMakefile, "ld = mingw32-ld\n" );
|
fprintf ( fMakefile, "ld = mingw32-ld\n" );
|
||||||
fprintf ( fMakefile, "ar = mingw32-ar\n" );
|
fprintf ( fMakefile, "ar = mingw32-ar\n" );
|
||||||
fprintf ( fMakefile, "objcopy = mingw32-objcopy\n" );
|
fprintf ( fMakefile, "objcopy = mingw32-objcopy\n" );
|
||||||
|
@ -204,14 +208,24 @@ MingwBackend::GenerateGlobalVariables ()
|
||||||
fprintf ( fMakefile, ".PHONY: clean\n\n" );
|
fprintf ( fMakefile, ".PHONY: clean\n\n" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
MingwBackend::IncludeInAllTarget ( const Module& module ) const
|
||||||
|
{
|
||||||
|
if ( module.type == ObjectLibrary )
|
||||||
|
return false;
|
||||||
|
if ( module.type == Iso )
|
||||||
|
return false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
MingwBackend::GenerateAllTarget ()
|
MingwBackend::GenerateAllTarget () const
|
||||||
{
|
{
|
||||||
fprintf ( fMakefile, "all:" );
|
fprintf ( fMakefile, "all:" );
|
||||||
for ( size_t i = 0; i < ProjectNode.modules.size (); i++ )
|
for ( size_t i = 0; i < ProjectNode.modules.size (); i++ )
|
||||||
{
|
{
|
||||||
Module& module = *ProjectNode.modules[i];
|
Module& module = *ProjectNode.modules[i];
|
||||||
if ( module.type != ObjectLibrary )
|
if ( IncludeInAllTarget ( module ) )
|
||||||
{
|
{
|
||||||
fprintf ( fMakefile,
|
fprintf ( fMakefile,
|
||||||
" %s",
|
" %s",
|
||||||
|
@ -222,7 +236,7 @@ MingwBackend::GenerateAllTarget ()
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
MingwBackend::ProcessModule ( Module& module )
|
MingwBackend::ProcessModule ( Module& module ) const
|
||||||
{
|
{
|
||||||
MingwModuleHandler* h = MingwModuleHandler::LookupHandler (
|
MingwModuleHandler* h = MingwModuleHandler::LookupHandler (
|
||||||
module.node.location,
|
module.node.location,
|
||||||
|
|
|
@ -10,10 +10,10 @@ public:
|
||||||
MingwBackend ( Project& project );
|
MingwBackend ( Project& project );
|
||||||
virtual void Process ();
|
virtual void Process ();
|
||||||
private:
|
private:
|
||||||
void ProcessModule ( Module& module );
|
void ProcessModule ( Module& module ) const;
|
||||||
void CreateMakefile ();
|
void CreateMakefile ();
|
||||||
void CloseMakefile ();
|
void CloseMakefile () const;
|
||||||
void GenerateHeader ();
|
void GenerateHeader () const;
|
||||||
void GenerateProjectCFlagsMacro ( const char* assignmentOperation,
|
void GenerateProjectCFlagsMacro ( const char* assignmentOperation,
|
||||||
const std::vector<Include*>& includes,
|
const std::vector<Include*>& includes,
|
||||||
const std::vector<Define*>& defines ) const;
|
const std::vector<Define*>& defines ) const;
|
||||||
|
@ -21,11 +21,12 @@ private:
|
||||||
const std::vector<Property*>& properties,
|
const std::vector<Property*>& properties,
|
||||||
const std::vector<Include*>& includes,
|
const std::vector<Include*>& includes,
|
||||||
const std::vector<Define*>& defines,
|
const std::vector<Define*>& defines,
|
||||||
const std::vector<If*>& ifs );
|
const std::vector<If*>& ifs ) const;
|
||||||
std::string GenerateProjectLFLAGS ();
|
std::string GenerateProjectLFLAGS () const;
|
||||||
void GenerateDirectoryTargets ();
|
void GenerateDirectoryTargets () const;
|
||||||
void GenerateGlobalVariables ();
|
void GenerateGlobalVariables () const;
|
||||||
void GenerateAllTarget ();
|
bool IncludeInAllTarget ( const Module& module ) const;
|
||||||
|
void GenerateAllTarget () const;
|
||||||
FILE* fMakefile;
|
FILE* fMakefile;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -82,18 +82,6 @@ MingwModuleHandler::GetDirectory ( const string& filename ) const
|
||||||
return filename.substr ( 0, index );
|
return filename.substr ( 0, index );
|
||||||
}
|
}
|
||||||
|
|
||||||
string
|
|
||||||
MingwModuleHandler::GetExtension ( const string& filename ) const
|
|
||||||
{
|
|
||||||
size_t index = filename.find_last_of ( '/' );
|
|
||||||
if (index == string::npos) index = 0;
|
|
||||||
string tmp = filename.substr( index, filename.size() - index );
|
|
||||||
size_t ext_index = tmp.find_last_of( '.' );
|
|
||||||
if (ext_index != string::npos)
|
|
||||||
return filename.substr ( index + ext_index, filename.size() );
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
|
|
||||||
string
|
string
|
||||||
MingwModuleHandler::GetBasename ( const string& filename ) const
|
MingwModuleHandler::GetBasename ( const string& filename ) const
|
||||||
{
|
{
|
||||||
|
@ -722,6 +710,7 @@ void
|
||||||
MingwModuleHandler::GenerateCommands ( const Module& module,
|
MingwModuleHandler::GenerateCommands ( const Module& module,
|
||||||
const string& sourceFilename,
|
const string& sourceFilename,
|
||||||
const string& cc,
|
const string& cc,
|
||||||
|
const string& cppc,
|
||||||
const string& cflagsMacro,
|
const string& cflagsMacro,
|
||||||
const string& nasmflagsMacro,
|
const string& nasmflagsMacro,
|
||||||
const string& windresflagsMacro ) const
|
const string& windresflagsMacro ) const
|
||||||
|
@ -735,6 +724,14 @@ MingwModuleHandler::GenerateCommands ( const Module& module,
|
||||||
cflagsMacro );
|
cflagsMacro );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
else if ( extension == ".cxx" || extension == ".CXX" )
|
||||||
|
{
|
||||||
|
GenerateGccCommand ( module,
|
||||||
|
sourceFilename,
|
||||||
|
cppc,
|
||||||
|
cflagsMacro );
|
||||||
|
return;
|
||||||
|
}
|
||||||
else if ( extension == ".s" || extension == ".S" )
|
else if ( extension == ".s" || extension == ".S" )
|
||||||
{
|
{
|
||||||
GenerateGccAssemblerCommand ( module,
|
GenerateGccAssemblerCommand ( module,
|
||||||
|
@ -848,6 +845,7 @@ MingwModuleHandler::GenerateObjectFileTargets ( const Module& module,
|
||||||
const vector<File*>& files,
|
const vector<File*>& files,
|
||||||
const vector<If*>& ifs,
|
const vector<If*>& ifs,
|
||||||
const string& cc,
|
const string& cc,
|
||||||
|
const string& cppc,
|
||||||
const string& cflagsMacro,
|
const string& cflagsMacro,
|
||||||
const string& nasmflagsMacro,
|
const string& nasmflagsMacro,
|
||||||
const string& windresflagsMacro ) const
|
const string& windresflagsMacro ) const
|
||||||
|
@ -860,6 +858,7 @@ MingwModuleHandler::GenerateObjectFileTargets ( const Module& module,
|
||||||
GenerateCommands ( module,
|
GenerateCommands ( module,
|
||||||
sourceFilename,
|
sourceFilename,
|
||||||
cc,
|
cc,
|
||||||
|
cppc,
|
||||||
cflagsMacro,
|
cflagsMacro,
|
||||||
nasmflagsMacro,
|
nasmflagsMacro,
|
||||||
windresflagsMacro );
|
windresflagsMacro );
|
||||||
|
@ -873,6 +872,7 @@ MingwModuleHandler::GenerateObjectFileTargets ( const Module& module,
|
||||||
ifs[i]->files,
|
ifs[i]->files,
|
||||||
ifs[i]->ifs,
|
ifs[i]->ifs,
|
||||||
cc,
|
cc,
|
||||||
|
cppc,
|
||||||
cflagsMacro,
|
cflagsMacro,
|
||||||
nasmflagsMacro,
|
nasmflagsMacro,
|
||||||
windresflagsMacro );
|
windresflagsMacro );
|
||||||
|
@ -882,6 +882,7 @@ MingwModuleHandler::GenerateObjectFileTargets ( const Module& module,
|
||||||
void
|
void
|
||||||
MingwModuleHandler::GenerateObjectFileTargets ( const Module& module,
|
MingwModuleHandler::GenerateObjectFileTargets ( const Module& module,
|
||||||
const string& cc,
|
const string& cc,
|
||||||
|
const string& cppc,
|
||||||
const string& cflagsMacro,
|
const string& cflagsMacro,
|
||||||
const string& nasmflagsMacro,
|
const string& nasmflagsMacro,
|
||||||
const string& windresflagsMacro ) const
|
const string& windresflagsMacro ) const
|
||||||
|
@ -890,6 +891,7 @@ MingwModuleHandler::GenerateObjectFileTargets ( const Module& module,
|
||||||
module.files,
|
module.files,
|
||||||
module.ifs,
|
module.ifs,
|
||||||
cc,
|
cc,
|
||||||
|
cppc,
|
||||||
cflagsMacro,
|
cflagsMacro,
|
||||||
nasmflagsMacro,
|
nasmflagsMacro,
|
||||||
windresflagsMacro );
|
windresflagsMacro );
|
||||||
|
@ -956,6 +958,7 @@ void
|
||||||
MingwModuleHandler::GenerateMacrosAndTargets (
|
MingwModuleHandler::GenerateMacrosAndTargets (
|
||||||
const Module& module,
|
const Module& module,
|
||||||
const string& cc,
|
const string& cc,
|
||||||
|
const string& cppc,
|
||||||
const string& ar,
|
const string& ar,
|
||||||
const string* cflags ) const
|
const string* cflags ) const
|
||||||
{
|
{
|
||||||
|
@ -995,6 +998,7 @@ MingwModuleHandler::GenerateMacrosAndTargets (
|
||||||
string ar_target = GenerateArchiveTarget ( module, ar, objectsMacro );
|
string ar_target = GenerateArchiveTarget ( module, ar, objectsMacro );
|
||||||
GenerateObjectFileTargets ( module,
|
GenerateObjectFileTargets ( module,
|
||||||
cc,
|
cc,
|
||||||
|
cppc,
|
||||||
cflagsMacro,
|
cflagsMacro,
|
||||||
nasmflagsMacro,
|
nasmflagsMacro,
|
||||||
windresflagsMacro );
|
windresflagsMacro );
|
||||||
|
@ -1017,7 +1021,7 @@ MingwModuleHandler::GenerateMacrosAndTargets (
|
||||||
void
|
void
|
||||||
MingwModuleHandler::GenerateMacrosAndTargetsHost ( const Module& module ) const
|
MingwModuleHandler::GenerateMacrosAndTargetsHost ( const Module& module ) const
|
||||||
{
|
{
|
||||||
GenerateMacrosAndTargets ( module, "${host_gcc}", "${host_ar}", NULL );
|
GenerateMacrosAndTargets ( module, "${host_gcc}", "${host_gpp}", "${host_ar}", NULL );
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -1031,7 +1035,7 @@ void
|
||||||
MingwModuleHandler::GenerateMacrosAndTargetsTarget ( const Module& module,
|
MingwModuleHandler::GenerateMacrosAndTargetsTarget ( const Module& module,
|
||||||
const string* clags ) const
|
const string* clags ) const
|
||||||
{
|
{
|
||||||
GenerateMacrosAndTargets ( module, "${gcc}", "${ar}", clags );
|
GenerateMacrosAndTargets ( module, "${gcc}", "${gpp}", "${ar}", clags );
|
||||||
}
|
}
|
||||||
|
|
||||||
string
|
string
|
||||||
|
@ -1251,17 +1255,27 @@ MingwBuildToolModuleHandler::GenerateBuildToolModuleTarget ( const Module& modul
|
||||||
{
|
{
|
||||||
string target ( FixupTargetFilename ( module.GetPath () ) );
|
string target ( FixupTargetFilename ( module.GetPath () ) );
|
||||||
string archiveFilename = GetModuleArchiveFilename ( module );
|
string archiveFilename = GetModuleArchiveFilename ( module );
|
||||||
|
string importLibraryDependencies = GetImportLibraryDependencies ( module );
|
||||||
|
|
||||||
GenerateMacrosAndTargetsHost ( module );
|
GenerateMacrosAndTargetsHost ( module );
|
||||||
|
|
||||||
fprintf ( fMakefile, "%s: %s\n",
|
string linker;
|
||||||
|
if ( module.HasFileWithExtensions ( ".cxx", ".CXX" ) )
|
||||||
|
linker = "${host_gpp}";
|
||||||
|
else
|
||||||
|
linker = "${host_gcc}";
|
||||||
|
|
||||||
|
fprintf ( fMakefile, "%s: %s %s\n",
|
||||||
target.c_str (),
|
target.c_str (),
|
||||||
archiveFilename.c_str () );
|
archiveFilename.c_str (),
|
||||||
|
importLibraryDependencies.c_str () );
|
||||||
fprintf ( fMakefile,
|
fprintf ( fMakefile,
|
||||||
"\t${host_gcc} %s -o %s %s\n\n",
|
"\t%s %s -o %s %s %s\n\n",
|
||||||
|
linker.c_str (),
|
||||||
GetLinkerMacro ( module ).c_str (),
|
GetLinkerMacro ( module ).c_str (),
|
||||||
target.c_str (),
|
target.c_str (),
|
||||||
archiveFilename.c_str () );
|
archiveFilename.c_str (),
|
||||||
|
importLibraryDependencies.c_str () );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1718,3 +1732,30 @@ MingwBootLoaderModuleHandler::GenerateBootLoaderModuleTarget ( const Module& mod
|
||||||
"\t${rm} %s\n",
|
"\t${rm} %s\n",
|
||||||
junk_tmp.c_str () );
|
junk_tmp.c_str () );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static MingwIsoModuleHandler isomodule_handler;
|
||||||
|
|
||||||
|
MingwIsoModuleHandler::MingwIsoModuleHandler ()
|
||||||
|
: MingwModuleHandler ( Iso )
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
MingwIsoModuleHandler::Process ( const Module& module )
|
||||||
|
{
|
||||||
|
GeneratePreconditionDependencies ( module );
|
||||||
|
GenerateIsoModuleTarget ( module );
|
||||||
|
GenerateInvocations ( module );
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
MingwIsoModuleHandler::GenerateIsoModuleTarget ( const Module& module )
|
||||||
|
{
|
||||||
|
string target ( FixupTargetFilename ( module.GetPath ()) );
|
||||||
|
|
||||||
|
fprintf ( fMakefile, "%s: all\n",
|
||||||
|
target.c_str () );
|
||||||
|
fprintf ( fMakefile,
|
||||||
|
"\t\n" );
|
||||||
|
}
|
||||||
|
|
|
@ -22,7 +22,6 @@ protected:
|
||||||
const std::string &PassThruCacheDirectory ( const std::string &f ) const;
|
const std::string &PassThruCacheDirectory ( const std::string &f ) const;
|
||||||
std::string GetWorkingDirectory () const;
|
std::string GetWorkingDirectory () const;
|
||||||
std::string GetDirectory (const std::string& filename ) const;
|
std::string GetDirectory (const std::string& filename ) const;
|
||||||
std::string GetExtension ( const std::string& filename ) const;
|
|
||||||
std::string GetBasename ( const std::string& filename ) const;
|
std::string GetBasename ( const std::string& filename ) const;
|
||||||
std::string ReplaceExtension ( const std::string& filename,
|
std::string ReplaceExtension ( const std::string& filename,
|
||||||
const std::string& newExtension ) const;
|
const std::string& newExtension ) const;
|
||||||
|
@ -114,6 +113,7 @@ private:
|
||||||
void GenerateCommands ( const Module& module,
|
void GenerateCommands ( const Module& module,
|
||||||
const std::string& sourceFilename,
|
const std::string& sourceFilename,
|
||||||
const std::string& cc,
|
const std::string& cc,
|
||||||
|
const std::string& cppc,
|
||||||
const std::string& cflagsMacro,
|
const std::string& cflagsMacro,
|
||||||
const std::string& nasmflagsMacro,
|
const std::string& nasmflagsMacro,
|
||||||
const std::string& windresflagsMacro ) const;
|
const std::string& windresflagsMacro ) const;
|
||||||
|
@ -121,11 +121,13 @@ private:
|
||||||
const std::vector<File*>& files,
|
const std::vector<File*>& files,
|
||||||
const std::vector<If*>& ifs,
|
const std::vector<If*>& ifs,
|
||||||
const std::string& cc,
|
const std::string& cc,
|
||||||
|
const std::string& cppc,
|
||||||
const std::string& cflagsMacro,
|
const std::string& cflagsMacro,
|
||||||
const std::string& nasmflagsMacro,
|
const std::string& nasmflagsMacro,
|
||||||
const std::string& windresflagsMacro ) const;
|
const std::string& windresflagsMacro ) const;
|
||||||
void GenerateObjectFileTargets ( const Module& module,
|
void GenerateObjectFileTargets ( const Module& module,
|
||||||
const std::string& cc,
|
const std::string& cc,
|
||||||
|
const std::string& cppc,
|
||||||
const std::string& cflagsMacro,
|
const std::string& cflagsMacro,
|
||||||
const std::string& nasmflagsMacro,
|
const std::string& nasmflagsMacro,
|
||||||
const std::string& windresflagsMacro ) const;
|
const std::string& windresflagsMacro ) const;
|
||||||
|
@ -137,6 +139,7 @@ private:
|
||||||
const std::string& objs_macro ) const;
|
const std::string& objs_macro ) const;
|
||||||
void GenerateMacrosAndTargets ( const Module& module,
|
void GenerateMacrosAndTargets ( const Module& module,
|
||||||
const std::string& cc,
|
const std::string& cc,
|
||||||
|
const std::string& cppc,
|
||||||
const std::string& ar,
|
const std::string& ar,
|
||||||
const std::string* clags ) const;
|
const std::string* clags ) const;
|
||||||
std::string GetPreconditionDependenciesName ( const Module& module ) const;
|
std::string GetPreconditionDependenciesName ( const Module& module ) const;
|
||||||
|
@ -244,4 +247,14 @@ private:
|
||||||
void GenerateBootLoaderModuleTarget ( const Module& module );
|
void GenerateBootLoaderModuleTarget ( const Module& module );
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
class MingwIsoModuleHandler : public MingwModuleHandler
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
MingwIsoModuleHandler ();
|
||||||
|
virtual void Process ( const Module& module );
|
||||||
|
private:
|
||||||
|
void GenerateIsoModuleTarget ( const Module& module );
|
||||||
|
};
|
||||||
|
|
||||||
#endif /* MINGW_MODULEHANDLER_H */
|
#endif /* MINGW_MODULEHANDLER_H */
|
||||||
|
|
|
@ -19,6 +19,18 @@ FixSeparator ( const string& s )
|
||||||
return s2;
|
return s2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
string
|
||||||
|
GetExtension ( const string& filename )
|
||||||
|
{
|
||||||
|
size_t index = filename.find_last_of ( '/' );
|
||||||
|
if (index == string::npos) index = 0;
|
||||||
|
string tmp = filename.substr( index, filename.size() - index );
|
||||||
|
size_t ext_index = tmp.find_last_of( '.' );
|
||||||
|
if (ext_index != string::npos)
|
||||||
|
return filename.substr ( index + ext_index, filename.size() );
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
string
|
string
|
||||||
NormalizeFilename ( const string& filename )
|
NormalizeFilename ( const string& filename )
|
||||||
{
|
{
|
||||||
|
@ -253,6 +265,8 @@ Module::GetModuleType ( const string& location, const XMLAttribute& attribute )
|
||||||
return Win32GUI;
|
return Win32GUI;
|
||||||
if ( attribute.value == "bootloader" )
|
if ( attribute.value == "bootloader" )
|
||||||
return BootLoader;
|
return BootLoader;
|
||||||
|
if ( attribute.value == "iso" )
|
||||||
|
return Iso;
|
||||||
throw InvalidAttributeValueException ( location,
|
throw InvalidAttributeValueException ( location,
|
||||||
attribute.name,
|
attribute.name,
|
||||||
attribute.value );
|
attribute.value );
|
||||||
|
@ -279,6 +293,8 @@ Module::GetDefaultModuleExtension () const
|
||||||
case KernelModeDriver:
|
case KernelModeDriver:
|
||||||
case BootLoader:
|
case BootLoader:
|
||||||
return ".sys";
|
return ".sys";
|
||||||
|
case Iso:
|
||||||
|
return ".iso";
|
||||||
}
|
}
|
||||||
throw InvalidOperationException ( __FILE__,
|
throw InvalidOperationException ( __FILE__,
|
||||||
__LINE__ );
|
__LINE__ );
|
||||||
|
@ -356,6 +372,20 @@ Module::GetInvocationTarget ( const int index ) const
|
||||||
index );
|
index );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
Module::HasFileWithExtensions ( const std::string& extension1,
|
||||||
|
const std::string& extension2 ) const
|
||||||
|
{
|
||||||
|
for ( size_t i = 0; i < files.size (); i++ )
|
||||||
|
{
|
||||||
|
File& file = *files[i];
|
||||||
|
string extension = GetExtension ( file.name );
|
||||||
|
if ( extension == extension1 || extension == extension2 )
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
File::File ( const string& _name, bool _first )
|
File::File ( const string& _name, bool _first )
|
||||||
: name(_name), first(_first)
|
: name(_name), first(_first)
|
||||||
|
|
|
@ -79,7 +79,8 @@ enum ModuleType
|
||||||
NativeDLL,
|
NativeDLL,
|
||||||
Win32DLL,
|
Win32DLL,
|
||||||
Win32GUI,
|
Win32GUI,
|
||||||
BootLoader
|
BootLoader,
|
||||||
|
Iso
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -117,6 +118,8 @@ public:
|
||||||
std::string GetPathWithPrefix ( const std::string& prefix ) const;
|
std::string GetPathWithPrefix ( const std::string& prefix ) const;
|
||||||
std::string GetTargets () const;
|
std::string GetTargets () const;
|
||||||
std::string GetInvocationTarget ( const int index ) const;
|
std::string GetInvocationTarget ( const int index ) const;
|
||||||
|
bool HasFileWithExtensions ( const std::string& extension1,
|
||||||
|
const std::string& extension2 ) const;
|
||||||
void ProcessXML();
|
void ProcessXML();
|
||||||
private:
|
private:
|
||||||
std::string GetDefaultModuleExtension () const;
|
std::string GetDefaultModuleExtension () const;
|
||||||
|
@ -339,6 +342,9 @@ public:
|
||||||
extern std::string
|
extern std::string
|
||||||
FixSeparator ( const std::string& s );
|
FixSeparator ( const std::string& s );
|
||||||
|
|
||||||
|
extern std::string
|
||||||
|
GetExtension ( const std::string& filename );
|
||||||
|
|
||||||
extern std::string
|
extern std::string
|
||||||
NormalizeFilename ( const std::string& filename );
|
NormalizeFilename ( const std::string& filename );
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
<directory name="bin2res">
|
<directory name="bin2res">
|
||||||
<xi:include href="bin2res/bin2res.xml" />
|
<xi:include href="bin2res/bin2res.xml" />
|
||||||
</directory>
|
</directory>
|
||||||
|
<directory name="cabman">
|
||||||
|
<xi:include href="cabman/cabman.xml" />
|
||||||
|
</directory>
|
||||||
<module name="buildno" type="buildtool">
|
<module name="buildno" type="buildtool">
|
||||||
<include base="buildno">.</include>
|
<include base="buildno">.</include>
|
||||||
<file>buildno.c</file>
|
<file>buildno.c</file>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue