[rbuild] Remove distinction between Iso/IsoRegTest, and LiveIso/LiveIsoRegTest module...
[reactos.git] / reactos / tools / rbuild / bootstrap.cpp
index 5657960..f71e095 100644 (file)
@@ -43,10 +43,11 @@ Bootstrap::IsSupportedModuleType ( ModuleType type )
        {
                case Kernel:
                case KernelModeDLL:
-        case ExportDriver:
+               case KeyboardLayout:
                case NativeDLL:
                case NativeCUI:
                case Win32DLL:
+               case Win32OCX:
                case Win32CUI:
                case Win32SCR:
                case Win32GUI:
@@ -54,23 +55,44 @@ Bootstrap::IsSupportedModuleType ( ModuleType type )
                case BootSector:
                case BootLoader:
                case BootProgram:
+               case Cabinet:
                        return true;
                case BuildTool:
                case StaticLibrary:
+               case HostStaticLibrary:
                case ObjectLibrary:
                case Iso:
                case LiveIso:
                case Test:
                case RpcServer:
                case RpcClient:
+               case RpcProxy:
                case Alias:
                case IdlHeader:
+               case IdlInterface:
+               case MessageHeader:
+               case EmbeddedTypeLib:
+               case ElfExecutable:
                        return false;
+               case TypeDontCare:
+                       break;
        }
        throw InvalidOperationException ( __FILE__,
                                          __LINE__ );
 }
 
+string
+Bootstrap::ReplaceVariable ( const string& name,
+                             const string& value,
+                             string path )
+{
+       size_t i = path.find ( name );
+       if ( i != string::npos )
+               return path.replace ( i, name.length (), value );
+       else
+               return path;
+}
+
 void
 Bootstrap::Initialize ()
 {
@@ -81,9 +103,9 @@ Bootstrap::Initialize ()
                        "<bootstrap> is not applicable for this module type." );
        }
 
-       const XMLAttribute* att = node.GetAttribute ( "base", false );
+       const XMLAttribute* att = node.GetAttribute ( "installbase", false );
        if ( att != NULL )
-               base = att->value;
+               base = ReplaceVariable ( "$(CDOUTPUT)", Environment::GetCdOutputPath (), att->value );
        else
                base = "";
 
@@ -91,7 +113,7 @@ Bootstrap::Initialize ()
        if ( att != NULL )
                nameoncd = att->value;
        else
-               nameoncd = module->GetTargetName ();
+               nameoncd = module->output->name;
 }
 
 void