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;