diff --git a/src/ncc/CLI/Commands/BuildCommand.php b/src/ncc/CLI/Commands/BuildCommand.php index c9978cd..7abe8ea 100644 --- a/src/ncc/CLI/Commands/BuildCommand.php +++ b/src/ncc/CLI/Commands/BuildCommand.php @@ -75,7 +75,7 @@ if($output_path !== null) { - $options[BuildConfigurationOptions::OUTPUT_FILE] = $output_path; + $options[BuildConfigurationOptions::OUTPUT_FILE->value] = $output_path; } // Load the project diff --git a/src/ncc/Classes/NccExtension/NccCompiler.php b/src/ncc/Classes/NccExtension/NccCompiler.php index 2b152e5..19242b9 100644 --- a/src/ncc/Classes/NccExtension/NccCompiler.php +++ b/src/ncc/Classes/NccExtension/NccCompiler.php @@ -92,12 +92,12 @@ { $configuration = $this->project_manager->getProjectConfiguration()->getBuild()->getBuildConfiguration($build_configuration); $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( - $this->project_manager->getProjectConfiguration(), $configuration->getOptions()[BuildConfigurationOptions::OUTPUT_FILE] + $this->project_manager->getProjectConfiguration(), $configuration->getOptions()[BuildConfigurationOptions::OUTPUT_FILE->value] ); } else @@ -262,10 +262,10 @@ { $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); - switch(strtolower($build_configuration->getOptions()[BuildConfigurationOptions::COMPRESSION])) + switch(strtolower($build_configuration->getOptions()[BuildConfigurationOptions::COMPRESSION->value])) { case BuildConfigurationOptions\CompressionOptions::HIGH: $package_writer->addFlag(PackageFlags::HIGH_COMPRESSION); @@ -280,7 +280,7 @@ break; 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()); // 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 // 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 */ diff --git a/src/ncc/Classes/PhpExtension/ExecutableCompiler.php b/src/ncc/Classes/PhpExtension/ExecutableCompiler.php index 4fa9f46..926fc0a 100644 --- a/src/ncc/Classes/PhpExtension/ExecutableCompiler.php +++ b/src/ncc/Classes/PhpExtension/ExecutableCompiler.php @@ -50,14 +50,14 @@ $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)); } // Build the ncc package first 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 $hex_dump_file = PathFinder::getCachePath() . DIRECTORY_SEPARATOR . $this->getProjectManager()->getProjectConfiguration()->getAssembly()->getName() . '.c'; @@ -72,11 +72,11 @@ // Prepare the gcc command $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( $this->getProjectManager()->getProjectConfiguration(), - $configuration->getOptions()[BuildConfigurationOptions::OUTPUT_FILE] + $configuration->getOptions()[BuildConfigurationOptions::OUTPUT_FILE->value] ); } else diff --git a/src/ncc/Classes/PhpExtension/Templates/CliTemplate.php b/src/ncc/Classes/PhpExtension/Templates/CliTemplate.php index d28c36c..7f9426a 100644 --- a/src/ncc/Classes/PhpExtension/Templates/CliTemplate.php +++ b/src/ncc/Classes/PhpExtension/Templates/CliTemplate.php @@ -60,7 +60,7 @@ 'build' . DIRECTORY_SEPARATOR . 'release' . DIRECTORY_SEPARATOR . AssemblyConstants::ASSEMBLY_NAME->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); // Create the debug build configuration @@ -69,7 +69,7 @@ ); $debug_executable->setDefinedConstant('DEBUG', '1'); $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); self::writeProgramTemplate($project_manager); diff --git a/src/ncc/Classes/Runtime.php b/src/ncc/Classes/Runtime.php index e14cda4..f9b72fb 100644 --- a/src/ncc/Classes/Runtime.php +++ b/src/ncc/Classes/Runtime.php @@ -189,9 +189,9 @@ 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 { @@ -273,9 +273,9 @@ } // 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 { diff --git a/src/ncc/Enums/Options/BuildConfigurationOptions.php b/src/ncc/Enums/Options/BuildConfigurationOptions.php index 7876e20..2226c2a 100644 --- a/src/ncc/Enums/Options/BuildConfigurationOptions.php +++ b/src/ncc/Enums/Options/BuildConfigurationOptions.php @@ -22,15 +22,15 @@ 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'; } \ No newline at end of file diff --git a/src/ncc/Managers/PackageManager.php b/src/ncc/Managers/PackageManager.php index dacade0..3dc9487 100644 --- a/src/ncc/Managers/PackageManager.php +++ b/src/ncc/Managers/PackageManager.php @@ -806,7 +806,7 @@ { $package_path = (new ProjectManager($project_detection->getProjectFilePath()))->build( 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); @@ -830,7 +830,7 @@ $project_manager = ProjectManager::initializeFromComposer(dirname($project_detection->getProjectFilePath()), $options); $package_path = $project_manager->build( 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); diff --git a/src/ncc/Managers/ProjectManager.php b/src/ncc/Managers/ProjectManager.php index 484eb05..62800af 100644 --- a/src/ncc/Managers/ProjectManager.php +++ b/src/ncc/Managers/ProjectManager.php @@ -611,7 +611,7 @@ $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 @@ -626,7 +626,7 @@ 'build' . DIRECTORY_SEPARATOR . 'debug' . DIRECTORY_SEPARATOR . AssemblyConstants::ASSEMBLY_NAME->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); $build->addBuildConfiguration($executable_debug_configuration); @@ -640,7 +640,7 @@ $executable_release_configuration = new ProjectConfiguration\Build\BuildConfiguration('release_executable', '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); $build->addBuildConfiguration($executable_release_configuration);