add a 'unicode' property to modules (not yet supported by mingw, need to add a library for unicode builds some day)

svn path=/trunk/; revision=18633
This commit is contained in:
Thomas Bluemel 2005-10-20 15:17:38 +00:00
parent 068ceb8c0f
commit f7dd935bcd
2 changed files with 26 additions and 2 deletions

View file

@ -248,6 +248,23 @@ Module::Module ( const Project& project,
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 @@ Module::GetDefaultModuleEntrypoint () const
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:

View file

@ -222,6 +222,7 @@ public:
ModuleType type;
ImportLibrary* importLibrary;
bool mangledSymbols;
bool isUnicode;
Bootstrap* bootstrap;
IfableData non_if_data;
std::vector<Invoke*> invocations;