Replaced target architecture with target family in TDF build scripts

This commit is contained in:
Nav
2023-12-17 17:57:35 +00:00
parent 4dd6050781
commit 866cdbdcc5
3 changed files with 11 additions and 17 deletions

View File

@@ -3,6 +3,7 @@
namespace Bloom\BuildScripts; namespace Bloom\BuildScripts;
use Bloom\BuildScripts\TargetDescriptionFiles\TargetDescriptionFile; use Bloom\BuildScripts\TargetDescriptionFiles\TargetDescriptionFile;
use Bloom\BuildScripts\TargetDescriptionFiles\TargetFamily;
define('TDF_DIR_PATH', $argv[1] ?? null); define('TDF_DIR_PATH', $argv[1] ?? null);
define('MAPPING_TEMPLATE_PATH', $argv[2] ?? null); define('MAPPING_TEMPLATE_PATH', $argv[2] ?? null);
@@ -34,13 +35,16 @@ if (!file_exists(dirname(MAPPING_OUTPUT_PATH))) {
} }
require_once __DIR__ . '/TargetDescriptionFiles/Factory.php'; require_once __DIR__ . '/TargetDescriptionFiles/Factory.php';
require_once __DIR__ . '/TargetDescriptionFiles/TargetFamily.php';
require_once __DIR__ . '/TargetDescriptionFiles/AVR8/Avr8TargetDescriptionFile.php'; require_once __DIR__ . '/TargetDescriptionFiles/AVR8/Avr8TargetDescriptionFile.php';
$xmlFiles = TargetDescriptionFiles\Factory::findXmlFiles(TDF_DIR_PATH); $xmlFiles = TargetDescriptionFiles\Factory::findXmlFiles(TDF_DIR_PATH);
print count($xmlFiles) . ' target descriptions files found in ' . TDF_DIR_PATH . PHP_EOL . PHP_EOL; print count($xmlFiles) . ' target descriptions files found in ' . TDF_DIR_PATH . PHP_EOL . PHP_EOL;
$targetFamiliesByArch = [ $targetFamilyMapping = [
TargetDescriptionFile::ARCHITECTURE_AVR8 => 'TargetFamily::AVR_8', TargetFamily::AVR_8->value => 'TargetFamily::AVR_8',
TargetFamily::RISC_V->value => 'TargetFamily::RISC_V',
]; ];
const MAP_ENTRY_TEMPLATE = '{"@CONFIG_VALUE@", {"@TARGET_NAME@", "@CONFIG_VALUE@", @TARGET_FAMILY@, "@TDF_PATH@"}}'; const MAP_ENTRY_TEMPLATE = '{"@CONFIG_VALUE@", {"@TARGET_NAME@", "@CONFIG_VALUE@", @TARGET_FAMILY@, "@TDF_PATH@"}}';
@@ -53,7 +57,7 @@ foreach ($xmlFiles as $xmlFile) {
print 'Processing ' . $xmlFilePath . PHP_EOL; print 'Processing ' . $xmlFilePath . PHP_EOL;
$targetDescriptionFile = TargetDescriptionFiles\Factory::loadTdfFromFile($xmlFilePath); $targetDescriptionFile = TargetDescriptionFiles\Factory::loadTdfFromFile($xmlFilePath);
$relativeTdfPath = $targetDescriptionFile->targetArchitecture . '/' $relativeTdfPath = $targetDescriptionFile->targetFamily->value . '/'
. strtoupper($targetDescriptionFile->targetName) . '.xml'; . strtoupper($targetDescriptionFile->targetName) . '.xml';
$entries[] = str_replace( $entries[] = str_replace(
@@ -61,7 +65,7 @@ foreach ($xmlFiles as $xmlFile) {
[ [
$targetDescriptionFile->configurationValue, $targetDescriptionFile->configurationValue,
$targetDescriptionFile->targetName, $targetDescriptionFile->targetName,
$targetFamiliesByArch[$targetDescriptionFile->targetArchitecture], $targetFamilyMapping[$targetDescriptionFile->targetFamily->value],
$relativeTdfPath, $relativeTdfPath,
], ],
MAP_ENTRY_TEMPLATE MAP_ENTRY_TEMPLATE

View File

@@ -4,6 +4,8 @@ namespace Bloom\BuildScripts\TargetDescriptionFiles;
use Bloom\BuildScripts\TargetDescriptionFiles\Avr8\Avr8TargetDescriptionFile; use Bloom\BuildScripts\TargetDescriptionFiles\Avr8\Avr8TargetDescriptionFile;
require_once __DIR__ . "/TargetDescriptionFile.php"; require_once __DIR__ . "/TargetDescriptionFile.php";
require_once __DIR__ . "/TargetFamily.php";
require_once __DIR__ . "/AVR8/Avr8TargetDescriptionFile.php"; require_once __DIR__ . "/AVR8/Avr8TargetDescriptionFile.php";
class Factory class Factory
@@ -18,7 +20,7 @@ class Factory
{ {
$tdf = new TargetDescriptionFile($filePath); $tdf = new TargetDescriptionFile($filePath);
if ($tdf->targetArchitecture == TargetDescriptionFile::ARCHITECTURE_AVR8) { if ($tdf->targetFamily == TargetFamily::AVR_8) {
return new Avr8TargetDescriptionFile($filePath); return new Avr8TargetDescriptionFile($filePath);
} }

View File

@@ -15,15 +15,12 @@ require_once __DIR__ . "/Pinout.php";
class TargetDescriptionFile class TargetDescriptionFile
{ {
const ARCHITECTURE_AVR8 = 'AVR8';
public string $filePath; public string $filePath;
public ?SimpleXMLElement $xml = null; public ?SimpleXMLElement $xml = null;
public ?string $targetName = null; public ?string $targetName = null;
public ?TargetFamily $targetFamily = null; public ?TargetFamily $targetFamily = null;
public ?string $configurationValue = null; public ?string $configurationValue = null;
public ?string $targetArchitecture = null;
/** @var string[] */ /** @var string[] */
public array $deviceAttributesByName = []; public array $deviceAttributesByName = [];
@@ -80,11 +77,6 @@ class TargetDescriptionFile
if (!empty($this->deviceAttributesByName['family'])) { if (!empty($this->deviceAttributesByName['family'])) {
$this->targetFamily = TargetFamily::tryFrom($device['family']); $this->targetFamily = TargetFamily::tryFrom($device['family']);
} }
if (!empty($this->deviceAttributesByName['architecture'])) {
$this->targetArchitecture = stristr($device['architecture'], 'avr') !== false
? self::ARCHITECTURE_AVR8 : $device['architecture'];
}
} }
$this->loadVariants(); $this->loadVariants();
@@ -474,10 +466,6 @@ class TargetDescriptionFile
$failures[] = 'Missing/invalid target family'; $failures[] = 'Missing/invalid target family';
} }
if (empty($this->targetArchitecture)) {
$failures[] = 'Target architecture not found';
}
if (empty($this->variants)) { if (empty($this->variants)) {
$failures[] = 'Missing target variants'; $failures[] = 'Missing target variants';
} }