MCPcopy Create free account
hub / github.com/Moddable-OpenSource/moddable / generateDependenciesDefinitions

Method generateDependenciesDefinitions

tools/mcmanifest.js:1098–1159  ·  view source on GitHub ↗
(tool)

Source from the content-addressed store, hash-verified

1096 this.line("");
1097 }
1098 generateDependenciesDefinitions(tool) {
1099 if ("mcrun" == tool.toolName)
1100 return;
1101
1102 if ("esp32" == tool.platform) {
1103 let dep, namespace;
1104 if (tool.dependencies?.length) {
1105 var projBase = `${tool.tmpPath}${tool.slash}xsProj-${tool.environment.ESP32_SUBCLASS}${tool.slash}managed_components${tool.slash}`;
1106 this.write("MANAGED_COMPONENT_DIRS = \\\n");
1107 for (dep of tool.dependencies) {
1108 namespace = dep.namespace ?? "espressif";
1109 const depBase = `${projBase}${namespace}__${dep.name}${tool.slash}`;
1110 var depLine = "\t";
1111 if (tool.windows)
1112 depLine += "-I";
1113 depLine += depBase + "include \\\n";
1114 if (dep.includes) {
1115 for (var inc of dep.includes) {
1116 if (tool.windows)
1117 depLine += "-I";
1118 depLine += `${depBase}${tool.resolveSlash(inc)} \\\n`;
1119 }
1120 }
1121 this.write(depLine);
1122 }
1123 this.write("\n");
1124 }
1125
1126 let depStr = []
1127 const idf_component = `${tool.tmpPath}${tool.slash}xsProj-${tool.environment.ESP32_SUBCLASS}${tool.slash}main${tool.slash}idf_component.yml`;
1128 for (dep of tool.dependencies) {
1129 namespace = dep.namespace ?? "espressif";
1130 if (undefined === dep.idf) {
1131 depStr.push(`grep -q '${namespace}/${dep.name}' ${idf_component} || idf.py add-dependency "${namespace}/${dep.name}${dep.version ?? ""}"`);
1132 }
1133 }
1134 if (tool.environment.USE_USB == 1)
1135 depStr.push(`grep -q 'espressif/esp_tinyusb' ${idf_component} || idf.py add-dependency "espressif/esp_tinyusb"`);
1136 this.line("BUILD_DEPENDENCIES = " + depStr.join("& "));
1137 this.line();
1138
1139 let cmakeTweakFile = tool.outputConfigDirectory + tool.slash + "xs_idf_deps.txt";
1140 let tweakStr = "set(ESP_COMPONENTS ";
1141 for (dep of tool.dependencies) {
1142 namespace = dep.namespace ?? "espressif";
1143 if (undefined !== dep.idf)
1144 tweakStr += `${dep.idf} `;
1145 else
1146 tweakStr += `${namespace}__${dep.name} `;
1147 }
1148 if (this.debug)
1149 tweakStr += "efuse log ";
1150 else
1151 tweakStr += "efuse ";
1152 if (tool.environment.USE_USB == 1)
1153 tweakStr += "espressif__esp_tinyusb";
1154 tweakStr += ")\n";
1155 if (tool.isDirectoryOrFile(cmakeTweakFile) != 1 || tool.readFileString(cmakeTweakFile) != tweakStr)

Callers 1

generateDefinitionsMethod · 0.95

Calls 4

writeMethod · 0.65
resolveSlashMethod · 0.45
pushMethod · 0.45
lineMethod · 0.45

Tested by

no test coverage detected