/* 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 "cmPolicies.h" #include "cmState.h" #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 "cmCMakeMinimumRequired.h" #include "cmCMakePolicyCommand.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 "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 "cmStringCommand.h" #include "cmSubdirCommand.h" #include "cmTargetCompileDefinitionsCommand.h" #include "cmTargetCompileFeaturesCommand.h" #include "cmTargetCompileOptionsCommand.h" #include "cmTargetIncludeDirectoriesCommand.h" #include "cmTargetLinkLibrariesCommand.h" #include "cmTargetSourcesCommand.h" #include "cmTryCompileCommand.h" #include "cmTryRunCommand.h" #include "cmUnsetCommand.h" #include "cmWhileCommand.h" #if defined(CMAKE_BUILD_WITH_CMAKE) # 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 "cmTargetLinkOptionsCommand.h" # include "cmUseMangledMesaCommand.h" # include "cmUtilitySourceCommand.h" # include "cmVariableRequiresCommand.h" # include "cmVariableWatchCommand.h" # include "cmWriteFileCommand.h" #endif void GetScriptingCommands(cmState* state) { state->AddBuiltinCommand("break", new cmBreakCommand); state->AddBuiltinCommand("cmake_minimum_required", new cmCMakeMinimumRequired); state->AddBuiltinCommand("cmake_policy", new cmCMakePolicyCommand); state->AddBuiltinCommand("configure_file", new cmConfigureFileCommand); state->AddBuiltinCommand("continue", new cmContinueCommand); state->AddBuiltinCommand("exec_program", new cmExecProgramCommand); state->AddBuiltinCommand("execute_process", new cmExecuteProcessCommand); state->AddBuiltinCommand("file", new cmFileCommand); state->AddBuiltinCommand("find_file", new cmFindFileCommand); state->AddBuiltinCommand("find_library", new cmFindLibraryCommand); state->AddBuiltinCommand("find_package", new cmFindPackageCommand); state->AddBuiltinCommand("find_path", new cmFindPathCommand); state->AddBuiltinCommand("find_program", new cmFindProgramCommand); state->AddBuiltinCommand("foreach", new cmForEachCommand); state->AddBuiltinCommand("function", new cmFunctionCommand); state->AddBuiltinCommand("get_cmake_property", new cmGetCMakePropertyCommand); state->AddBuiltinCommand("get_directory_property", new cmGetDirectoryPropertyCommand); state->AddBuiltinCommand("get_filename_component", new cmGetFilenameComponentCommand); state->AddBuiltinCommand("get_property", new cmGetPropertyCommand); state->AddBuiltinCommand("if", new cmIfCommand); state->AddBuiltinCommand("include", new cmIncludeCommand); state->AddBuiltinCommand("include_guard", new cmIncludeGuardCommand); state->AddBuiltinCommand("list", new cmListCommand); state->AddBuiltinCommand("macro", new cmMacroCommand); state->AddBuiltinCommand("make_directory", new cmMakeDirectoryCommand); state->AddBuiltinCommand("mark_as_advanced", new cmMarkAsAdvancedCommand); state->AddBuiltinCommand("math", new cmMathCommand); state->AddBuiltinCommand("message", new cmMessageCommand); state->AddBuiltinCommand("option", new cmOptionCommand); state->AddBuiltinCommand("cmake_parse_arguments", new cmParseArgumentsCommand); state->AddBuiltinCommand("return", new cmReturnCommand); state->AddBuiltinCommand("separate_arguments", new cmSeparateArgumentsCommand); state->AddBuiltinCommand("set", new cmSetCommand); state->AddBuiltinCommand("set_property", new cmSetPropertyCommand); state->AddBuiltinCommand("site_name", new cmSiteNameCommand); state->AddBuiltinCommand("string", new cmStringCommand); state->AddBuiltinCommand("unset", new cmUnsetCommand); state->AddBuiltinCommand("while", new cmWhileCommand); state->AddUnexpectedCommand( "else", "An ELSE command was found outside of a proper " "IF ENDIF structure. Or its arguments did not match " "the opening IF command."); state->AddUnexpectedCommand( "elseif", "An ELSEIF command was found outside of a proper " "IF ENDIF structure."); state->AddUnexpectedCommand( "endforeach", "An ENDFOREACH command was found outside of a proper " "FOREACH ENDFOREACH structure. Or its arguments did " "not match the opening FOREACH command."); state->AddUnexpectedCommand( "endfunction", "An ENDFUNCTION command was found outside of a proper " "FUNCTION ENDFUNCTION structure. Or its arguments did not " "match the opening FUNCTION command."); state->AddUnexpectedCommand( "endif", "An ENDIF command was found outside of a proper " "IF ENDIF structure. Or its arguments did not match " "the opening IF command."); state->AddUnexpectedCommand( "endmacro", "An ENDMACRO command was found outside of a proper " "MACRO ENDMACRO structure. Or its arguments did not " "match the opening MACRO command."); state->AddUnexpectedCommand( "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_BUILD_WITH_CMAKE) state->AddBuiltinCommand("cmake_host_system_information", new cmCMakeHostSystemInformationCommand); state->AddBuiltinCommand("remove", new cmRemoveCommand); state->AddBuiltinCommand("variable_watch", new cmVariableWatchCommand); state->AddBuiltinCommand("write_file", new cmWriteFileCommand); state->AddDisallowedCommand( "build_name", new cmBuildNameCommand, cmPolicies::CMP0036, "The build_name command should not be called; see CMP0036."); state->AddDisallowedCommand( "use_mangled_mesa", new cmUseMangledMesaCommand, cmPolicies::CMP0030, "The use_mangled_mesa command should not be called; see CMP0030."); #endif } void GetProjectCommands(cmState* state) { state->AddBuiltinCommand("add_custom_command", new cmAddCustomCommandCommand); state->AddBuiltinCommand("add_custom_target", new cmAddCustomTargetCommand); state->AddBuiltinCommand("add_definitions", new cmAddDefinitionsCommand); state->AddBuiltinCommand("add_dependencies", new cmAddDependenciesCommand); state->AddBuiltinCommand("add_executable", new cmAddExecutableCommand); state->AddBuiltinCommand("add_library", new cmAddLibraryCommand); state->AddBuiltinCommand("add_subdirectory", new cmAddSubDirectoryCommand); state->AddBuiltinCommand("add_test", new cmAddTestCommand); state->AddBuiltinCommand("build_command", new cmBuildCommand); state->AddBuiltinCommand("create_test_sourcelist", new cmCreateTestSourceList); state->AddBuiltinCommand("define_property", new cmDefinePropertyCommand); state->AddBuiltinCommand("enable_language", new cmEnableLanguageCommand); state->AddBuiltinCommand("enable_testing", new cmEnableTestingCommand); state->AddBuiltinCommand("get_source_file_property", new cmGetSourceFilePropertyCommand); state->AddBuiltinCommand("get_target_property", new cmGetTargetPropertyCommand); state->AddBuiltinCommand("get_test_property", new cmGetTestPropertyCommand); state->AddBuiltinCommand("include_directories", new cmIncludeDirectoryCommand); state->AddBuiltinCommand("include_regular_expression", new cmIncludeRegularExpressionCommand); state->AddBuiltinCommand("install", new cmInstallCommand); state->AddBuiltinCommand("install_files", new cmInstallFilesCommand); state->AddBuiltinCommand("install_targets", new cmInstallTargetsCommand); state->AddBuiltinCommand("link_directories", new cmLinkDirectoriesCommand); state->AddBuiltinCommand("project", new cmProjectCommand); state->AddBuiltinCommand("set_directory_properties", new cmSetDirectoryPropertiesCommand); state->AddBuiltinCommand("set_source_files_properties", new cmSetSourceFilesPropertiesCommand); state->AddBuiltinCommand("set_target_properties", new cmSetTargetPropertiesCommand); state->AddBuiltinCommand("set_tests_properties", new cmSetTestsPropertiesCommand); state->AddBuiltinCommand("subdirs", new cmSubdirCommand); state->AddBuiltinCommand("target_compile_definitions", new cmTargetCompileDefinitionsCommand); state->AddBuiltinCommand("target_compile_features", new cmTargetCompileFeaturesCommand); state->AddBuiltinCommand("target_compile_options", new cmTargetCompileOptionsCommand); state->AddBuiltinCommand("target_include_directories", new cmTargetIncludeDirectoriesCommand); state->AddBuiltinCommand("target_link_libraries", new cmTargetLinkLibrariesCommand); state->AddBuiltinCommand("target_sources", new cmTargetSourcesCommand); state->AddBuiltinCommand("try_compile", new cmTryCompileCommand); state->AddBuiltinCommand("try_run", new cmTryRunCommand); #if defined(CMAKE_BUILD_WITH_CMAKE) state->AddBuiltinCommand("add_compile_definitions", new cmAddCompileDefinitionsCommand); state->AddBuiltinCommand("add_compile_options", new cmAddCompileOptionsCommand); state->AddBuiltinCommand("aux_source_directory", new cmAuxSourceDirectoryCommand); state->AddBuiltinCommand("export", new cmExportCommand); state->AddBuiltinCommand("fltk_wrap_ui", new cmFLTKWrapUICommand); state->AddBuiltinCommand("include_external_msproject", new cmIncludeExternalMSProjectCommand); state->AddBuiltinCommand("install_programs", new cmInstallProgramsCommand); state->AddBuiltinCommand("add_link_options", new cmAddLinkOptionsCommand); state->AddBuiltinCommand("link_libraries", new cmLinkLibrariesCommand); state->AddBuiltinCommand("target_link_options", new cmTargetLinkOptionsCommand); state->AddBuiltinCommand("target_link_directories", new cmTargetLinkDirectoriesCommand); state->AddBuiltinCommand("load_cache", new cmLoadCacheCommand); state->AddBuiltinCommand("qt_wrap_cpp", new cmQTWrapCPPCommand); state->AddBuiltinCommand("qt_wrap_ui", new cmQTWrapUICommand); state->AddBuiltinCommand("remove_definitions", new cmRemoveDefinitionsCommand); state->AddBuiltinCommand("source_group", new cmSourceGroupCommand); state->AddDisallowedCommand( "export_library_dependencies", new cmExportLibraryDependenciesCommand, cmPolicies::CMP0033, "The export_library_dependencies command should not be called; " "see CMP0033."); state->AddDisallowedCommand( "load_command", new cmLoadCommandCommand, cmPolicies::CMP0031, "The load_command command should not be called; see CMP0031."); state->AddDisallowedCommand( "output_required_files", new cmOutputRequiredFilesCommand, cmPolicies::CMP0032, "The output_required_files command should not be called; see CMP0032."); state->AddDisallowedCommand( "subdir_depends", new cmSubdirDependsCommand, cmPolicies::CMP0029, "The subdir_depends command should not be called; see CMP0029."); state->AddDisallowedCommand( "utility_source", new cmUtilitySourceCommand, cmPolicies::CMP0034, "The utility_source command should not be called; see CMP0034."); state->AddDisallowedCommand( "variable_requires", new 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("load_cache"); 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 }