From eb3bf8718cbec7a8fa590458a03a2189328180b0 Mon Sep 17 00:00:00 2001 From: Marc Piulachs Date: Thu, 15 May 2008 14:46:15 +0000 Subject: [PATCH] - Add specific module type for keyboard layouts - Added a description attribute to modules - Added a lcid attribute to modules (KeyboardLayout only) svn path=/trunk/; revision=33531 --- .../rbuild/backend/codeblocks/codeblocks.cpp | 2 +- .../rbuild/backend/mingw/modulehandler.cpp | 3 ++- .../tools/rbuild/backend/msvc/vcprojmaker.cpp | 6 ++++-- reactos/tools/rbuild/bootstrap.cpp | 1 + reactos/tools/rbuild/module.cpp | 21 +++++++++++++++++++ reactos/tools/rbuild/rbuild.h | 5 ++++- 6 files changed, 33 insertions(+), 5 deletions(-) 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,