54 set<string> dependencies = nominalCompiler->getDependenciesForComposition(nominalComposition);
71 vector<vector<string>> defaultTargets = {
72 #ifdef VUO_TARGET_ARCHITECTURE_X86_64
73 {
"macos",
"x86_64",
"10.10",
"apple-macosx"},
75 #ifdef VUO_TARGET_ARCHITECTURE_ARM64
76 {
"macos",
"arm64",
"10.10",
"apple-macosx"},
80 if (defaultTargets.empty())
82 VuoCompilerIssue issue(VuoCompilerIssue::IssueType::Error,
"setting up compiler",
"",
83 "Vuo build misconfigured",
84 "This build of Vuo doesn't support any architectures.");
88 vector<VuoCompiler *> compilers;
89 for (vector<string> defaultTarget : defaultTargets)
91 json_object *platformArchJson = json_object_new_object();
93 json_object *platformVal = json_object_new_object();
94 json_object_object_add(platformArchJson, defaultTarget[0].c_str(), platformVal);
96 json_object *archVal = json_object_new_string(defaultTarget[1].c_str());
97 json_object *archArray = json_object_new_array_ext(1);
98 json_object_array_put_idx(archArray, 0, archVal);
99 json_object_object_add(platformVal,
"arch", archArray);
108 if (minVersion.empty())
109 minVersion = defaultTarget[2];
111 string target = defaultTarget[1] +
"-" + defaultTarget[3] + minVersion +
".0";
114 compilers.push_back(compiler);
128 vector<VuoCompiler *> matchingCompilers;
129 std::copy_if(compilers.begin(), compilers.end(),
130 std::back_inserter(matchingCompilers),
131 [&arch](
VuoCompiler *compiler){ return compiler->getArch() == arch; });
133 if (matchingCompilers.empty())
135 VuoCompilerIssue issue(VuoCompilerIssue::IssueType::Error,
"setting up compiler",
"",
136 "Unsupported architecture",
137 "This build of Vuo doesn't support the current system's architecture (" + arch +
")");
141 return matchingCompilers.front();
149 for (
auto compiler : compilers)
158 return compatibleTargets;
164 VuoCompilerGroup::VuoCompilerGroup(
const vector<VuoCompiler *> &compilers,
const VuoCompilerCompatibility &compatibleTargets) :
165 compilers(compilers), compatibleTargets(compatibleTargets)
174 for (
auto compiler : compilers)