Convert BuildConfigurationOptions constants to enum cases
This commit is contained in:
parent
c24fce2ee5
commit
66e6e1528d
8 changed files with 32 additions and 32 deletions
|
@ -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
|
||||||
|
|
|
@ -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 */
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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
|
||||||
{
|
{
|
||||||
|
|
|
@ -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';
|
||||||
}
|
}
|
|
@ -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);
|
||||||
|
|
|
@ -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);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue