void CompileFiles(ExtensionEntity ext, UxlEntity uxl) { foreach (var e in uxl.CopyFiles) { if (!Test(e.Condition)) { continue; } if (e.Type != null) { string newType; if (!_deprecated.TryGetValue(e.Type.Value.String, out newType)) { newType = e.Type.Value.String; } ext.CopyFiles.Add(new CopyFile(e.SourceName, e.Flags, e.TargetName, e.Condition, new SourceValue(e.Type.Value.Source, newType))); } else { ext.CopyFiles.Add(e); } } foreach (var e in uxl.ImageFiles) { if (Test(e.Condition)) { ext.ImageFiles.Add(e); } } }
// TODO: Deprecated method bool TryParseTypeEntity(string elmName, UxlEntity parent) { switch (elmName) { case "TypeElement": Log.Warning(GetSource(), ErrorCode.W0000, "<TypeElement> is deprecated, replace with <Require>"); ParseRequire(elmName, parent.Elements); return(true); default: return(TryParseEntity(elmName, parent)); } }
bool TryParseEntity(string elmName, UxlEntity parent) { switch (elmName) { case "Set": ParseSet(elmName, parent.Elements); return(true); case "Require": ParseRequire(elmName, parent.Elements); return(true); case "CopyFile": ParseCopyFile(elmName, parent, false); return(true); case "ProcessFile": ParseCopyFile(elmName, parent, true); return(true); case "CopyDirectory": ParseCopyDirectory(elmName, parent.CopyFiles); return(true); case "ImageFile": ParseImageFile(elmName, parent.ImageFiles); return(true); // TODO: Remove deprecated stuff below case "Element": Log.Warning(GetSource(), ErrorCode.W0000, "<Element> is deprecated, replace with <Require>"); ParseRequire(elmName, parent.Elements); return(true); case "LinkLibrary": Log.Warning(GetSource(), ErrorCode.W0000, "<LinkLibrary> is deprecated, replace with <Require Template=\"$(Name)\">"); ParseLinkLibrary(elmName, parent.Elements); return(true); case "UnoReference": Log.Warning(GetSource(), ErrorCode.W0000, "<UnoReference> is deprecated, replace with <Require Entity=\"$(Entity)\">"); ParseUnoReference(parent.Elements); return(true); default: return(false); } }
void ParseCopyFile(string elmName, UxlEntity parent, bool process) { SourceValue?sourceName = null; SourceValue?targetName = null; var isExecutable = false; var overwrite = true; SourceValue?cond = null; SourceValue?type = null; ParseAttributes( name => { switch (name) { case "Name": sourceName = GetValue(); return(true); case "TargetName": targetName = GetValue(); return(true); case "IsExecutable": isExecutable = GetBool(); return(true); case "Overwrite": overwrite = GetBool(); return(true); case "Condition": cond = GetValue(); return(true); case "Type": type = GetValue(); return(true); default: if (type != null || sourceName != null) { Log.Error(GetSource(), ErrorCode.E0000, "A (Type)=\"(Name)\" was already found on <" + elmName + ">"); } type = new SourceValue(GetSource(), name); sourceName = GetValue(); return(true); } }); if (sourceName == null) { Log.Error(GetSource(), ErrorCode.E0000, "Expected a 'Name' attribute on <" + elmName + ">"); } else { CopyFileFlags flags = 0; if (process) { flags |= CopyFileFlags.ProcessFile; } if (isExecutable) { flags |= CopyFileFlags.IsExecutable; } if (!overwrite) { flags |= CopyFileFlags.NoOverwrite; } parent.CopyFiles.Add(new CopyFile(sourceName.Value, flags, targetName, cond, type)); if (type != null) { parent.Elements.Add(new UxlElement(UxlElementType.Require, type.Value, sourceName.Value, cond, false)); } } ParseEmptyElement(); }