* Build bin2res, winmm, comctl32, aclui, acledit * Correct dependencies for build tool invocations * Normalize paths in the generated makefile Added: branches/xmlbuildsystem/reactos/lib/acledit/acledit.xml Added: branches/xmlbuildsystem/reactos/lib/aclui/aclui.xml Added: branches/xmlbuildsystem/reactos/lib/comctl32/comctl32.xml Added: branches/xmlbuildsystem/reactos/lib/comctl32/idb_hist_large.bmp Added: branches/xmlbuildsystem/reactos/lib/comctl32/idb_hist_small.bmp Added: branches/xmlbuildsystem/reactos/lib/comctl32/idb_std_large.bmp Added: branches/xmlbuildsystem/reactos/lib/comctl32/idb_std_small.bmp Added: branches/xmlbuildsystem/reactos/lib/comctl32/idb_view_large.bmp Added: branches/xmlbuildsystem/reactos/lib/comctl32/idb_view_small.bmp Added: branches/xmlbuildsystem/reactos/lib/comctl32/idc_copy.cur Added: branches/xmlbuildsystem/reactos/lib/comctl32/idc_divider.cur Added: branches/xmlbuildsystem/reactos/lib/comctl32/idc_divideropen.cur Added: branches/xmlbuildsystem/reactos/lib/comctl32/idc_movebutton.cur Added: branches/xmlbuildsystem/reactos/lib/comctl32/idi_dragarrow.ico Added: branches/xmlbuildsystem/reactos/lib/comctl32/idi_tt_error_sm.ico Added: branches/xmlbuildsystem/reactos/lib/comctl32/idi_tt_info_sm.ico Added: branches/xmlbuildsystem/reactos/lib/comctl32/idi_tt_warn_sm.ico Added: branches/xmlbuildsystem/reactos/lib/comctl32/idt_check.bmp Modified: branches/xmlbuildsystem/reactos/lib/directory.xml Added: branches/xmlbuildsystem/reactos/lib/winmm/winmm.xml Added: branches/xmlbuildsystem/reactos/tools/bin2res/bin2res.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/makefile Modified: branches/xmlbuildsystem/reactos/tools/rbuild/module.cpp Modified: branches/xmlbuildsystem/reactos/tools/rbuild/rbuild.h Modified: branches/xmlbuildsystem/reactos/tools/rbuild/test.h Modified: branches/xmlbuildsystem/reactos/tools/rbuild/tests/alltests.cpp Added: branches/xmlbuildsystem/reactos/tools/rbuild/tests/functiontest.cpp Modified: branches/xmlbuildsystem/reactos/tools/tools.xml Property changes on: branches/xmlbuildsystem/reactos/drivers/video/displays/vga ___________________________________________________________________ Name: svn:ignore - vgaddi.coff *.sym *.o *.a *.dll *.map *.tmp .*.d + vgaddi.coff *.sym *.o *.a *.dll *.map *.tmp .*.d *.sys _____
Added: branches/xmlbuildsystem/reactos/lib/acledit/acledit.xml --- branches/xmlbuildsystem/reactos/lib/acledit/acledit.xml 2005-01-20 21:03:35 UTC (rev 13167) +++ branches/xmlbuildsystem/reactos/lib/acledit/acledit.xml 2005-01-20 22:19:01 UTC (rev 13168) @@ -0,0 +1,14 @@
+<module name="acledit" type="win32dll"> + <importlibrary definition="acledit.def" /> + <include base="acledit">.</include> + <define name="UNICODE" /> + <define name="_UNICODE" /> + <define name="__REACTOS__" /> + <library>ntdll</library> + <library>kernel32</library> + <library>advapi32</library> + <library>user32</library> + <file>acledit.c</file> + <file>stubs.c</file> + <file>acledit.rc</file> +</module> _____
Added: branches/xmlbuildsystem/reactos/lib/aclui/aclui.xml --- branches/xmlbuildsystem/reactos/lib/aclui/aclui.xml 2005-01-20 21:03:35 UTC (rev 13167) +++ branches/xmlbuildsystem/reactos/lib/aclui/aclui.xml 2005-01-20 22:19:01 UTC (rev 13168) @@ -0,0 +1,18 @@
+<module name="aclui" type="win32dll"> + <importlibrary definition="aclui.def" /> + <include base="aclui">.</include> + <define name="UNICODE" /> + <define name="_UNICODE" /> + <define name="__REACTOS__" /> + <define name="__USE_W32API" /> + <define name="_WIN32_IE">0x0500</define> + <define name="_WIN32_WINNT">0x501</define> + <define name="WINVER">0x0600</define> + <library>rosrtl</library> + <library>ntdll</library> + <library>kernel32</library> + <library>user32</library> + <library>comctl32</library> + <file>aclui.c</file> + <file>aclui.rc</file> +</module> Property changes on: branches/xmlbuildsystem/reactos/lib/comctl32 ___________________________________________________________________ Name: svn:ignore - *.coff *.dll *.d *.a *.o *.sym *.map *.tmp Makefile.ros *.spec.def *.stubs.c *.ico *.bmp *.cur + *.coff *.dll *.d *.a *.o *.sym *.map *.tmp Makefile.ros *.spec.def *.stubs.c _____
Added: branches/xmlbuildsystem/reactos/lib/comctl32/comctl32.xml --- branches/xmlbuildsystem/reactos/lib/comctl32/comctl32.xml 2005-01-20 21:03:35 UTC (rev 13167) +++ branches/xmlbuildsystem/reactos/lib/comctl32/comctl32.xml 2005-01-20 22:19:01 UTC (rev 13168) @@ -0,0 +1,51 @@
+<module name="comctl32" type="win32dll"> + <dependency>bin2res</dependency> + <dependency>winebuild</dependency> + <importlibrary definition="comctl32.spec.def" /> + <include base="comctl32">.</include> + <include base="ReactOS">include/wine</include> + <define name="UNICODE" /> + <define name="_UNICODE" /> + <define name="__REACTOS__" /> + <define name="__USE_W32API" /> + <define name="_WIN32_IE">0x600</define> + <define name="_WIN32_WINNT">0x501</define> + <define name="WINVER">0x501</define> + <library>wine</library> + <library>ntdll</library> + <library>kernel32</library> + <library>advapi32</library> + <library>gdi32</library> + <library>user32</library> + <library>winmm</library> + <file>animate.c</file> + <file>comboex.c</file> + <file>comctl32undoc.c</file> + <file>commctrl.c</file> + <file>datetime.c</file> + <file>draglist.c</file> + <file>flatsb.c</file> + <file>header.c</file> + <file>hotkey.c</file> + <file>imagelist.c</file> + <file>ipaddress.c</file> + <file>listview.c</file> + <file>monthcal.c</file> + <file>nativefont.c</file> + <file>pager.c</file> + <file>progress.c</file> + <file>propsheet.c</file> + <file>rebar.c</file> + <file>smoothscroll.c</file> + <file>string.c</file> + <file>status.c</file> + <file>syslink.c</file> + <file>tab.c</file> + <file>toolbar.c</file> + <file>tooltips.c</file> + <file>trackbar.c</file> + <file>treeview.c</file> + <file>updown.c</file> + <file>rsrc.rc</file> + <file>comctl32.spec</file> +</module> _____
Added: branches/xmlbuildsystem/reactos/lib/comctl32/idb_hist_large.bmp (Binary files differ) Property changes on: branches/xmlbuildsystem/reactos/lib/comctl32/idb_hist_large.bmp ___________________________________________________________________ Name: svn:mime-type + application/octet-stream _____
Added: branches/xmlbuildsystem/reactos/lib/comctl32/idb_hist_small.bmp (Binary files differ) Property changes on: branches/xmlbuildsystem/reactos/lib/comctl32/idb_hist_small.bmp ___________________________________________________________________ Name: svn:mime-type + application/octet-stream _____
Added: branches/xmlbuildsystem/reactos/lib/comctl32/idb_std_large.bmp (Binary files differ) Property changes on: branches/xmlbuildsystem/reactos/lib/comctl32/idb_std_large.bmp ___________________________________________________________________ Name: svn:mime-type + application/octet-stream _____
Added: branches/xmlbuildsystem/reactos/lib/comctl32/idb_std_small.bmp (Binary files differ) Property changes on: branches/xmlbuildsystem/reactos/lib/comctl32/idb_std_small.bmp ___________________________________________________________________ Name: svn:mime-type + application/octet-stream _____
Added: branches/xmlbuildsystem/reactos/lib/comctl32/idb_view_large.bmp (Binary files differ) Property changes on: branches/xmlbuildsystem/reactos/lib/comctl32/idb_view_large.bmp ___________________________________________________________________ Name: svn:mime-type + application/octet-stream _____
Added: branches/xmlbuildsystem/reactos/lib/comctl32/idb_view_small.bmp (Binary files differ) Property changes on: branches/xmlbuildsystem/reactos/lib/comctl32/idb_view_small.bmp ___________________________________________________________________ Name: svn:mime-type + application/octet-stream _____
Added: branches/xmlbuildsystem/reactos/lib/comctl32/idc_copy.cur (Binary files differ) Property changes on: branches/xmlbuildsystem/reactos/lib/comctl32/idc_copy.cur ___________________________________________________________________ Name: svn:mime-type + application/octet-stream _____
Added: branches/xmlbuildsystem/reactos/lib/comctl32/idc_divider.cur (Binary files differ) Property changes on: branches/xmlbuildsystem/reactos/lib/comctl32/idc_divider.cur ___________________________________________________________________ Name: svn:mime-type + application/octet-stream _____
Added: branches/xmlbuildsystem/reactos/lib/comctl32/idc_divideropen.cur (Binary files differ) Property changes on: branches/xmlbuildsystem/reactos/lib/comctl32/idc_divideropen.cur ___________________________________________________________________ Name: svn:mime-type + application/octet-stream _____
Added: branches/xmlbuildsystem/reactos/lib/comctl32/idc_movebutton.cur (Binary files differ) Property changes on: branches/xmlbuildsystem/reactos/lib/comctl32/idc_movebutton.cur ___________________________________________________________________ Name: svn:mime-type + application/octet-stream _____
Added: branches/xmlbuildsystem/reactos/lib/comctl32/idi_dragarrow.ico (Binary files differ) Property changes on: branches/xmlbuildsystem/reactos/lib/comctl32/idi_dragarrow.ico ___________________________________________________________________ Name: svn:mime-type + application/octet-stream _____
Added: branches/xmlbuildsystem/reactos/lib/comctl32/idi_tt_error_sm.ico (Binary files differ) Property changes on: branches/xmlbuildsystem/reactos/lib/comctl32/idi_tt_error_sm.ico ___________________________________________________________________ Name: svn:mime-type + application/octet-stream _____
Added: branches/xmlbuildsystem/reactos/lib/comctl32/idi_tt_info_sm.ico (Binary files differ) Property changes on: branches/xmlbuildsystem/reactos/lib/comctl32/idi_tt_info_sm.ico ___________________________________________________________________ Name: svn:mime-type + application/octet-stream _____
Added: branches/xmlbuildsystem/reactos/lib/comctl32/idi_tt_warn_sm.ico (Binary files differ) Property changes on: branches/xmlbuildsystem/reactos/lib/comctl32/idi_tt_warn_sm.ico ___________________________________________________________________ Name: svn:mime-type + application/octet-stream _____
Added: branches/xmlbuildsystem/reactos/lib/comctl32/idt_check.bmp (Binary files differ) Property changes on: branches/xmlbuildsystem/reactos/lib/comctl32/idt_check.bmp ___________________________________________________________________ Name: svn:mime-type + application/octet-stream _____
Modified: branches/xmlbuildsystem/reactos/lib/directory.xml --- branches/xmlbuildsystem/reactos/lib/directory.xml 2005-01-20 21:03:35 UTC (rev 13167) +++ branches/xmlbuildsystem/reactos/lib/directory.xml 2005-01-20 22:19:01 UTC (rev 13168) @@ -1,3 +1,9 @@
+<directory name="acledit"> + <xi:include href="acledit/acledit.xml" /> +</directory> +<directory name="aclui"> + <xi:include href="aclui/aclui.xml" /> +</directory> <directory name="adns"> <xi:include href="adns/adns.xml" /> </directory> @@ -4,6 +10,9 @@ <directory name="advapi32"> <xi:include href="advapi32/advapi32.xml" /> </directory> +<directory name="comctl32"> + <xi:include href="comctl32/comctl32.xml" /> +</directory> <directory name="dnsapi"> <xi:include href="dnsapi/dnsapi.xml" /> </directory> @@ -46,6 +55,9 @@ <directory name="user32"> <xi:include href="user32/user32.xml" /> </directory> +<directory name="winmm"> + <xi:include href="winmm/winmm.xml" /> +</directory> <directory name="ws2_32"> <xi:include href="ws2_32/ws2_32.xml" /> </directory> _____
Added: branches/xmlbuildsystem/reactos/lib/winmm/winmm.xml --- branches/xmlbuildsystem/reactos/lib/winmm/winmm.xml 2005-01-20 21:03:35 UTC (rev 13167) +++ branches/xmlbuildsystem/reactos/lib/winmm/winmm.xml 2005-01-20 22:19:01 UTC (rev 13168) @@ -0,0 +1,29 @@
+<module name="winmm" type="win32dll"> + <dependency>bin2res</dependency> + <dependency>winebuild</dependency> + <importlibrary definition="winmm.spec.def" /> + <include base="winmm">.</include> + <include base="ReactOS">include/wine</include> + <define name="UNICODE" /> + <define name="_UNICODE" /> + <define name="__REACTOS__" /> + <define name="__USE_W32API" /> + <define name="_WIN32_IE">0x600</define> + <define name="_WIN32_WINNT">0x501</define> + <define name="WINVER">0x501</define> + <library>wine</library> + <library>ntdll</library> + <library>kernel32</library> + <library>advapi32</library> + <library>user32</library> + <file>driver.c</file> + <file>joystick.c</file> + <file>lolvldrv.c</file> + <file>mci.c</file> + <file>mmio.c</file> + <file>playsound.c</file> + <file>time.c</file> + <file>winmm.c</file> + <file>winmm_res.rc</file> + <file>winmm.spec</file> +</module> _____
Added: branches/xmlbuildsystem/reactos/tools/bin2res/bin2res.xml --- branches/xmlbuildsystem/reactos/tools/bin2res/bin2res.xml 2005-01-20 21:03:35 UTC (rev 13167) +++ branches/xmlbuildsystem/reactos/tools/bin2res/bin2res.xml 2005-01-20 22:19:01 UTC (rev 13168) @@ -0,0 +1,6 @@
+<module name="bin2res" type="buildtool"> + <include base="ReactOS">include/wine</include> + <define name="__REACTOS__" /> + <file>bin2res.c</file> + <file>mkstemps.c</file> +</module> _____
Modified: branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/mingw.cpp --- branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/mingw.cpp 2005-01-20 21:03:35 UTC (rev 13167) +++ branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/mingw.cpp 2005-01-20 22:19:01 UTC (rev 13168) @@ -184,6 +184,7 @@
fprintf ( fMakefile, "mkdir = tools%crmkdir\n", CSEP ); fprintf ( fMakefile, "NUL=NUL\n" ); fprintf ( fMakefile, "winebuild = tools" SSEP "winebuild" SSEP "winebuild\n" ); + fprintf ( fMakefile, "bin2res = tools" SSEP "winebuild" SSEP "bin2res\n" ); fprintf ( fMakefile, "\n" ); GenerateGlobalCFlagsAndProperties ( "=", @@ -197,13 +198,12 @@ fprintf ( fMakefile, "\n" );
fprintf ( fMakefile, ".PHONY: clean\n\n" ); - //fprintf ( fMakefile, "clean:\n\t-@${rm} $(PROJECT_CLEAN)\n\n" ); }
void MingwBackend::GenerateAllTarget () { - fprintf ( fMakefile, "all:" ); + fprintf ( fMakefile, "all:" ); for ( size_t i = 0; i < ProjectNode.modules.size (); i++ ) { Module& module = *ProjectNode.modules[i]; @@ -227,5 +227,5 @@ string FixupTargetFilename ( const string& targetFilename ) { - return string("$(ROS_INTERMEDIATE)") + targetFilename; + return string("$(ROS_INTERMEDIATE)") + NormalizeFilename ( targetFilename ); } _____
Modified: branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler .cpp --- branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler .cpp 2005-01-20 21:03:35 UTC (rev 13167) +++ branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler .cpp 2005-01-20 22:19:01 UTC (rev 13168) @@ -136,6 +136,16 @@
".a" ); }
+bool +MingwModuleHandler::IsGeneratedFile ( const File& file ) const +{ + string extension = GetExtension ( file.name ); + if ( extension == ".spec" || extension == "SPEC" ) + return true; + else + return false; +} + string MingwModuleHandler::GetImportLibraryDependencies ( const Module& module ) const { @@ -191,13 +201,17 @@ }
string -MingwModuleHandler::GetSourceFilenames ( const Module& module ) const +MingwModuleHandler::GetSourceFilenames ( const Module& module, + bool includeGeneratedFiles ) const { size_t i;
string sourceFilenames ( "" ); for ( i = 0; i < module.files.size (); i++ ) - sourceFilenames += " " + GetActualSourceFilename ( module.files[i]->name ); + { + if ( includeGeneratedFiles || !IsGeneratedFile ( *module.files[i] ) ) + sourceFilenames += " " + GetActualSourceFilename ( module.files[i]->name ); + } vector<If*> ifs = module.ifs; for ( i = 0; i < ifs.size(); i++ ) { @@ -206,12 +220,29 @@ for ( j = 0; j < rIf.ifs.size(); j++ ) ifs.push_back ( rIf.ifs[j] ); for ( j = 0; j < rIf.files.size(); j++ ) - sourceFilenames += " " + GetActualSourceFilename ( rIf.files[j]->name ); + { + if ( includeGeneratedFiles || !IsGeneratedFile ( *rIf.files[j] ) ) + sourceFilenames += " " + GetActualSourceFilename ( rIf.files[j]->name ); + } } return sourceFilenames; }
string +MingwModuleHandler::GetSourceFilenames ( const Module& module ) const +{ + return GetSourceFilenames ( module, + true ); +} + +string +MingwModuleHandler::GetSourceFilenamesWithoutGeneratedFiles ( const Module& module ) const +{ + return GetSourceFilenames ( module, + false ); +} + +string MingwModuleHandler::GetObjectFilename ( const string& sourceFilename ) const { string newExtension; @@ -1009,7 +1040,7 @@ parameters += invokeFile.switches; parameters += " "; } - parameters += invokeFile.name; + parameters += invokeFile.name ; }
return parameters; @@ -1033,20 +1064,20 @@
string invokeTarget = module.GetInvocationTarget ( i ); fprintf ( fMakefile, - "%s: %s\n\n", - invoke.GetTargets ().c_str (), + ".PHONY: %s\n\n", invokeTarget.c_str () ); fprintf ( fMakefile, + "%s: %s\n\n", + invokeTarget.c_str (), + invoke.GetTargets ().c_str () ); + fprintf ( fMakefile, "%s: %s\n", - invokeTarget.c_str (), + invoke.GetTargets ().c_str (), FixupTargetFilename ( invoke.invokeModule->GetPath () ).c_str () ); fprintf ( fMakefile, "\t%s %s\n\n", FixupTargetFilename ( invoke.invokeModule->GetPath () ).c_str (), GetInvocationParameters ( invoke ).c_str () ); - fprintf ( fMakefile, - ".PNONY: %s\n\n", - invokeTarget.c_str () ); } }
@@ -1061,7 +1092,7 @@ MingwModuleHandler::GeneratePreconditionDependencies ( const Module& module ) const { string preconditionDependenciesName = GetPreconditionDependenciesName ( module ); - string sourceFilenames = GetSourceFilenames ( module ); + string sourceFilenames = GetSourceFilenamesWithoutGeneratedFiles ( module ); string dependencies = GetModuleDependencies ( module ); string s = GetInvocationDependencies ( module ); if ( s.length () > 0 ) @@ -1330,10 +1361,10 @@ } else { + fprintf ( fMakefile, ".PHONY: %s\n\n", + target.c_str ()); fprintf ( fMakefile, "%s:\n", target.c_str ()); - fprintf ( fMakefile, ".PHONY: %s\n\n", - target.c_str ()); } }
@@ -1385,10 +1416,10 @@ } else { + fprintf ( fMakefile, ".PHONY: %s\n\n", + target.c_str ()); fprintf ( fMakefile, "%s:\n", target.c_str () ); - fprintf ( fMakefile, ".PHONY: %s\n\n", - target.c_str ()); } }
@@ -1447,10 +1478,10 @@ } else { + fprintf ( fMakefile, ".PHONY: %s\n\n", + target.c_str ()); fprintf ( fMakefile, "%s:\n\n", target.c_str ()); - fprintf ( fMakefile, ".PHONY: %s\n\n", - target.c_str ()); } }
@@ -1465,12 +1496,34 @@ void MingwWin32DLLModuleHandler::Process ( const Module& module ) { + GenerateExtractWineDLLResourcesTarget ( module ); GeneratePreconditionDependencies ( module ); GenerateWin32DLLModuleTarget ( module ); GenerateInvocations ( module ); }
void +MingwWin32DLLModuleHandler::GenerateExtractWineDLLResourcesTarget ( const Module& module ) +{ + fprintf ( fMakefile, ".PHONY: %s_extractresources\n\n", + module.name.c_str () ); + fprintf ( fMakefile, "%s_extractresources: bin2res\n", + module.name.c_str () ); + for ( size_t i = 0; i < module.files.size (); i++ ) + { + File& file = *module.files[i]; + string extension = GetExtension ( file.name ); + if ( extension == ".rc" || extension == ".RC" ) + { + string resource = FixupTargetFilename ( file.name ); + fprintf ( fMakefile, "\t@echo ${bin2res} -f -x %s\n", + resource.c_str () ); + } + } + fprintf ( fMakefile, "\n"); +} + +void MingwWin32DLLModuleHandler::GenerateWin32DLLModuleTarget ( const Module& module ) { static string ros_junk ( "$(ROS_TEMPORARY)" ); @@ -1497,10 +1550,10 @@ } else { + fprintf ( fMakefile, ".PHONY: %s\n\n", + target.c_str () ); fprintf ( fMakefile, "%s:\n\n", - target.c_str ()); - fprintf ( fMakefile, ".PHONY: %s\n\n", - target.c_str ()); + target.c_str () ); } }
@@ -1548,9 +1601,9 @@ } else { + fprintf ( fMakefile, ".PHONY: %s\n\n", + target.c_str ()); fprintf ( fMakefile, "%s:\n\n", target.c_str ()); - fprintf ( fMakefile, ".PHONY: %s\n\n", - target.c_str ()); } } _____
Modified: branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler .h --- branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler .h 2005-01-20 21:03:35 UTC (rev 13167) +++ branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler .h 2005-01-20 22:19:01 UTC (rev 13168) @@ -19,7 +19,7 @@
void GenerateDirectoryTargets () const;
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 GetDirectory (const std::string& filename ) const; std::string GetExtension ( const std::string& filename ) const; @@ -28,10 +28,14 @@ const std::string& newExtension ) const; std::string GetActualSourceFilename ( const std::string& filename ) const; std::string GetModuleArchiveFilename ( const Module& module ) const; + bool IsGeneratedFile ( const File& file ) const; std::string GetImportLibraryDependencies ( const Module& module ) const; std::string GetModuleDependencies ( const Module& module ) const; std::string GetAllDependencies ( const Module& module ) const; + std::string GetSourceFilenames ( const Module& module, + bool includeGeneratedFiles ) const; std::string GetSourceFilenames ( const Module& module ) const; + std::string GetSourceFilenamesWithoutGeneratedFiles ( const Module& module ) const;
std::string GetObjectFilename ( const std::string& sourceFilename ) const; std::string GetObjectFilenames ( const Module& module ) const; @@ -54,7 +58,7 @@ std::string GetDefinitionDependencies ( const Module& module ) const; std::string GetLinkingDependencies ( const Module& module ) const; static FILE* fMakefile; - static std::setstd::string directory_set; + static std::setstd::string directory_set; private: std::string ConcatenatePaths ( const std::string& path1, const std::string& path2 ) const; @@ -202,6 +206,7 @@ MingwWin32DLLModuleHandler (); virtual void Process ( const Module& module ); private: + void GenerateExtractWineDLLResourcesTarget ( const Module& module ); void GenerateWin32DLLModuleTarget ( const Module& module ); };
_____
Modified: branches/xmlbuildsystem/reactos/tools/rbuild/makefile --- branches/xmlbuildsystem/reactos/tools/rbuild/makefile 2005-01-20 21:03:35 UTC (rev 13167) +++ branches/xmlbuildsystem/reactos/tools/rbuild/makefile 2005-01-20 22:19:01 UTC (rev 13168) @@ -30,6 +30,7 @@
TESTS = \ tests/definetest.o \ + tests/functiontest.o \ tests/iftest.o \ tests/includetest.o \ tests/invoketest.o \ _____
Modified: branches/xmlbuildsystem/reactos/tools/rbuild/module.cpp --- branches/xmlbuildsystem/reactos/tools/rbuild/module.cpp 2005-01-20 21:03:35 UTC (rev 13167) +++ branches/xmlbuildsystem/reactos/tools/rbuild/module.cpp 2005-01-20 22:19:01 UTC (rev 13168) @@ -21,6 +21,15 @@
return s2; }
+string +NormalizeFilename ( const string& filename ) +{ + Path path; + string normalizedPath = path.Fixup ( filename, true ); + string relativeNormalizedPath = path.RelativeFromWorkingDirectory ( normalizedPath ); + return FixSeparator ( relativeNormalizedPath ); +} + Module::Module ( const Project& project, const XMLElement& moduleNode, const string& modulePath ) @@ -449,7 +458,7 @@ InvokeFile& file = *output[i]; if ( targets.length () > 0 ) targets += " "; - targets += file.name; + targets += NormalizeFilename ( file.name ); } return targets; } _____
Modified: branches/xmlbuildsystem/reactos/tools/rbuild/rbuild.h --- branches/xmlbuildsystem/reactos/tools/rbuild/rbuild.h 2005-01-20 21:03:35 UTC (rev 13167) +++ branches/xmlbuildsystem/reactos/tools/rbuild/rbuild.h 2005-01-20 22:19:01 UTC (rev 13168) @@ -315,4 +315,7 @@
extern std::string FixSeparator ( const std::string& s );
+extern std::string +NormalizeFilename ( const std::string& filename ); + #endif /* __RBUILD_H */ _____
Modified: branches/xmlbuildsystem/reactos/tools/rbuild/test.h --- branches/xmlbuildsystem/reactos/tools/rbuild/test.h 2005-01-20 21:03:35 UTC (rev 13167) +++ branches/xmlbuildsystem/reactos/tools/rbuild/test.h 2005-01-20 22:19:01 UTC (rev 13168) @@ -2,6 +2,7 @@
#define __TEST_H
#include "rbuild.h" +#include "backend/mingw/mingw.h"
class BaseTest { @@ -95,4 +96,10 @@ void Run(); };
+class FunctionTest : public BaseTest +{ +public: + void Run(); +}; + #endif /* __TEST_H */ _____
Modified: branches/xmlbuildsystem/reactos/tools/rbuild/tests/alltests.cpp --- branches/xmlbuildsystem/reactos/tools/rbuild/tests/alltests.cpp 2005-01-20 21:03:35 UTC (rev 13167) +++ branches/xmlbuildsystem/reactos/tools/rbuild/tests/alltests.cpp 2005-01-20 22:19:01 UTC (rev 13168) @@ -176,6 +176,7 @@
tests.push_back(new InvokeTest()); tests.push_back(new LinkerFlagTest()); tests.push_back(new IfTest()); + tests.push_back(new FunctionTest()); } };
_____
Added: branches/xmlbuildsystem/reactos/tools/rbuild/tests/functiontest.cpp --- branches/xmlbuildsystem/reactos/tools/rbuild/tests/functiontest.cpp 2005-01-20 21:03:35 UTC (rev 13167) +++ branches/xmlbuildsystem/reactos/tools/rbuild/tests/functiontest.cpp 2005-01-20 22:19:01 UTC (rev 13168) @@ -0,0 +1,9 @@
+#include "test.h" + +using std::string; + +void FunctionTest::Run () +{ + string fixedupFilename = FixupTargetFilename ( "." SSEP "dir1" SSEP "dir2" SSEP ".." SSEP "filename.txt" ); + ARE_EQUAL ( "$(ROS_INTERMEDIATE)dir1" SSEP "filename.txt", fixedupFilename ); +} _____
Modified: branches/xmlbuildsystem/reactos/tools/tools.xml --- branches/xmlbuildsystem/reactos/tools/tools.xml 2005-01-20 21:03:35 UTC (rev 13167) +++ branches/xmlbuildsystem/reactos/tools/tools.xml 2005-01-20 22:19:01 UTC (rev 13168) @@ -1,3 +1,6 @@
+<directory name="bin2res"> + <xi:include href="bin2res/bin2res.xml" /> +</directory> <module name="buildno" type="buildtool"> <include base="buildno">.</include> <file>buildno.c</file>