aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Mensching <rob@firegiant.com>2020-06-22 23:15:20 -0700
committerRob Mensching <rob@firegiant.com>2020-06-23 02:10:31 -0700
commitcc3313d974870cd62ac7ae7eccbcf41a85417e33 (patch)
tree5606de5729870ca3a31c82cd18a55c3781853a8f
parent7ed30050420916896f78841e35b80bb152bd38d1 (diff)
downloadwix-cc3313d974870cd62ac7ae7eccbcf41a85417e33.tar.gz
wix-cc3313d974870cd62ac7ae7eccbcf41a85417e33.tar.bz2
wix-cc3313d974870cd62ac7ae7eccbcf41a85417e33.zip
Move launch conditions to Launch element
-rw-r--r--src/WixToolset.Core/Compiler.cs58
1 files changed, 58 insertions, 0 deletions
diff --git a/src/WixToolset.Core/Compiler.cs b/src/WixToolset.Core/Compiler.cs
index 358f8844..1a9746fc 100644
--- a/src/WixToolset.Core/Compiler.cs
+++ b/src/WixToolset.Core/Compiler.cs
@@ -6277,6 +6277,9 @@ namespace WixToolset.Core
6277 case "MediaTemplate": 6277 case "MediaTemplate":
6278 this.ParseMediaTemplateElement(child, null); 6278 this.ParseMediaTemplateElement(child, null);
6279 break; 6279 break;
6280 case "Launch":
6281 this.ParseLaunchElement(child);
6282 break;
6280 case "PackageGroup": 6283 case "PackageGroup":
6281 this.ParsePackageGroupElement(child); 6284 this.ParsePackageGroupElement(child);
6282 break; 6285 break;
@@ -6353,6 +6356,61 @@ namespace WixToolset.Core
6353 } 6356 }
6354 } 6357 }
6355 6358
6359 /// <summary>
6360 /// Parses a launch condition element.
6361 /// </summary>
6362 /// <param name="node">Element to parse.</param>
6363 private void ParseLaunchElement(XElement node)
6364 {
6365 var sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node);
6366 string condition = null;
6367 string message = null;
6368
6369 foreach (var attrib in node.Attributes())
6370 {
6371 if (String.IsNullOrEmpty(attrib.Name.NamespaceName) || CompilerCore.WixNamespace == attrib.Name.Namespace)
6372 {
6373 switch (attrib.Name.LocalName)
6374 {
6375 case "Cndition":
6376 condition = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
6377 break;
6378 case "Message":
6379 message = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
6380 break;
6381 default:
6382 this.Core.UnexpectedAttribute(node, attrib);
6383 break;
6384 }
6385 }
6386 else
6387 {
6388 this.Core.ParseExtensionAttribute(node, attrib);
6389 }
6390 }
6391
6392 if (String.IsNullOrEmpty(condition))
6393 {
6394 this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Condition"));
6395 }
6396
6397 if (String.IsNullOrEmpty(message))
6398 {
6399 this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Message"));
6400 }
6401
6402
6403 this.Core.ParseForExtensionElements(node);
6404
6405 if (!this.Core.EncounteredError)
6406 {
6407 this.Core.AddTuple(new LaunchConditionTuple(sourceLineNumbers)
6408 {
6409 Condition = condition,
6410 Description = message
6411 });
6412 }
6413 }
6356 6414
6357 /// <summary> 6415 /// <summary>
6358 /// Parses a condition element. 6416 /// Parses a condition element.