22 : compatibleTargets(nullptr)
31 this->builtIn =
false;
68 if (isModule(
module, moduleKey))
82 m->modulePath = modulePath;
85 else if (moduleKey !=
"libmodule")
86 VUserLog(
"Warning: No VuoModuleMetadata found in \"%s\" so I'm not going to load it.", moduleKey.c_str());
95bool VuoCompilerModule::isModule(Module *module,
string moduleKey)
118 moduleDetails = json_tokener_parse(moduleDetailsStr.c_str());
122 VUserLog(
"Error: Couldn't parse VuoModuleMetadata as JSON: %s", moduleDetailsStr.c_str());
131 dependencies = set<string>(dependenciesVector.begin(), dependenciesVector.end());
143 if (json_object_object_get_ex(o, key.c_str(), &compatibilityObject))
156 globals.insert(
"moduleDetails");
182 string nameAfterCompilation =
nameForGlobal(nameBeforeCompilation, moduleKey);
183 return (
module->getNamedValue(nameBeforeCompilation) != NULL ||
module->getNamedValue(nameAfterCompilation) != NULL);
194 Module::GlobalListType& globals =
module->getGlobalList();
197 for (Module::GlobalListType::iterator i = globals.begin(), e = globals.end(); i != e; ++i) {
198 string curGlobalVarName = i->getName();
200 if (globalsAndFuncsToRename.find(curGlobalVarName) != globalsAndFuncsToRename.end()) {
202 i->setName(newGlobalVarName);
207 Module::FunctionListType& functions =
module->getFunctionList();
210 for (Module::FunctionListType::iterator i = functions.begin(), e = functions.end(); i != e; ++i) {
211 string curFuncName = i->getName();
213 if (globalsAndFuncsToRename.find(curFuncName) != globalsAndFuncsToRename.end()) {
215 i->setName(newFuncName);
227 Function *functionDst =
module->getFunction(functionSrc->getName());
230 functionDst = Function::Create(functionSrc->getFunctionType(),
231 GlobalValue::ExternalLinkage,
232 functionSrc->getName(),
234 functionDst->setAttributes( functionSrc->getAttributes() );
295 this->builtIn = builtIn;