Vuo  2.0.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_7: return "10.7";
42  case MacVersion_10_8: return "10.8";
43  case MacVersion_10_9: return "10.9";
44  case MacVersion_10_10: return "10.10";
45  case MacVersion_10_11: return "10.11";
46  case MacVersion_10_12: return "10.12";
47  case MacVersion_10_13: return "10.13";
48  case MacVersion_10_14: return "10.14";
49  case MacVersion_10_15: return "10.15";
50  }
51 }
52 
57 {
58  macVersionRange.second = max;
59 }
60 
65 {
66  MacVersion macVersion = (MacVersion)(MacVersion_10_7 + (VuoFileUtilitiesCocoa_getOSVersionMinor() - 7));
67  macVersionRange.first = macVersion;
68  macVersionRange.second = macVersion;
69 }
70 
75 {
76  if (! (other.macVersionRange.first == MacVersion_Any ||
77  (macVersionRange.first != MacVersion_Any && macVersionRange.first >= other.macVersionRange.first)) )
78  macVersionRange.first = other.macVersionRange.first;
79 
80  if (! (other.macVersionRange.second == MacVersion_Any ||
81  (macVersionRange.second != MacVersion_Any && macVersionRange.second <= other.macVersionRange.second)) )
82  macVersionRange.second = other.macVersionRange.second;
83 }
84 
89 {
90  return ((macVersionRange.first == MacVersion_Any) ||
91  ((other.macVersionRange.first != MacVersion_Any) && (macVersionRange.first <= other.macVersionRange.first))) &&
92  ((macVersionRange.second == MacVersion_Any) ||
93  ((other.macVersionRange.first != MacVersion_Any) && (macVersionRange.second >= other.macVersionRange.second)));
94 }
95 
100 {
101  if (macVersionRange.first == macVersionRange.second)
102  return macVersionToString(macVersionRange.first);
103  else if (MacVersion_Any == macVersionRange.first)
104  return macVersionToString(macVersionRange.second) + " and below";
105  else if (MacVersion_Any == macVersionRange.second)
106  return macVersionToString(macVersionRange.first) + " and above";
107  else
108  return macVersionToString(macVersionRange.first) + " through " + macVersionToString(macVersionRange.second);
109 }
110 
114 string VuoCompilerTargetSet::macVersionToString(MacVersion v)
115 {
116  switch (v)
117  {
118  case MacVersion_Any:
119  return "macOS (all versions)";
120  case MacVersion_10_7:
121  return "OS X 10.7";
122  case MacVersion_10_8:
123  return "OS X 10.8";
124  case MacVersion_10_9:
125  return "OS X 10.9";
126  case MacVersion_10_10:
127  return "OS X 10.10";
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  }
139 }