Vuo  2.2.0
VuoCompilerTargetSet.cc
Go to the documentation of this file.
1 
10 #include "VuoCompilerTargetSet.hh"
11 
12 #include "VuoFileUtilitiesCocoa.hh"
13 
14 
19 {
20  macVersionRange = make_pair(MacVersion_Any, MacVersion_Any);
21 }
22 
27 {
28  macVersionRange.first = min;
29 }
30 
37 {
38  switch (macVersionRange.first)
39  {
40  case MacVersion_Any: return "";
41  case MacVersion_10_11: return "10.11";
42  case MacVersion_10_12: return "10.12";
43  case MacVersion_10_13: return "10.13";
44  case MacVersion_10_14: return "10.14";
45  case MacVersion_10_15: return "10.15";
46  case MacVersion_11_0: return "11.0";
47  }
48 }
49 
54 {
55  macVersionRange.second = max;
56 }
57 
62 {
65  if (major == 10 && minor == 11)
66  macVersionRange.first = macVersionRange.second = MacVersion_10_11;
67  else if (major == 10 && minor == 12)
68  macVersionRange.first = macVersionRange.second = MacVersion_10_12;
69  else if (major == 10 && minor == 13)
70  macVersionRange.first = macVersionRange.second = MacVersion_10_13;
71  else if (major == 10 && minor == 14)
72  macVersionRange.first = macVersionRange.second = MacVersion_10_14;
73  else if (major == 10 && minor == 15)
74  macVersionRange.first = macVersionRange.second = MacVersion_10_15;
75  else if ((major == 10 && minor == 16) || (major == 11 && minor == 0))
76  macVersionRange.first = macVersionRange.second = MacVersion_11_0;
77 }
78 
83 {
84  if (! (other.macVersionRange.first == MacVersion_Any ||
85  (macVersionRange.first != MacVersion_Any && macVersionRange.first >= other.macVersionRange.first)) )
86  macVersionRange.first = other.macVersionRange.first;
87 
88  if (! (other.macVersionRange.second == MacVersion_Any ||
89  (macVersionRange.second != MacVersion_Any && macVersionRange.second <= other.macVersionRange.second)) )
90  macVersionRange.second = other.macVersionRange.second;
91 }
92 
97 {
98  return ((macVersionRange.first == MacVersion_Any) ||
99  ((other.macVersionRange.first != MacVersion_Any) && (macVersionRange.first <= other.macVersionRange.first))) &&
100  ((macVersionRange.second == MacVersion_Any) ||
101  ((other.macVersionRange.first != MacVersion_Any) && (macVersionRange.second >= other.macVersionRange.second)));
102 }
103 
108 {
109  if (macVersionRange.first == macVersionRange.second)
110  return macVersionToString(macVersionRange.first);
111  else if (MacVersion_Any == macVersionRange.first)
112  return macVersionToString(macVersionRange.second) + " and below";
113  else if (MacVersion_Any == macVersionRange.second)
114  return macVersionToString(macVersionRange.first) + " and above";
115  else
116  return macVersionToString(macVersionRange.first) + " through " + macVersionToString(macVersionRange.second);
117 }
118 
122 string VuoCompilerTargetSet::macVersionToString(MacVersion v)
123 {
124  switch (v)
125  {
126  case MacVersion_Any:
127  return "macOS (all versions)";
128  case MacVersion_10_11:
129  return "OS X 10.11";
130  case MacVersion_10_12:
131  return "macOS 10.12";
132  case MacVersion_10_13:
133  return "macOS 10.13";
134  case MacVersion_10_14:
135  return "macOS 10.14";
136  case MacVersion_10_15:
137  return "macOS 10.15";
138  case MacVersion_11_0:
139  return "macOS 11.0";
140  }
141 }