fprintf ( OUT, "\t\t\t\t\t<Add option=\"-Wl,--entry,%s%s\" />\r\n", "_", module.GetEntryPoint(false).c_str () );
fprintf ( OUT, "\t\t\t\t\t<Add option=\"-Wl,--image-base,%s\" />\r\n", baseaddr == "" ? "0x40000" : baseaddr.c_str () );
- if ( module.type == Win32DLL )
+ if ( module.type == Win32DLL)
fprintf ( OUT, "\t\t\t\t\t<Add option=\"-Wl,--shared\" />\r\n" );
else if ( module.type == NativeDLL)
fprintf ( OUT, "\t\t\t\t\t<Add option=\"-Wl,--shared\" />\r\n" );
case Win32GUI:
handler = new MingwWin32GUIModuleHandler ( module );
break;
+ case KeyboardLayout:
case KernelModeDLL:
handler = new MingwKernelModeDLLModuleHandler ( module );
break;
&& module.type != Win32OCX
&& module.type != Win32CUI
&& module.type != Win32GUI
- && module.type != Win32SCR )
+ && module.type != Win32SCR)
{
// no implicit libraries
return;
if (getenv ( "BASEDIR" ) != NULL &&
(module.type == Kernel ||
module.type == KernelModeDLL ||
- module.type == KernelModeDriver))
+ module.type == KernelModeDriver ||
+ module.type == KeyboardLayout))
{
string WdkBase, SdkPath, CrtPath, DdkPath;
WdkBase = getenv ( "BASEDIR" );
if (getenv ( "BASEDIR" ) != NULL &&
(module.type == Kernel ||
module.type == KernelModeDLL ||
- module.type == KernelModeDriver))
+ module.type == KernelModeDriver ||
+ module.type == KeyboardLayout))
{
string WdkBase, CrtPath, DdkPath;
WdkBase = getenv ( "BASEDIR" );
{
case Kernel:
case KernelModeDLL:
+ case KeyboardLayout:
case NativeDLL:
case NativeCUI:
case Win32DLL:
}
}
+ att = moduleNode.GetAttribute ( "description", false );
+ if (att != NULL )
+ {
+ description = project.ResolveProperties(att->value);
+ }
+ else
+ description = "";
+
+ att = moduleNode.GetAttribute ( "lcid", false );
+ if (type == KeyboardLayout && att != NULL )
+ lcid = att->value;
+ else
+ lcid = "";
+
SetImportLibrary ( NULL );
}
return NativeDLL;
if ( attribute.value == "nativecui" )
return NativeCUI;
+ if ( attribute.value == "keyboardlayout" )
+ return KeyboardLayout;
if ( attribute.value == "win32dll" )
return Win32DLL;
if ( attribute.value == "win32ocx" )
{
case Kernel:
case KernelModeDLL:
+ case KeyboardLayout:
case NativeDLL:
case Win32DLL:
case Win32OCX:
case KernelModeDLL:
case NativeDLL:
+ case KeyboardLayout:
case Win32DLL:
return ".dll";
case Win32OCX:
{
case Kernel:
return "KiSystemStartup";
+ case KeyboardLayout:
case KernelModeDLL:
case KernelModeDriver:
return "DriverEntry@8";
case Win32SCR:
case Win32GUI:
return "0x00400000";
+ case KeyboardLayout:
case KernelModeDLL:
case KernelModeDriver:
return "0x00010000";
case Kernel:
case KernelModeDLL:
case NativeDLL:
+ case KeyboardLayout:
case Win32DLL:
case Win32OCX:
case KernelModeDriver:
RpcProxy,
HostStaticLibrary,
TypeDontCare,
- Cabinet
+ Cabinet,
+ KeyboardLayout
};
enum HostType
FileLocation *output; // "path/foo.exe"
FileLocation *dependency; // "path/foo.exe" or "path/libfoo.a"
FileLocation *install;
+ std::string description;
+ std::string lcid;
Module ( const Project& project,
const XMLElement& moduleNode,