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 
35 {
36  macVersionRange.second = max;
37 }
38 
43 {
44  MacVersion macVersion = (MacVersion)(MacVersion_10_7 + (VuoFileUtilitiesCocoa_getOSVersionMinor() - 7));
45  macVersionRange.first = macVersion;
46  macVersionRange.second = macVersion;
47 }
48 
53 {
54  if (! (other.macVersionRange.first == MacVersion_Any ||
55  (macVersionRange.first != MacVersion_Any && macVersionRange.first >= other.macVersionRange.first)) )
56  macVersionRange.first = other.macVersionRange.first;
57 
58  if (! (other.macVersionRange.second == MacVersion_Any ||
59  (macVersionRange.second != MacVersion_Any && macVersionRange.second <= other.macVersionRange.second)) )
60  macVersionRange.second = other.macVersionRange.second;
61 }
62 
67 {
68  return ((macVersionRange.first == MacVersion_Any) ||
69  ((other.macVersionRange.first != MacVersion_Any) && (macVersionRange.first <= other.macVersionRange.first))) &&
70  ((macVersionRange.second == MacVersion_Any) ||
71  ((other.macVersionRange.first != MacVersion_Any) && (macVersionRange.second >= other.macVersionRange.second)));
72 }
73 
78 {
79  if (macVersionRange.first == macVersionRange.second)
80  return macVersionToString(macVersionRange.first);
81  else if (MacVersion_Any == macVersionRange.first)
82  return macVersionToString(macVersionRange.second) + " and below";
83  else if (MacVersion_Any == macVersionRange.second)
84  return macVersionToString(macVersionRange.first) + " and above";
85  else
86  return macVersionToString(macVersionRange.first) + " through " + macVersionToString(macVersionRange.second);
87 }
88 
92 string VuoCompilerTargetSet::macVersionToString(MacVersion v)
93 {
94  switch (v)
95  {
96  case MacVersion_Any:
97  return "macOS (all versions)";
98  case MacVersion_10_7:
99  return "OS X 10.7";
100  case MacVersion_10_8:
101  return "OS X 10.8";
102  case MacVersion_10_9:
103  return "OS X 10.9";
104  case MacVersion_10_10:
105  return "OS X 10.10";
106  case MacVersion_10_11:
107  return "OS X 10.11";
108  case MacVersion_10_12:
109  return "macOS 10.12";
110  case MacVersion_10_13:
111  return "macOS 10.13";
112  case MacVersion_10_14:
113  return "macOS 10.14";
114  case MacVersion_10_15:
115  return "macOS 10.15";
116  }
117 }