diff --git a/reactos/tools/rbuild/backend/codeblocks/codeblocks.cpp b/reactos/tools/rbuild/backend/codeblocks/codeblocks.cpp
index 3960526c992..27dbb1d2be2 100644
--- a/reactos/tools/rbuild/backend/codeblocks/codeblocks.cpp
+++ b/reactos/tools/rbuild/backend/codeblocks/codeblocks.cpp
@@ -640,7 +640,7 @@ CBBackend::_generate_cbproj ( const Module& module )
fprintf ( OUT, "\t\t\t\t\t\r\n", "_", module.GetEntryPoint(false).c_str () );
fprintf ( OUT, "\t\t\t\t\t\r\n", baseaddr == "" ? "0x40000" : baseaddr.c_str () );
- if ( module.type == Win32DLL )
+ if ( module.type == Win32DLL)
fprintf ( OUT, "\t\t\t\t\t\r\n" );
else if ( module.type == NativeDLL)
fprintf ( OUT, "\t\t\t\t\t\r\n" );
diff --git a/reactos/tools/rbuild/backend/mingw/modulehandler.cpp b/reactos/tools/rbuild/backend/mingw/modulehandler.cpp
index bd2bdc9f97b..a1590f94ead 100644
--- a/reactos/tools/rbuild/backend/mingw/modulehandler.cpp
+++ b/reactos/tools/rbuild/backend/mingw/modulehandler.cpp
@@ -190,6 +190,7 @@ MingwModuleHandler::InstanciateHandler (
case Win32GUI:
handler = new MingwWin32GUIModuleHandler ( module );
break;
+ case KeyboardLayout:
case KernelModeDLL:
handler = new MingwKernelModeDLLModuleHandler ( module );
break;
@@ -2921,7 +2922,7 @@ MingwAddImplicitLibraries( Module &module )
&& module.type != Win32OCX
&& module.type != Win32CUI
&& module.type != Win32GUI
- && module.type != Win32SCR )
+ && module.type != Win32SCR)
{
// no implicit libraries
return;
diff --git a/reactos/tools/rbuild/backend/msvc/vcprojmaker.cpp b/reactos/tools/rbuild/backend/msvc/vcprojmaker.cpp
index 8fed100ce1b..8d9cdc61b8e 100644
--- a/reactos/tools/rbuild/backend/msvc/vcprojmaker.cpp
+++ b/reactos/tools/rbuild/backend/msvc/vcprojmaker.cpp
@@ -356,7 +356,8 @@ MSVCBackend::_generate_vcproj ( const Module& module )
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" );
@@ -514,7 +515,8 @@ MSVCBackend::_generate_vcproj ( const Module& module )
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" );
diff --git a/reactos/tools/rbuild/bootstrap.cpp b/reactos/tools/rbuild/bootstrap.cpp
index f286bfdb3aa..2276c61e02c 100644
--- a/reactos/tools/rbuild/bootstrap.cpp
+++ b/reactos/tools/rbuild/bootstrap.cpp
@@ -43,6 +43,7 @@ Bootstrap::IsSupportedModuleType ( ModuleType type )
{
case Kernel:
case KernelModeDLL:
+ case KeyboardLayout:
case NativeDLL:
case NativeCUI:
case Win32DLL:
diff --git a/reactos/tools/rbuild/module.cpp b/reactos/tools/rbuild/module.cpp
index 812638f4fd5..8943944f83b 100644
--- a/reactos/tools/rbuild/module.cpp
+++ b/reactos/tools/rbuild/module.cpp
@@ -466,6 +466,20 @@ Module::Module ( const Project& project,
}
}
+ 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 );
}
@@ -899,6 +913,8 @@ Module::GetModuleType ( const string& location, const XMLAttribute& attribute )
return NativeDLL;
if ( attribute.value == "nativecui" )
return NativeCUI;
+ if ( attribute.value == "keyboardlayout" )
+ return KeyboardLayout;
if ( attribute.value == "win32dll" )
return Win32DLL;
if ( attribute.value == "win32ocx" )
@@ -953,6 +969,7 @@ Module::GetTargetDirectoryTree () const
{
case Kernel:
case KernelModeDLL:
+ case KeyboardLayout:
case NativeDLL:
case Win32DLL:
case Win32OCX:
@@ -1015,6 +1032,7 @@ Module::GetDefaultModuleExtension () const
case KernelModeDLL:
case NativeDLL:
+ case KeyboardLayout:
case Win32DLL:
return ".dll";
case Win32OCX:
@@ -1057,6 +1075,7 @@ Module::GetDefaultModuleEntrypoint () const
{
case Kernel:
return "KiSystemStartup";
+ case KeyboardLayout:
case KernelModeDLL:
case KernelModeDriver:
return "DriverEntry@8";
@@ -1124,6 +1143,7 @@ Module::GetDefaultModuleBaseaddress () const
case Win32SCR:
case Win32GUI:
return "0x00400000";
+ case KeyboardLayout:
case KernelModeDLL:
case KernelModeDriver:
return "0x00010000";
@@ -1169,6 +1189,7 @@ Module::IsDLL () const
case Kernel:
case KernelModeDLL:
case NativeDLL:
+ case KeyboardLayout:
case Win32DLL:
case Win32OCX:
case KernelModeDriver:
diff --git a/reactos/tools/rbuild/rbuild.h b/reactos/tools/rbuild/rbuild.h
index e7a5b28735d..3375fbce36d 100644
--- a/reactos/tools/rbuild/rbuild.h
+++ b/reactos/tools/rbuild/rbuild.h
@@ -303,7 +303,8 @@ enum ModuleType
RpcProxy,
HostStaticLibrary,
TypeDontCare,
- Cabinet
+ Cabinet,
+ KeyboardLayout
};
enum HostType
@@ -375,6 +376,8 @@ public:
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,