add a 'unicode' property to modules (not yet supported by mingw, need to
add a library for unicode builds some day)
Modified: trunk/reactos/tools/rbuild/module.cpp
Modified: trunk/reactos/tools/rbuild/rbuild.h
_____
Modified: trunk/reactos/tools/rbuild/module.cpp
--- trunk/reactos/tools/rbuild/module.cpp 2005-10-20 15:04:55 UTC
(rev 18632)
+++ trunk/reactos/tools/rbuild/module.cpp 2005-10-20 15:17:38 UTC
(rev 18633)
@@ -248,6 +248,23 @@
else
extension = GetDefaultModuleExtension ();
+ att = moduleNode.GetAttribute ( "unicode", false );
+ if ( att != NULL )
+ {
+ const char* p = att->value.c_str();
+ if ( !stricmp ( p, "true" ) || !stricmp ( p, "yes" ) )
+ isUnicode = true;
+ else if ( !stricmp ( p, "false" ) || !stricmp ( p, "no"
) )
+ isUnicode = false;
+ else
+ {
+ throw InvalidAttributeValueException (
+ moduleNode.location,
+ "unicode",
+ att->value );
+ }
+ }
+
att = moduleNode.GetAttribute ( "entrypoint", false );
if ( att != NULL )
entrypoint = att->value;
@@ -680,9 +697,15 @@
return "_DllMain@12";
case Win32CUI:
case Test:
- return "_mainCRTStartup";
+ if ( isUnicode )
+ return "_wmainCRTStartup";
+ else
+ return "_mainCRTStartup";
case Win32GUI:
- return "_WinMainCRTStartup";
+ if ( isUnicode )
+ return "_wWinMainCRTStartup";
+ else
+ return "_WinMainCRTStartup";
case KernelModeDriver:
return "_DriverEntry@8";
case BuildTool:
_____
Modified: trunk/reactos/tools/rbuild/rbuild.h
--- trunk/reactos/tools/rbuild/rbuild.h 2005-10-20 15:04:55 UTC (rev
18632)
+++ trunk/reactos/tools/rbuild/rbuild.h 2005-10-20 15:17:38 UTC (rev
18633)
@@ -222,6 +222,7 @@
ModuleType type;
ImportLibrary* importLibrary;
bool mangledSymbols;
+ bool isUnicode;
Bootstrap* bootstrap;
IfableData non_if_data;
std::vector<Invoke*> invocations;
Show replies by date