AR Design
UBC EML collab with UBC SALA - visualizing IoT data in AR
BuildInfo.cs
Go to the documentation of this file.
1 // Copyright (c) Microsoft Corporation. All rights reserved.
2 // Licensed under the MIT License. See LICENSE in the project root for license information.
3 
4 using System;
5 using System.Collections.Generic;
6 using System.Linq;
7 using UnityEditor;
8 using UnityEngine;
9 
10 namespace HoloToolkit.Unity
11 {
12  public class BuildInfo
13  {
14  public string OutputDirectory { get; set; }
15 
16  public IEnumerable<string> Scenes { get; set; }
17 
18  public IEnumerable<CopyDirectoryInfo> CopyDirectories { get; set; }
19 
20  public Action<BuildInfo> PreBuildAction { get; set; }
21 
22 #if UNITY_2018_1_OR_NEWER
23  public Action<BuildInfo, UnityEditor.Build.Reporting.BuildReport> PostBuildAction { get; set; }
24 #else
25  public Action<BuildInfo, string> PostBuildAction { get; set; }
26 #endif
27 
28  public BuildOptions BuildOptions { get; set; }
29 
30  public BuildTarget BuildTarget { get; set; }
31 
32  public WSASDK? WSASdk { get; set; }
33 
34  public string WSAUwpSdk { get; set; }
35 
36  public WSAUWPBuildType? WSAUWPBuildType { get; set; }
37 
38  public bool? WSAGenerateReferenceProjects { get; set; }
39 
40  public ColorSpace? ColorSpace { get; set; }
41 
42  public bool IsCommandLine { get; set; }
43 
44  public string BuildSymbols { get; private set; }
45 
46  public BuildInfo()
47  {
48  BuildSymbols = string.Empty;
49  }
50 
51  public void AppendSymbols(params string[] symbol)
52  {
53  AppendSymbols((IEnumerable<string>)symbol);
54  }
55 
56  public void AppendSymbols(IEnumerable<string> symbols)
57  {
58  string[] toAdd = symbols.Except(BuildSymbols.Split(';'))
59  .Where(sym => !string.IsNullOrEmpty(sym)).ToArray();
60 
61  if (!toAdd.Any())
62  {
63  return;
64  }
65 
66  if (!string.IsNullOrEmpty(BuildSymbols))
67  {
68  BuildSymbols += ";";
69  }
70 
71  BuildSymbols += string.Join(";", toAdd);
72  }
73 
74  public bool HasAnySymbols(params string[] symbols)
75  {
76  return BuildSymbols.Split(';').Intersect(symbols).Any();
77  }
78 
79  public bool HasConfigurationSymbol()
80  {
81  return HasAnySymbols(
85  }
86 
87  public static IEnumerable<string> RemoveConfigurationSymbols(string symbols)
88  {
89  return symbols.Split(';').Except(new[]
90  {
94  });
95  }
96 
97  public bool HasAnySymbols(IEnumerable<string> symbols)
98  {
99  return BuildSymbols.Split(';').Intersect(symbols).Any();
100  }
101  }
102 }
bool HasAnySymbols(IEnumerable< string > symbols)
Definition: BuildInfo.cs:97
Class containing various utility methods to build a WSA solution from a Unity project.
bool HasAnySymbols(params string[] symbols)
Definition: BuildInfo.cs:74
void AppendSymbols(params string[] symbol)
Definition: BuildInfo.cs:51
static IEnumerable< string > RemoveConfigurationSymbols(string symbols)
Definition: BuildInfo.cs:87
void AppendSymbols(IEnumerable< string > symbols)
Definition: BuildInfo.cs:56