/* Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
   file Copyright.txt or https://cmake.org/licensing for details.  */

#include "cmCommands.h"

#include <cm/memory>

#include "cmAddCompileDefinitionsCommand.h"
#include "cmAddCustomCommandCommand.h"
#include "cmAddCustomTargetCommand.h"
#include "cmAddDefinitionsCommand.h"
#include "cmAddDependenciesCommand.h"
#include "cmAddExecutableCommand.h"
#include "cmAddLibraryCommand.h"
#include "cmAddSubDirectoryCommand.h"
#include "cmAddTestCommand.h"
#include "cmBreakCommand.h"
#include "cmBuildCommand.h"
#include "cmCMakeLanguageCommand.h"
#include "cmCMakeMinimumRequired.h"
#include "cmCMakePathCommand.h"
#include "cmCMakePolicyCommand.h"
#include "cmCommand.h"
#include "cmConfigureFileCommand.h"
#include "cmContinueCommand.h"
#include "cmCreateTestSourceList.h"
#include "cmDefinePropertyCommand.h"
#include "cmEnableLanguageCommand.h"
#include "cmEnableTestingCommand.h"
#include "cmExecProgramCommand.h"
#include "cmExecuteProcessCommand.h"
#include "cmFileCommand.h"
#include "cmFindFileCommand.h"
#include "cmFindLibraryCommand.h"
#include "cmFindPackageCommand.h"
#include "cmFindPathCommand.h"
#include "cmFindProgramCommand.h"
#include "cmForEachCommand.h"
#include "cmFunctionCommand.h"
#include "cmGetCMakePropertyCommand.h"
#include "cmGetDirectoryPropertyCommand.h"
#include "cmGetFilenameComponentCommand.h"
#include "cmGetPropertyCommand.h"
#include "cmGetSourceFilePropertyCommand.h"
#include "cmGetTargetPropertyCommand.h"
#include "cmGetTestPropertyCommand.h"
#include "cmIfCommand.h"
#include "cmIncludeCommand.h"
#include "cmIncludeDirectoryCommand.h"
#include "cmIncludeGuardCommand.h"
#include "cmIncludeRegularExpressionCommand.h"
#include "cmInstallCommand.h"
#include "cmInstallFilesCommand.h"
#include "cmInstallTargetsCommand.h"
#include "cmLinkDirectoriesCommand.h"
#include "cmListCommand.h"
#include "cmMacroCommand.h"
#include "cmMakeDirectoryCommand.h"
#include "cmMarkAsAdvancedCommand.h"
#include "cmMathCommand.h"
#include "cmMessageCommand.h"
#include "cmOptionCommand.h"
#include "cmParseArgumentsCommand.h"
#include "cmPolicies.h"
#include "cmProjectCommand.h"
#include "cmReturnCommand.h"
#include "cmSeparateArgumentsCommand.h"
#include "cmSetCommand.h"
#include "cmSetDirectoryPropertiesCommand.h"
#include "cmSetPropertyCommand.h"
#include "cmSetSourceFilesPropertiesCommand.h"
#include "cmSetTargetPropertiesCommand.h"
#include "cmSetTestsPropertiesCommand.h"
#include "cmSiteNameCommand.h"
#include "cmState.h"
#include "cmStringCommand.h"
#include "cmSubdirCommand.h"
#include "cmTargetCompileDefinitionsCommand.h"
#include "cmTargetCompileFeaturesCommand.h"
#include "cmTargetCompileOptionsCommand.h"
#include "cmTargetIncludeDirectoriesCommand.h"
#include "cmTargetLinkLibrariesCommand.h"
#include "cmTargetLinkOptionsCommand.h"
#include "cmTargetPrecompileHeadersCommand.h"
#include "cmTargetSourcesCommand.h"
#include "cmTryCompileCommand.h"
#include "cmTryRunCommand.h"
#include "cmUnsetCommand.h"
#include "cmWhileCommand.h"

#if !defined(CMAKE_BOOTSTRAP)
#  include "cmAddCompileOptionsCommand.h"
#  include "cmAddLinkOptionsCommand.h"
#  include "cmAuxSourceDirectoryCommand.h"
#  include "cmBuildNameCommand.h"
#  include "cmCMakeHostSystemInformationCommand.h"
#  include "cmExportCommand.h"
#  include "cmExportLibraryDependenciesCommand.h"
#  include "cmFLTKWrapUICommand.h"
#  include "cmIncludeExternalMSProjectCommand.h"
#  include "cmInstallProgramsCommand.h"
#  include "cmLinkLibrariesCommand.h"
#  include "cmLoadCacheCommand.h"
#  include "cmLoadCommandCommand.h"
#  include "cmOutputRequiredFilesCommand.h"
#  include "cmQTWrapCPPCommand.h"
#  include "cmQTWrapUICommand.h"
#  include "cmRemoveCommand.h"
#  include "cmRemoveDefinitionsCommand.h"
#  include "cmSourceGroupCommand.h"
#  include "cmSubdirDependsCommand.h"
#  include "cmTargetLinkDirectoriesCommand.h"
#  include "cmUseMangledMesaCommand.h"
#  include "cmUtilitySourceCommand.h"
#  include "cmVariableRequiresCommand.h"
#  include "cmVariableWatchCommand.h"
#  include "cmWriteFileCommand.h"
#endif

void GetScriptingCommands(cmState* state)
{
  state->AddFlowControlCommand("break", cmBreakCommand);
  state->AddFlowControlCommand("continue", cmContinueCommand);
  state->AddFlowControlCommand("foreach", cmForEachCommand);
  state->AddFlowControlCommand("function", cmFunctionCommand);
  state->AddFlowControlCommand("if", cmIfCommand);
  state->AddFlowControlCommand("macro", cmMacroCommand);
  state->AddFlowControlCommand("return", cmReturnCommand);
  state->AddFlowControlCommand("while", cmWhileCommand);

  state->AddBuiltinCommand("cmake_language", cmCMakeLanguageCommand);
  state->AddBuiltinCommand("cmake_minimum_required", cmCMakeMinimumRequired);
  state->AddBuiltinCommand("cmake_path", cmCMakePathCommand);
  state->AddBuiltinCommand("cmake_policy", cmCMakePolicyCommand);
  state->AddBuiltinCommand("configure_file", cmConfigureFileCommand);
  state->AddBuiltinCommand("exec_program", cmExecProgramCommand);
  state->AddBuiltinCommand("execute_process", cmExecuteProcessCommand);
  state->AddBuiltinCommand("file", cmFileCommand);
  state->AddBuiltinCommand("find_file", cmFindFile);
  state->AddBuiltinCommand("find_library", cmFindLibrary);
  state->AddBuiltinCommand("find_package", cmFindPackage);
  state->AddBuiltinCommand("find_path", cmFindPath);
  state->AddBuiltinCommand("find_program", cmFindProgram);
  state->AddBuiltinCommand("get_cmake_property", cmGetCMakePropertyCommand);
  state->AddBuiltinCommand("get_directory_property",
                           cmGetDirectoryPropertyCommand);
  state->AddBuiltinCommand("get_filename_component",
                           cmGetFilenameComponentCommand);
  state->AddBuiltinCommand("get_property", cmGetPropertyCommand);
  state->AddBuiltinCommand("include", cmIncludeCommand);
  state->AddBuiltinCommand("include_guard", cmIncludeGuardCommand);
  state->AddBuiltinCommand("list", cmListCommand);
  state->AddBuiltinCommand("make_directory", cmMakeDirectoryCommand);
  state->AddBuiltinCommand("mark_as_advanced", cmMarkAsAdvancedCommand);
  state->AddBuiltinCommand("math", cmMathCommand);
  state->AddBuiltinCommand("message", cmMessageCommand);
  state->AddBuiltinCommand("option", cmOptionCommand);
  state->AddBuiltinCommand("cmake_parse_arguments", cmParseArgumentsCommand);
  state->AddBuiltinCommand("separate_arguments", cmSeparateArgumentsCommand);
  state->AddBuiltinCommand("set", cmSetCommand);
  state->AddBuiltinCommand("set_directory_properties",
                           cmSetDirectoryPropertiesCommand);
  state->AddBuiltinCommand("set_property", cmSetPropertyCommand);
  state->AddBuiltinCommand("site_name", cmSiteNameCommand);
  state->AddBuiltinCommand("string", cmStringCommand);
  state->AddBuiltinCommand("unset", cmUnsetCommand);

  state->AddUnexpectedFlowControlCommand(
    "else",
    "An ELSE command was found outside of a proper "
    "IF ENDIF structure. Or its arguments did not match "
    "the opening IF command.");
  state->AddUnexpectedFlowControlCommand(
    "elseif",
    "An ELSEIF command was found outside of a proper "
    "IF ENDIF structure.");
  state->AddUnexpectedFlowControlCommand(
    "endforeach",
    "An ENDFOREACH command was found outside of a proper "
    "FOREACH ENDFOREACH structure. Or its arguments did "
    "not match the opening FOREACH command.");
  state->AddUnexpectedFlowControlCommand(
    "endfunction",
    "An ENDFUNCTION command was found outside of a proper "
    "FUNCTION ENDFUNCTION structure. Or its arguments did not "
    "match the opening FUNCTION command.");
  state->AddUnexpectedFlowControlCommand(
    "endif",
    "An ENDIF command was found outside of a proper "
    "IF ENDIF structure. Or its arguments did not match "
    "the opening IF command.");
  state->AddUnexpectedFlowControlCommand(
    "endmacro",
    "An ENDMACRO command was found outside of a proper "
    "MACRO ENDMACRO structure. Or its arguments did not "
    "match the opening MACRO command.");
  state->AddUnexpectedFlowControlCommand(
    "endwhile",
    "An ENDWHILE command was found outside of a proper "
    "WHILE ENDWHILE structure. Or its arguments did not "
    "match the opening WHILE command.");

#if !defined(CMAKE_BOOTSTRAP)
  state->AddBuiltinCommand("cmake_host_system_information",
                           cmCMakeHostSystemInformationCommand);
  state->AddBuiltinCommand("load_cache", cmLoadCacheCommand);
  state->AddBuiltinCommand("remove", cmRemoveCommand);
  state->AddBuiltinCommand("variable_watch", cmVariableWatchCommand);
  state->AddBuiltinCommand("write_file", cmWriteFileCommand);

  state->AddDisallowedCommand(
    "build_name", cmBuildNameCommand, cmPolicies::CMP0036,
    "The build_name command should not be called; see CMP0036.");
  state->AddDisallowedCommand(
    "use_mangled_mesa", cmUseMangledMesaCommand, cmPolicies::CMP0030,
    "The use_mangled_mesa command should not be called; see CMP0030.");

#endif
}

void GetProjectCommands(cmState* state)
{
  state->AddBuiltinCommand("add_custom_command", cmAddCustomCommandCommand);
  state->AddBuiltinCommand("add_custom_target", cmAddCustomTargetCommand);
  state->AddBuiltinCommand("add_definitions", cmAddDefinitionsCommand);
  state->AddBuiltinCommand("add_dependencies", cmAddDependenciesCommand);
  state->AddBuiltinCommand("add_executable", cmAddExecutableCommand);
  state->AddBuiltinCommand("add_library", cmAddLibraryCommand);
  state->AddBuiltinCommand("add_subdirectory", cmAddSubDirectoryCommand);
  state->AddBuiltinCommand("add_test", cmAddTestCommand);
  state->AddBuiltinCommand("build_command", cmBuildCommand);
  state->AddBuiltinCommand("create_test_sourcelist", cmCreateTestSourceList);
  state->AddBuiltinCommand("define_property", cmDefinePropertyCommand);
  state->AddBuiltinCommand("enable_language", cmEnableLanguageCommand);
  state->AddBuiltinCommand("enable_testing", cmEnableTestingCommand);
  state->AddBuiltinCommand("get_source_file_property",
                           cmGetSourceFilePropertyCommand);
  state->AddBuiltinCommand("get_target_property", cmGetTargetPropertyCommand);
  state->AddBuiltinCommand("get_test_property", cmGetTestPropertyCommand);
  state->AddBuiltinCommand("include_directories", cmIncludeDirectoryCommand);
  state->AddBuiltinCommand("include_regular_expression",
                           cmIncludeRegularExpressionCommand);
  state->AddBuiltinCommand("install", cmInstallCommand);
  state->AddBuiltinCommand("install_files", cmInstallFilesCommand);
  state->AddBuiltinCommand("install_targets", cmInstallTargetsCommand);
  state->AddBuiltinCommand("link_directories", cmLinkDirectoriesCommand);
  state->AddBuiltinCommand("project", cmProjectCommand);
  state->AddBuiltinCommand("set_source_files_properties",
                           cmSetSourceFilesPropertiesCommand);
  state->AddBuiltinCommand("set_target_properties",
                           cmSetTargetPropertiesCommand);
  state->AddBuiltinCommand("set_tests_properties",
                           cmSetTestsPropertiesCommand);
  state->AddBuiltinCommand("subdirs", cmSubdirCommand);
  state->AddBuiltinCommand("target_compile_definitions",
                           cmTargetCompileDefinitionsCommand);
  state->AddBuiltinCommand("target_compile_features",
                           cmTargetCompileFeaturesCommand);
  state->AddBuiltinCommand("target_compile_options",
                           cmTargetCompileOptionsCommand);
  state->AddBuiltinCommand("target_include_directories",
                           cmTargetIncludeDirectoriesCommand);
  state->AddBuiltinCommand("target_link_libraries",
                           cmTargetLinkLibrariesCommand);
  state->AddBuiltinCommand("target_link_options", cmTargetLinkOptionsCommand);
  state->AddBuiltinCommand("target_sources", cmTargetSourcesCommand);
  state->AddBuiltinCommand("try_compile",
                           cm::make_unique<cmTryCompileCommand>());
  state->AddBuiltinCommand("try_run", cm::make_unique<cmTryRunCommand>());
  state->AddBuiltinCommand("target_precompile_headers",
                           cmTargetPrecompileHeadersCommand);

#if !defined(CMAKE_BOOTSTRAP)
  state->AddBuiltinCommand("add_compile_definitions",
                           cmAddCompileDefinitionsCommand);
  state->AddBuiltinCommand("add_compile_options", cmAddCompileOptionsCommand);
  state->AddBuiltinCommand("aux_source_directory",
                           cmAuxSourceDirectoryCommand);
  state->AddBuiltinCommand("export", cmExportCommand);
  state->AddBuiltinCommand("fltk_wrap_ui", cmFLTKWrapUICommand);
  state->AddBuiltinCommand("include_external_msproject",
                           cmIncludeExternalMSProjectCommand);
  state->AddBuiltinCommand("install_programs", cmInstallProgramsCommand);
  state->AddBuiltinCommand("add_link_options", cmAddLinkOptionsCommand);
  state->AddBuiltinCommand("link_libraries", cmLinkLibrariesCommand);
  state->AddBuiltinCommand("target_link_directories",
                           cmTargetLinkDirectoriesCommand);
  state->AddBuiltinCommand("qt_wrap_cpp", cmQTWrapCPPCommand);
  state->AddBuiltinCommand("qt_wrap_ui", cmQTWrapUICommand);
  state->AddBuiltinCommand("remove_definitions", cmRemoveDefinitionsCommand);
  state->AddBuiltinCommand("source_group", cmSourceGroupCommand);

  state->AddDisallowedCommand(
    "export_library_dependencies", cmExportLibraryDependenciesCommand,
    cmPolicies::CMP0033,
    "The export_library_dependencies command should not be called; "
    "see CMP0033.");
  state->AddDisallowedCommand(
    "load_command", cmLoadCommandCommand, cmPolicies::CMP0031,
    "The load_command command should not be called; see CMP0031.");
  state->AddDisallowedCommand(
    "output_required_files", cmOutputRequiredFilesCommand, cmPolicies::CMP0032,
    "The output_required_files command should not be called; see CMP0032.");
  state->AddDisallowedCommand(
    "subdir_depends", cmSubdirDependsCommand, cmPolicies::CMP0029,
    "The subdir_depends command should not be called; see CMP0029.");
  state->AddDisallowedCommand(
    "utility_source", cmUtilitySourceCommand, cmPolicies::CMP0034,
    "The utility_source command should not be called; see CMP0034.");
  state->AddDisallowedCommand(
    "variable_requires", cmVariableRequiresCommand, cmPolicies::CMP0035,
    "The variable_requires command should not be called; see CMP0035.");
#endif
}

void GetProjectCommandsInScriptMode(cmState* state)
{
#define CM_UNEXPECTED_PROJECT_COMMAND(NAME)                                   \
  state->AddUnexpectedCommand(NAME, "command is not scriptable")

  CM_UNEXPECTED_PROJECT_COMMAND("add_compile_options");
  CM_UNEXPECTED_PROJECT_COMMAND("add_custom_command");
  CM_UNEXPECTED_PROJECT_COMMAND("add_custom_target");
  CM_UNEXPECTED_PROJECT_COMMAND("add_definitions");
  CM_UNEXPECTED_PROJECT_COMMAND("add_dependencies");
  CM_UNEXPECTED_PROJECT_COMMAND("add_executable");
  CM_UNEXPECTED_PROJECT_COMMAND("add_library");
  CM_UNEXPECTED_PROJECT_COMMAND("add_subdirectory");
  CM_UNEXPECTED_PROJECT_COMMAND("add_test");
  CM_UNEXPECTED_PROJECT_COMMAND("aux_source_directory");
  CM_UNEXPECTED_PROJECT_COMMAND("build_command");
  CM_UNEXPECTED_PROJECT_COMMAND("create_test_sourcelist");
  CM_UNEXPECTED_PROJECT_COMMAND("define_property");
  CM_UNEXPECTED_PROJECT_COMMAND("enable_language");
  CM_UNEXPECTED_PROJECT_COMMAND("enable_testing");
  CM_UNEXPECTED_PROJECT_COMMAND("export");
  CM_UNEXPECTED_PROJECT_COMMAND("fltk_wrap_ui");
  CM_UNEXPECTED_PROJECT_COMMAND("get_source_file_property");
  CM_UNEXPECTED_PROJECT_COMMAND("get_target_property");
  CM_UNEXPECTED_PROJECT_COMMAND("get_test_property");
  CM_UNEXPECTED_PROJECT_COMMAND("include_directories");
  CM_UNEXPECTED_PROJECT_COMMAND("include_external_msproject");
  CM_UNEXPECTED_PROJECT_COMMAND("include_regular_expression");
  CM_UNEXPECTED_PROJECT_COMMAND("install");
  CM_UNEXPECTED_PROJECT_COMMAND("link_directories");
  CM_UNEXPECTED_PROJECT_COMMAND("link_libraries");
  CM_UNEXPECTED_PROJECT_COMMAND("project");
  CM_UNEXPECTED_PROJECT_COMMAND("qt_wrap_cpp");
  CM_UNEXPECTED_PROJECT_COMMAND("qt_wrap_ui");
  CM_UNEXPECTED_PROJECT_COMMAND("remove_definitions");
  CM_UNEXPECTED_PROJECT_COMMAND("set_source_files_properties");
  CM_UNEXPECTED_PROJECT_COMMAND("set_target_properties");
  CM_UNEXPECTED_PROJECT_COMMAND("set_tests_properties");
  CM_UNEXPECTED_PROJECT_COMMAND("source_group");
  CM_UNEXPECTED_PROJECT_COMMAND("target_compile_definitions");
  CM_UNEXPECTED_PROJECT_COMMAND("target_compile_features");
  CM_UNEXPECTED_PROJECT_COMMAND("target_compile_options");
  CM_UNEXPECTED_PROJECT_COMMAND("target_include_directories");
  CM_UNEXPECTED_PROJECT_COMMAND("target_link_libraries");
  CM_UNEXPECTED_PROJECT_COMMAND("target_sources");
  CM_UNEXPECTED_PROJECT_COMMAND("try_compile");
  CM_UNEXPECTED_PROJECT_COMMAND("try_run");

  // deprecated commands
  CM_UNEXPECTED_PROJECT_COMMAND("export_library_dependencies");
  CM_UNEXPECTED_PROJECT_COMMAND("load_command");
  CM_UNEXPECTED_PROJECT_COMMAND("output_required_files");
  CM_UNEXPECTED_PROJECT_COMMAND("subdir_depends");
  CM_UNEXPECTED_PROJECT_COMMAND("utility_source");
  CM_UNEXPECTED_PROJECT_COMMAND("variable_requires");

#undef CM_UNEXPECTED_PROJECT_COMMAND
}
