}
}
+ 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 = "";
+
+ att = moduleNode.GetAttribute ( "layoutid", false );
+ if (type == KeyboardLayout && att != NULL )
+ layoutId = att->value;
+ else
+ layoutId = "";
+
+ att = moduleNode.GetAttribute ( "layoutnameresid", false );
+ if (type == KeyboardLayout && att != NULL )
+ layoutNameResId = att->value;
+ else
+ layoutNameResId = "";
+
SetImportLibrary ( NULL );
}
delete bootstrap;
if ( importLibrary )
delete importLibrary;
- delete output;
+ if ( dependency )
+ delete dependency;
+ if ( autoRegister )
+ delete autoRegister;
+ if ( output )
+ delete output;
}
void
return NativeDLL;
if ( attribute.value == "nativecui" )
return NativeCUI;
+ if ( attribute.value == "keyboardlayout" )
+ return KeyboardLayout;
if ( attribute.value == "win32dll" )
return Win32DLL;
if ( attribute.value == "win32ocx" )
return EmbeddedTypeLib;
if ( attribute.value == "elfexecutable" )
return ElfExecutable;
+ if ( attribute.value == "cabinet" )
+ return Cabinet;
throw InvalidAttributeValueException ( location,
attribute.name,
attribute.value );
{
case Kernel:
case KernelModeDLL:
+ case KeyboardLayout:
case NativeDLL:
case Win32DLL:
case Win32OCX:
case LiveIso:
case IsoRegTest:
case LiveIsoRegTest:
- case EmbeddedTypeLib:
case ElfExecutable:
+ case Cabinet:
return OutputDirectory;
+ case EmbeddedTypeLib:
case StaticLibrary:
case HostStaticLibrary:
case ObjectLibrary:
case KernelModeDLL:
case NativeDLL:
+ case KeyboardLayout:
case Win32DLL:
return ".dll";
case Win32OCX:
case KernelModeDriver:
case BootLoader:
return ".sys";
+ case Cabinet:
+ return ".cab";
case BootSector:
return ".o";
case Iso:
{
case Kernel:
return "KiSystemStartup";
+ case KeyboardLayout:
case KernelModeDLL:
case KernelModeDriver:
return "DriverEntry@8";
case IdlHeader:
case ElfExecutable:
case EmbeddedTypeLib:
+ case Cabinet:
return "";
case TypeDontCare:
break;
case Win32SCR:
case Win32GUI:
return "0x00400000";
+ case KeyboardLayout:
case KernelModeDLL:
case KernelModeDriver:
return "0x00010000";
case BootProgram:
case IdlHeader:
case EmbeddedTypeLib:
+ case Cabinet:
return "";
case TypeDontCare:
break;
case Kernel:
case KernelModeDLL:
case NativeDLL:
+ case KeyboardLayout:
case Win32DLL:
case Win32OCX:
case KernelModeDriver:
case IdlHeader:
case EmbeddedTypeLib:
case ElfExecutable:
+ case Cabinet:
return false;
case TypeDontCare:
break;
att = node_.GetAttribute ( "value", true );
assert(att);
value = att->value;
+
+ att = node_.GetAttribute ( "internal", false );
+ if ( att != NULL )
+ {
+ const char* p = att->value.c_str();
+ if ( !stricmp ( p, "true" ) || !stricmp ( p, "yes" ) )
+ isInternal = true;
+ else if ( !stricmp ( p, "false" ) || !stricmp ( p, "no" ) )
+ isInternal = false;
+ else
+ {
+ throw InvalidAttributeValueException (
+ node_.location,
+ "internal",
+ att->value );
+ }
+ }
+ else
+ isInternal = false;
}
Property::Property ( const Project& project_,