191 lines
6.8 KiB
JavaScript
191 lines
6.8 KiB
JavaScript
|
|
const common = require(`./common.js`);
|
||
|
|
|
||
|
|
function genTirexSystemProjectContent(example, device) {
|
||
|
|
let deviceData = require(`./device/project_${device}.js`);
|
||
|
|
let property = require(`../${example}`).getComponentProperty(device);
|
||
|
|
let systemProjects = require(`../${example}`).getSystemProjects(device);
|
||
|
|
let folder_list = common.path.relative("examples", property.dirPath).split("/");
|
||
|
|
|
||
|
|
let tirex_content = {};
|
||
|
|
|
||
|
|
tirex_content.resourceType = `project.ccs`;
|
||
|
|
tirex_content.resourceClass = [ `example` ];
|
||
|
|
if(property.tirexResourceSubClass)
|
||
|
|
{
|
||
|
|
tirex_content.resourceSubClass = property.tirexResourceSubClass;
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
tirex_content.resourceSubClass = [ "example.general" ];
|
||
|
|
}
|
||
|
|
if(property.description)
|
||
|
|
{
|
||
|
|
tirex_content.description = property.description + " System project.";
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
tirex_content.description = common.getDefaultSystemProjectDescription(property.name);
|
||
|
|
}
|
||
|
|
|
||
|
|
tirex_content.name = property.name;
|
||
|
|
tirex_content.location = common.path.relative(".metadata/.tirex", `${property.dirPath}/${project.board}/system_${project.tag}`) + "/system.projectspec";
|
||
|
|
tirex_content.devtools = [ deviceData.getDevToolTirex(project.board) ];
|
||
|
|
tirex_content.kernel = [];
|
||
|
|
/* Temp fix: TIREX doesn't support multiple compiler for a project. System project doesn't need this. So keep it empty */
|
||
|
|
//tirex_content.compiler = [];
|
||
|
|
|
||
|
|
/* Temp fix: Push only one kernel as TIREX doesn't support a list yet. Remove when this is fixed */
|
||
|
|
tirex_content.kernel.push(project.projects[0].os);
|
||
|
|
for (subproject of project.projects)
|
||
|
|
{
|
||
|
|
/* Temp fix: see above */
|
||
|
|
//tirex_content.kernel.push(subproject.os);
|
||
|
|
/* Temp fix: see above */
|
||
|
|
//switch(subproject.cgt)
|
||
|
|
//{
|
||
|
|
// case "ti-arm-clang":
|
||
|
|
// tirex_content.compiler.push("ticlang");
|
||
|
|
// break;
|
||
|
|
// case "gcc-aarch64":
|
||
|
|
// tirex_content.compiler.push("gcc");
|
||
|
|
// break;
|
||
|
|
// case "gcc-armv7":
|
||
|
|
// tirex_content.compiler.push("gcc");
|
||
|
|
// break;
|
||
|
|
//}
|
||
|
|
}
|
||
|
|
/* Remove duplicates */
|
||
|
|
tirex_content.kernel = [...new Set(tirex_content.kernel)];
|
||
|
|
/* Temp fix: see above */
|
||
|
|
//tirex_content.compiler = [...new Set(tirex_content.compiler)];
|
||
|
|
tirex_content.subCategories = [ ...folder_list, "system_" + `${project.tag}`];
|
||
|
|
tirex_content.mainCategories = [[ `Examples`, `Development Tools` ]];
|
||
|
|
|
||
|
|
return (tirex_content);
|
||
|
|
}
|
||
|
|
|
||
|
|
function genTirexExampleContentList(example_file_list, device) {
|
||
|
|
|
||
|
|
let tirex_content_list = [];
|
||
|
|
let deviceData = require(`./device/project_${device}.js`);
|
||
|
|
let devtools_list = []; /* For userguide */
|
||
|
|
|
||
|
|
for(example of example_file_list) {
|
||
|
|
|
||
|
|
let property = require(`../${example}`).getComponentProperty(device);
|
||
|
|
|
||
|
|
if(property.skipUpdatingTirex || property.skipProjectSpec || property.isInternal)
|
||
|
|
continue;
|
||
|
|
|
||
|
|
for(buildOption of property.buildOptionCombos) {
|
||
|
|
|
||
|
|
let projectSpecOutPath = common.path.makeExampleOutPath(property.dirPath, buildOption);
|
||
|
|
let folder_list = common.path.relative("examples", property.dirPath).split("/");
|
||
|
|
let tirex_content = {};
|
||
|
|
|
||
|
|
tirex_content.resourceType = `project.ccs`;
|
||
|
|
tirex_content.resourceClass = [ `example` ];
|
||
|
|
if(property.tirexResourceSubClass)
|
||
|
|
{
|
||
|
|
tirex_content.resourceSubClass = property.tirexResourceSubClass;
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
tirex_content.resourceSubClass = [ "example.general" ];
|
||
|
|
}
|
||
|
|
if(property.description)
|
||
|
|
{
|
||
|
|
tirex_content.description = property.description + " CPU is " + buildOption.cpu.toUpperCase() + " running " + buildOption.os.toUpperCase() + ".";
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
tirex_content.description = common.getDefaultProjectDescription(property.name, buildOption.cpu, buildOption.os);
|
||
|
|
}
|
||
|
|
|
||
|
|
tirex_content.name = property.name;
|
||
|
|
tirex_content.location = common.path.relative(".metadata/.tirex", projectSpecOutPath) + "/example.projectspec";
|
||
|
|
let devtools = deviceData.getDevToolTirex(buildOption.board);
|
||
|
|
tirex_content.devtools = [ devtools ];
|
||
|
|
devtools_list.push(devtools);
|
||
|
|
tirex_content.kernel = [];
|
||
|
|
tirex_content.compiler = [];
|
||
|
|
|
||
|
|
tirex_content.kernel.push(buildOption.os);
|
||
|
|
switch(buildOption.cgt)
|
||
|
|
{
|
||
|
|
case "ti-arm-clang":
|
||
|
|
tirex_content.compiler.push("ticlang");
|
||
|
|
break;
|
||
|
|
case "gcc-aarch64":
|
||
|
|
tirex_content.compiler.push("gcc");
|
||
|
|
break;
|
||
|
|
case "gcc-armv7":
|
||
|
|
tirex_content.compiler.push("gcc");
|
||
|
|
break;
|
||
|
|
case "ti-c6000":
|
||
|
|
tirex_content.compiler.push("ccs");
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
|
||
|
|
tirex_content.subCategories = [ ...folder_list, `${buildOption.cpu}` + "_" +`${buildOption.os}`];
|
||
|
|
tirex_content.mainCategories = [[ `Examples`, `Development Tools` ]];
|
||
|
|
|
||
|
|
if (buildOption.os == "freertos-smp")
|
||
|
|
{
|
||
|
|
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
tirex_content_list.push(tirex_content);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
for(example of example_file_list) {
|
||
|
|
let tirex_content = {};
|
||
|
|
|
||
|
|
example_js = require(`../${example}`);
|
||
|
|
if( ! example_js.getSystemProjects)
|
||
|
|
continue;
|
||
|
|
|
||
|
|
let property = require(`../${example}`).getComponentProperty(device);
|
||
|
|
if(property.skipUpdatingTirex || property.skipProjectSpec || property.isInternal)
|
||
|
|
continue;
|
||
|
|
let systemProjects = require(`../${example}`).getSystemProjects(device);
|
||
|
|
for(project of systemProjects) {
|
||
|
|
tirex_content = genTirexSystemProjectContent(example, device);
|
||
|
|
tirex_content_list.push(tirex_content);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
let tirex_content = {};
|
||
|
|
|
||
|
|
tirex_content.resourceType = `web.page`
|
||
|
|
tirex_content.resourceClass = [ `document` ];
|
||
|
|
tirex_content.name = "User Guide";
|
||
|
|
tirex_content.location = `../../docs/api_guide_${device}/index.html`;
|
||
|
|
tirex_content.devtools = [ ...new Set(devtools_list) ];
|
||
|
|
tirex_content.mainCategories = [[ `Documents` ]];
|
||
|
|
|
||
|
|
tirex_content_list.push(tirex_content);
|
||
|
|
|
||
|
|
let args = {
|
||
|
|
tirex_content_list
|
||
|
|
};
|
||
|
|
|
||
|
|
common.convertTemplateToFile(
|
||
|
|
`.project/templates/tirex_content.xdt`,
|
||
|
|
`.metadata/.tirex/${device}.content.tirex.json`,
|
||
|
|
args);
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
function genTirexDevice(device) {
|
||
|
|
let example_file_list = require(`./device/project_${device}`).getExampleList();
|
||
|
|
genTirexExampleContentList(example_file_list, device);
|
||
|
|
}
|
||
|
|
|
||
|
|
module.exports = {
|
||
|
|
genTirexDevice
|
||
|
|
}
|