Convert BuildConfigurationOptions constants to enum cases

This commit is contained in:
netkas 2024-09-14 08:53:30 -04:00
parent c24fce2ee5
commit 66e6e1528d
8 changed files with 32 additions and 32 deletions

View file

@ -75,7 +75,7 @@
if($output_path !== null) if($output_path !== null)
{ {
$options[BuildConfigurationOptions::OUTPUT_FILE] = $output_path; $options[BuildConfigurationOptions::OUTPUT_FILE->value] = $output_path;
} }
// Load the project // Load the project

View file

@ -92,12 +92,12 @@
{ {
$configuration = $this->project_manager->getProjectConfiguration()->getBuild()->getBuildConfiguration($build_configuration); $configuration = $this->project_manager->getProjectConfiguration()->getBuild()->getBuildConfiguration($build_configuration);
$configuration->setOptions(array_merge($configuration->getOptions(), $options)); $configuration->setOptions(array_merge($configuration->getOptions(), $options));
$static_dependencies = isset($configuration->getOptions()[BuildConfigurationOptions::STATIC_DEPENDENCIES]); $static_dependencies = isset($configuration->getOptions()[BuildConfigurationOptions::STATIC_DEPENDENCIES->value]);
if(isset($configuration->getOptions()[BuildConfigurationOptions::OUTPUT_FILE])) if(isset($configuration->getOptions()[BuildConfigurationOptions::OUTPUT_FILE->value]))
{ {
$package_path = ConstantCompiler::compileConstants( $package_path = ConstantCompiler::compileConstants(
$this->project_manager->getProjectConfiguration(), $configuration->getOptions()[BuildConfigurationOptions::OUTPUT_FILE] $this->project_manager->getProjectConfiguration(), $configuration->getOptions()[BuildConfigurationOptions::OUTPUT_FILE->value]
); );
} }
else else
@ -262,10 +262,10 @@
{ {
$package_writer = new PackageWriter($path); $package_writer = new PackageWriter($path);
if(isset($build_configuration->getOptions()[BuildConfigurationOptions::COMPRESSION])) if(isset($build_configuration->getOptions()[BuildConfigurationOptions::COMPRESSION->value]))
{ {
$package_writer->addFlag(PackageFlags::COMPRESSION); $package_writer->addFlag(PackageFlags::COMPRESSION);
switch(strtolower($build_configuration->getOptions()[BuildConfigurationOptions::COMPRESSION])) switch(strtolower($build_configuration->getOptions()[BuildConfigurationOptions::COMPRESSION->value]))
{ {
case BuildConfigurationOptions\CompressionOptions::HIGH: case BuildConfigurationOptions\CompressionOptions::HIGH:
$package_writer->addFlag(PackageFlags::HIGH_COMPRESSION); $package_writer->addFlag(PackageFlags::HIGH_COMPRESSION);
@ -280,7 +280,7 @@
break; break;
default: default:
throw new NotSupportedException(sprintf('The compression level \'%s\' is not supported', $build_configuration->getOptions()[BuildConfigurationOptions::COMPRESSION])); throw new NotSupportedException(sprintf('The compression level \'%s\' is not supported', $build_configuration->getOptions()[BuildConfigurationOptions::COMPRESSION->value]));
} }
} }
@ -340,16 +340,16 @@
$metadata->setInstaller($this->project_manager->getProjectConfiguration()->getInstaller()); $metadata->setInstaller($this->project_manager->getProjectConfiguration()->getInstaller());
// Strip out 'output_file' build artifact. // Strip out 'output_file' build artifact.
if(isset($metadata->getOptions()[BuildConfigurationOptions::OUTPUT_FILE])) if(isset($metadata->getOptions()[BuildConfigurationOptions::OUTPUT_FILE->value]))
{ {
$metadata->removeOption(BuildConfigurationOptions::OUTPUT_FILE); $metadata->removeOption(BuildConfigurationOptions::OUTPUT_FILE->value);
} }
// Strip out 'static' build artifact, PackageFlags::STATIC_DEPENDENCIES is used instead // Strip out 'static' build artifact, PackageFlags::STATIC_DEPENDENCIES is used instead
// Making this option redundant. // Making this option redundant.
if(isset($metadata->getOptions()[BuildConfigurationOptions::STATIC_DEPENDENCIES])) if(isset($metadata->getOptions()[BuildConfigurationOptions::STATIC_DEPENDENCIES->value]))
{ {
$metadata->removeOption(BuildConfigurationOptions::STATIC_DEPENDENCIES); $metadata->removeOption(BuildConfigurationOptions::STATIC_DEPENDENCIES->value);
} }
/** @noinspection UnusedFunctionResultInspection */ /** @noinspection UnusedFunctionResultInspection */

View file

@ -50,14 +50,14 @@
$configuration->setOptions(array_merge($configuration->getOptions(), $options)); $configuration->setOptions(array_merge($configuration->getOptions(), $options));
} }
if(!isset($configuration->getOptions()[BuildConfigurationOptions::NCC_CONFIGURATION])) if(!isset($configuration->getOptions()[BuildConfigurationOptions::NCC_CONFIGURATION->value]))
{ {
throw new BuildException(sprintf("Unable to compile the binary, the build configuration '%s' does not have a ncc_configuration.", $build_configuration)); throw new BuildException(sprintf("Unable to compile the binary, the build configuration '%s' does not have a ncc_configuration.", $build_configuration));
} }
// Build the ncc package first // Build the ncc package first
Console::outVerbose('Building ncc package.'); Console::outVerbose('Building ncc package.');
$ncc_package = parent::build($configuration->getOptions()[BuildConfigurationOptions::NCC_CONFIGURATION]); $ncc_package = parent::build($configuration->getOptions()[BuildConfigurationOptions::NCC_CONFIGURATION->value]);
// Prepare the ncc package for compilation // Prepare the ncc package for compilation
$hex_dump_file = PathFinder::getCachePath() . DIRECTORY_SEPARATOR . $this->getProjectManager()->getProjectConfiguration()->getAssembly()->getName() . '.c'; $hex_dump_file = PathFinder::getCachePath() . DIRECTORY_SEPARATOR . $this->getProjectManager()->getProjectConfiguration()->getAssembly()->getName() . '.c';
@ -72,11 +72,11 @@
// Prepare the gcc command // Prepare the gcc command
$gcc_path = (new ExecutableFinder())->find('gcc'); $gcc_path = (new ExecutableFinder())->find('gcc');
if(isset($configuration->getOptions()[BuildConfigurationOptions::OUTPUT_FILE])) if(isset($configuration->getOptions()[BuildConfigurationOptions::OUTPUT_FILE->value]))
{ {
$binary_path = ConstantCompiler::compileConstants( $binary_path = ConstantCompiler::compileConstants(
$this->getProjectManager()->getProjectConfiguration(), $this->getProjectManager()->getProjectConfiguration(),
$configuration->getOptions()[BuildConfigurationOptions::OUTPUT_FILE] $configuration->getOptions()[BuildConfigurationOptions::OUTPUT_FILE->value]
); );
} }
else else

View file

@ -60,7 +60,7 @@
'build' . DIRECTORY_SEPARATOR . 'release' . DIRECTORY_SEPARATOR . AssemblyConstants::ASSEMBLY_NAME->value 'build' . DIRECTORY_SEPARATOR . 'release' . DIRECTORY_SEPARATOR . AssemblyConstants::ASSEMBLY_NAME->value
); );
$release_executable->setBuildType(BuildOutputType::EXECUTABLE->value); $release_executable->setBuildType(BuildOutputType::EXECUTABLE->value);
$release_executable->setOption(BuildConfigurationOptions::NCC_CONFIGURATION, 'release'); $release_executable->setOption(BuildConfigurationOptions::NCC_CONFIGURATION->value, 'release');
$project_manager->getProjectConfiguration()->getBuild()->addBuildConfiguration($release_executable); $project_manager->getProjectConfiguration()->getBuild()->addBuildConfiguration($release_executable);
// Create the debug build configuration // Create the debug build configuration
@ -69,7 +69,7 @@
); );
$debug_executable->setDefinedConstant('DEBUG', '1'); $debug_executable->setDefinedConstant('DEBUG', '1');
$debug_executable->setBuildType(BuildOutputType::EXECUTABLE->value); $debug_executable->setBuildType(BuildOutputType::EXECUTABLE->value);
$debug_executable->setOption(BuildConfigurationOptions::NCC_CONFIGURATION, 'debug'); $debug_executable->setOption(BuildConfigurationOptions::NCC_CONFIGURATION->value, 'debug');
$project_manager->getProjectConfiguration()->getBuild()->addBuildConfiguration($debug_executable); $project_manager->getProjectConfiguration()->getBuild()->addBuildConfiguration($debug_executable);
self::writeProgramTemplate($project_manager); self::writeProgramTemplate($project_manager);

View file

@ -189,9 +189,9 @@
self::$class_map[strtolower($class)] = $component_path; self::$class_map[strtolower($class)] = $component_path;
} }
if($entry->getMetadata($version)->getOption(BuildConfigurationOptions::REQUIRE_FILES) !== null) if($entry->getMetadata($version)->getOption(BuildConfigurationOptions::REQUIRE_FILES->value) !== null)
{ {
foreach($entry->getMetadata($version)->getOption(BuildConfigurationOptions::REQUIRE_FILES) as $item) foreach($entry->getMetadata($version)->getOption(BuildConfigurationOptions::REQUIRE_FILES->value) as $item)
{ {
try try
{ {
@ -273,9 +273,9 @@
} }
// Import the required files // Import the required files
if($package_reader->getMetadata()->getOption(BuildConfigurationOptions::REQUIRE_FILES) !== null) if($package_reader->getMetadata()->getOption(BuildConfigurationOptions::REQUIRE_FILES->value) !== null)
{ {
foreach($package_reader->getMetadata()->getOption(BuildConfigurationOptions::REQUIRE_FILES) as $item) foreach($package_reader->getMetadata()->getOption(BuildConfigurationOptions::REQUIRE_FILES->value) as $item)
{ {
try try
{ {

View file

@ -22,15 +22,15 @@
namespace ncc\Enums\Options; namespace ncc\Enums\Options;
final class BuildConfigurationOptions enum BuildConfigurationOptions : string
{ {
public const COMPRESSION = 'compression'; case COMPRESSION = 'compression';
public const REQUIRE_FILES = 'require_files'; case REQUIRE_FILES = 'require_files';
public const NCC_CONFIGURATION = 'ncc_configuration'; case NCC_CONFIGURATION = 'ncc_configuration';
public const OUTPUT_FILE = 'output_file'; case OUTPUT_FILE = 'output_file';
public const STATIC_DEPENDENCIES = 'static'; case STATIC_DEPENDENCIES = 'static';
} }

View file

@ -806,7 +806,7 @@
{ {
$package_path = (new ProjectManager($project_detection->getProjectFilePath()))->build( $package_path = (new ProjectManager($project_detection->getProjectFilePath()))->build(
BuildConfigurationValues::DEFAULT->value, BuildConfigurationValues::DEFAULT->value,
[BuildConfigurationOptions::OUTPUT_FILE => PathFinder::getCachePath() . DIRECTORY_SEPARATOR . hash('sha1', $archive) . '.ncc'] [BuildConfigurationOptions::OUTPUT_FILE->value => PathFinder::getCachePath() . DIRECTORY_SEPARATOR . hash('sha1', $archive) . '.ncc']
); );
ShutdownHandler::declareTemporaryPath($source_directory); ShutdownHandler::declareTemporaryPath($source_directory);
@ -830,7 +830,7 @@
$project_manager = ProjectManager::initializeFromComposer(dirname($project_detection->getProjectFilePath()), $options); $project_manager = ProjectManager::initializeFromComposer(dirname($project_detection->getProjectFilePath()), $options);
$package_path = $project_manager->build( $package_path = $project_manager->build(
BuildConfigurationValues::DEFAULT->value, BuildConfigurationValues::DEFAULT->value,
[BuildConfigurationOptions::OUTPUT_FILE => PathFinder::getCachePath() . DIRECTORY_SEPARATOR . hash('sha1', $archive) . '.ncc'] [BuildConfigurationOptions::OUTPUT_FILE->value => PathFinder::getCachePath() . DIRECTORY_SEPARATOR . hash('sha1', $archive) . '.ncc']
); );
ShutdownHandler::declareTemporaryPath($package_path); ShutdownHandler::declareTemporaryPath($package_path);

View file

@ -611,7 +611,7 @@
$required_files[$index] = Functions::removeBasename($file, $project_path); $required_files[$index] = Functions::removeBasename($file, $project_path);
} }
$build->setOption(BuildConfigurationOptions::REQUIRE_FILES, $required_files); $build->setOption(BuildConfigurationOptions::REQUIRE_FILES->value, $required_files);
} }
// Generate debug build configuration // Generate debug build configuration
@ -626,7 +626,7 @@
'build' . DIRECTORY_SEPARATOR . 'debug' . DIRECTORY_SEPARATOR . AssemblyConstants::ASSEMBLY_NAME->value 'build' . DIRECTORY_SEPARATOR . 'debug' . DIRECTORY_SEPARATOR . AssemblyConstants::ASSEMBLY_NAME->value
); );
$executable_debug_configuration->setBuildType(BuildOutputType::EXECUTABLE->value); $executable_debug_configuration->setBuildType(BuildOutputType::EXECUTABLE->value);
$executable_debug_configuration->setOption(BuildConfigurationOptions::NCC_CONFIGURATION, 'debug_ncc'); $executable_debug_configuration->setOption(BuildConfigurationOptions::NCC_CONFIGURATION->value, 'debug_ncc');
$executable_debug_configuration->setDependencies($require_dev); $executable_debug_configuration->setDependencies($require_dev);
$build->addBuildConfiguration($executable_debug_configuration); $build->addBuildConfiguration($executable_debug_configuration);
@ -640,7 +640,7 @@
$executable_release_configuration = new ProjectConfiguration\Build\BuildConfiguration('release_executable', $executable_release_configuration = new ProjectConfiguration\Build\BuildConfiguration('release_executable',
'build' . DIRECTORY_SEPARATOR . 'release' . DIRECTORY_SEPARATOR . AssemblyConstants::ASSEMBLY_NAME->value 'build' . DIRECTORY_SEPARATOR . 'release' . DIRECTORY_SEPARATOR . AssemblyConstants::ASSEMBLY_NAME->value
); );
$executable_release_configuration->setOption(BuildConfigurationOptions::NCC_CONFIGURATION, 'release_ncc'); $executable_release_configuration->setOption(BuildConfigurationOptions::NCC_CONFIGURATION->value, 'release_ncc');
$executable_release_configuration->setBuildType(BuildOutputType::EXECUTABLE->value); $executable_release_configuration->setBuildType(BuildOutputType::EXECUTABLE->value);
$build->addBuildConfiguration($executable_release_configuration); $build->addBuildConfiguration($executable_release_configuration);