diff options
author | Daniel Pfeifer <daniel@pfeifer-mail.de> | 2017-01-20 21:12:32 (GMT) |
---|---|---|
committer | Daniel Pfeifer <daniel@pfeifer-mail.de> | 2017-02-13 21:32:55 (GMT) |
commit | 72dcbbe5c017a4c071187259f9594ccf02f7b466 (patch) | |
tree | 1cd77bbfcdf4a2e65a2829a6df9292f755a18cb3 | |
parent | 7fb14775a3cce73dc0cb0d759b96059a95f7104b (diff) | |
download | CMake-72dcbbe5c017a4c071187259f9594ccf02f7b466.zip CMake-72dcbbe5c017a4c071187259f9594ccf02f7b466.tar.gz CMake-72dcbbe5c017a4c071187259f9594ccf02f7b466.tar.bz2 |
split Default commands into Scripting and Project
-rw-r--r-- | Help/manual/cmake-commands.7.rst | 133 | ||||
-rw-r--r-- | Source/cmCommands.cxx | 95 | ||||
-rw-r--r-- | Source/cmCommands.h | 3 | ||||
-rw-r--r-- | Source/cmake.cxx | 16 | ||||
-rw-r--r-- | Source/cmake.h | 3 |
5 files changed, 142 insertions, 108 deletions
diff --git a/Help/manual/cmake-commands.7.rst b/Help/manual/cmake-commands.7.rst index d0c2986..611c989 100644 --- a/Help/manual/cmake-commands.7.rst +++ b/Help/manual/cmake-commands.7.rst @@ -7,91 +7,103 @@ cmake-commands(7) .. contents:: -Normal Commands -=============== +Scripting Commands +================== -These commands may be used freely in CMake projects. +These commands are always available. .. toctree:: :maxdepth: 1 - /command/add_compile_options - /command/add_custom_command - /command/add_custom_target - /command/add_definitions - /command/add_dependencies - /command/add_executable - /command/add_library - /command/add_subdirectory - /command/add_test - /command/aux_source_directory /command/break - /command/build_command /command/cmake_host_system_information /command/cmake_minimum_required /command/cmake_parse_arguments /command/cmake_policy /command/configure_file /command/continue - /command/create_test_sourcelist - /command/define_property /command/elseif /command/else - /command/enable_language - /command/enable_testing /command/endforeach /command/endfunction /command/endif /command/endmacro /command/endwhile /command/execute_process - /command/export /command/file /command/find_file /command/find_library /command/find_package /command/find_path /command/find_program - /command/fltk_wrap_ui /command/foreach /command/function /command/get_cmake_property /command/get_directory_property /command/get_filename_component /command/get_property + /command/if + /command/include + /command/list + /command/macro + /command/mark_as_advanced + /command/math + /command/message + /command/option + /command/return + /command/separate_arguments + /command/set_directory_properties + /command/set_property + /command/set + /command/site_name + /command/string + /command/unset + /command/variable_watch + /command/while + +Project Commands +================ + +These commands are available only in CMake projects. + +.. toctree:: + :maxdepth: 1 + + /command/add_compile_options + /command/add_custom_command + /command/add_custom_target + /command/add_definitions + /command/add_dependencies + /command/add_executable + /command/add_library + /command/add_subdirectory + /command/add_test + /command/aux_source_directory + /command/build_command + /command/create_test_sourcelist + /command/define_property + /command/enable_language + /command/enable_testing + /command/export + /command/fltk_wrap_ui /command/get_source_file_property /command/get_target_property /command/get_test_property - /command/if /command/include_directories /command/include_external_msproject /command/include_regular_expression - /command/include /command/install /command/link_directories /command/link_libraries - /command/list /command/load_cache - /command/macro - /command/mark_as_advanced - /command/math - /command/message - /command/option /command/project /command/qt_wrap_cpp /command/qt_wrap_ui /command/remove_definitions - /command/return - /command/separate_arguments - /command/set_directory_properties - /command/set_property - /command/set /command/set_source_files_properties /command/set_target_properties /command/set_tests_properties - /command/site_name /command/source_group - /command/string /command/target_compile_definitions /command/target_compile_features /command/target_compile_options @@ -100,9 +112,30 @@ These commands may be used freely in CMake projects. /command/target_sources /command/try_compile /command/try_run - /command/unset - /command/variable_watch - /command/while + +.. _`CTest Commands`: + +CTest Commands +============== + +These commands are available only in CTest scripts. + +.. toctree:: + :maxdepth: 1 + + /command/ctest_build + /command/ctest_configure + /command/ctest_coverage + /command/ctest_empty_binary_directory + /command/ctest_memcheck + /command/ctest_read_custom_files + /command/ctest_run_script + /command/ctest_sleep + /command/ctest_start + /command/ctest_submit + /command/ctest_test + /command/ctest_update + /command/ctest_upload Deprecated Commands =================== @@ -129,27 +162,3 @@ versions of CMake. Do not use them in new code. /command/utility_source /command/variable_requires /command/write_file - -.. _`CTest Commands`: - -CTest Commands -============== - -These commands are available only in ctest scripts. - -.. toctree:: - :maxdepth: 1 - - /command/ctest_build - /command/ctest_configure - /command/ctest_coverage - /command/ctest_empty_binary_directory - /command/ctest_memcheck - /command/ctest_read_custom_files - /command/ctest_run_script - /command/ctest_sleep - /command/ctest_start - /command/ctest_submit - /command/ctest_test - /command/ctest_update - /command/ctest_upload diff --git a/Source/cmCommands.cxx b/Source/cmCommands.cxx index a6754eb..64cd12e 100644 --- a/Source/cmCommands.cxx +++ b/Source/cmCommands.cxx @@ -105,28 +105,15 @@ #include "cmWriteFileCommand.h" #endif -std::vector<cmCommand*> GetPredefinedCommands() +std::vector<cmCommand*> GetScriptingCommands() { std::vector<cmCommand*> commands; - commands.push_back(new cmAddCustomCommandCommand); - commands.push_back(new cmAddCustomTargetCommand); - commands.push_back(new cmAddDefinitionsCommand); - commands.push_back(new cmAddDependenciesCommand); - commands.push_back(new cmAddExecutableCommand); - commands.push_back(new cmAddLibraryCommand); - commands.push_back(new cmAddSubDirectoryCommand); - commands.push_back(new cmAddTestCommand); commands.push_back(new cmBreakCommand); - commands.push_back(new cmBuildCommand); commands.push_back(new cmCMakeMinimumRequired); commands.push_back(new cmCMakePolicyCommand); commands.push_back(new cmConfigureFileCommand); commands.push_back(new cmContinueCommand); - commands.push_back(new cmCreateTestSourceList); - commands.push_back(new cmDefinePropertyCommand); - commands.push_back(new cmEnableLanguageCommand); - commands.push_back(new cmEnableTestingCommand); commands.push_back(new cmExecProgramCommand); commands.push_back(new cmExecuteProcessCommand); commands.push_back(new cmFileCommand); @@ -141,17 +128,8 @@ std::vector<cmCommand*> GetPredefinedCommands() commands.push_back(new cmGetDirectoryPropertyCommand); commands.push_back(new cmGetFilenameComponentCommand); commands.push_back(new cmGetPropertyCommand); - commands.push_back(new cmGetSourceFilePropertyCommand); - commands.push_back(new cmGetTargetPropertyCommand); - commands.push_back(new cmGetTestPropertyCommand); commands.push_back(new cmIfCommand); commands.push_back(new cmIncludeCommand); - commands.push_back(new cmIncludeDirectoryCommand); - commands.push_back(new cmIncludeRegularExpressionCommand); - commands.push_back(new cmInstallCommand); - commands.push_back(new cmInstallFilesCommand); - commands.push_back(new cmInstallTargetsCommand); - commands.push_back(new cmLinkDirectoriesCommand); commands.push_back(new cmListCommand); commands.push_back(new cmMacroCommand); commands.push_back(new cmMakeDirectoryCommand); @@ -160,21 +138,13 @@ std::vector<cmCommand*> GetPredefinedCommands() commands.push_back(new cmMessageCommand); commands.push_back(new cmOptionCommand); commands.push_back(new cmParseArgumentsCommand); - commands.push_back(new cmProjectCommand); commands.push_back(new cmReturnCommand); commands.push_back(new cmSeparateArgumentsCommand); commands.push_back(new cmSetCommand); commands.push_back(new cmSetDirectoryPropertiesCommand); commands.push_back(new cmSetPropertyCommand); - commands.push_back(new cmSetSourceFilesPropertiesCommand); - commands.push_back(new cmSetTargetPropertiesCommand); - commands.push_back(new cmSetTestsPropertiesCommand); commands.push_back(new cmSiteNameCommand); commands.push_back(new cmStringCommand); - commands.push_back(new cmSubdirCommand); - commands.push_back(new cmTargetLinkLibrariesCommand); - commands.push_back(new cmTryCompileCommand); - commands.push_back(new cmTryRunCommand); commands.push_back(new cmUnsetCommand); commands.push_back(new cmWhileCommand); @@ -207,9 +177,61 @@ std::vector<cmCommand*> GetPredefinedCommands() "match the opening WHILE command.")); #if defined(CMAKE_BUILD_WITH_CMAKE) + commands.push_back(new cmCMakeHostSystemInformationCommand); + commands.push_back(new cmRemoveCommand); + commands.push_back(new cmVariableWatchCommand); + commands.push_back(new cmWriteFileCommand); + + commands.push_back(new cmDisallowedCommand( + new cmBuildNameCommand, cmPolicies::CMP0036, + "The build_name command should not be called; see CMP0036.")); + commands.push_back(new cmDisallowedCommand( + new cmUseMangledMesaCommand, cmPolicies::CMP0030, + "The use_mangled_mesa command should not be called; see CMP0030.")); + +#endif + + return commands; +} + +std::vector<cmCommand*> GetProjectCommands() +{ + std::vector<cmCommand*> commands; + + commands.push_back(new cmAddCustomCommandCommand); + commands.push_back(new cmAddCustomTargetCommand); + commands.push_back(new cmAddDefinitionsCommand); + commands.push_back(new cmAddDependenciesCommand); + commands.push_back(new cmAddExecutableCommand); + commands.push_back(new cmAddLibraryCommand); + commands.push_back(new cmAddSubDirectoryCommand); + commands.push_back(new cmAddTestCommand); + commands.push_back(new cmBuildCommand); + commands.push_back(new cmCreateTestSourceList); + commands.push_back(new cmDefinePropertyCommand); + commands.push_back(new cmEnableLanguageCommand); + commands.push_back(new cmEnableTestingCommand); + commands.push_back(new cmGetSourceFilePropertyCommand); + commands.push_back(new cmGetTargetPropertyCommand); + commands.push_back(new cmGetTestPropertyCommand); + commands.push_back(new cmIncludeDirectoryCommand); + commands.push_back(new cmIncludeRegularExpressionCommand); + commands.push_back(new cmInstallCommand); + commands.push_back(new cmInstallFilesCommand); + commands.push_back(new cmInstallTargetsCommand); + commands.push_back(new cmLinkDirectoriesCommand); + commands.push_back(new cmProjectCommand); + commands.push_back(new cmSetSourceFilesPropertiesCommand); + commands.push_back(new cmSetTargetPropertiesCommand); + commands.push_back(new cmSetTestsPropertiesCommand); + commands.push_back(new cmSubdirCommand); + commands.push_back(new cmTargetLinkLibrariesCommand); + commands.push_back(new cmTryCompileCommand); + commands.push_back(new cmTryRunCommand); + +#if defined(CMAKE_BUILD_WITH_CMAKE) commands.push_back(new cmAddCompileOptionsCommand); commands.push_back(new cmAuxSourceDirectoryCommand); - commands.push_back(new cmCMakeHostSystemInformationCommand); commands.push_back(new cmExportCommand); commands.push_back(new cmFLTKWrapUICommand); commands.push_back(new cmIncludeExternalMSProjectCommand); @@ -218,7 +240,6 @@ std::vector<cmCommand*> GetPredefinedCommands() commands.push_back(new cmLoadCacheCommand); commands.push_back(new cmQTWrapCPPCommand); commands.push_back(new cmQTWrapUICommand); - commands.push_back(new cmRemoveCommand); commands.push_back(new cmRemoveDefinitionsCommand); commands.push_back(new cmSourceGroupCommand); commands.push_back(new cmTargetCompileDefinitionsCommand); @@ -226,13 +247,8 @@ std::vector<cmCommand*> GetPredefinedCommands() commands.push_back(new cmTargetCompileOptionsCommand); commands.push_back(new cmTargetIncludeDirectoriesCommand); commands.push_back(new cmTargetSourcesCommand); - commands.push_back(new cmVariableWatchCommand); - commands.push_back(new cmWriteFileCommand); commands.push_back(new cmDisallowedCommand( - new cmBuildNameCommand, cmPolicies::CMP0036, - "The build_name command should not be called; see CMP0036.")); - commands.push_back(new cmDisallowedCommand( new cmExportLibraryDependenciesCommand, cmPolicies::CMP0033, "The export_library_dependencies command should not be called; " "see CMP0033.")); @@ -247,9 +263,6 @@ std::vector<cmCommand*> GetPredefinedCommands() new cmSubdirDependsCommand, cmPolicies::CMP0029, "The subdir_depends command should not be called; see CMP0029.")); commands.push_back(new cmDisallowedCommand( - new cmUseMangledMesaCommand, cmPolicies::CMP0030, - "The use_mangled_mesa command should not be called; see CMP0030.")); - commands.push_back(new cmDisallowedCommand( new cmUtilitySourceCommand, cmPolicies::CMP0034, "The utility_source command should not be called; see CMP0034.")); commands.push_back(new cmDisallowedCommand( diff --git a/Source/cmCommands.h b/Source/cmCommands.h index 649dea6..4d09e42 100644 --- a/Source/cmCommands.h +++ b/Source/cmCommands.h @@ -13,6 +13,7 @@ class cmCommand; * To add a new command edit cmCommands.cxx and add your command. * It is up to the caller to delete the commands created by this call. */ -std::vector<cmCommand*> GetPredefinedCommands(); +std::vector<cmCommand*> GetScriptingCommands(); +std::vector<cmCommand*> GetProjectCommands(); #endif diff --git a/Source/cmake.cxx b/Source/cmake.cxx index 6141f50..c6292ce 100644 --- a/Source/cmake.cxx +++ b/Source/cmake.cxx @@ -179,7 +179,8 @@ cmake::cmake() this->AddDefaultGenerators(); this->AddDefaultExtraGenerators(); - this->AddDefaultCommands(); + this->AddScriptingCommands(); + this->AddProjectCommands(); // Make sure we can capture the build tool output. cmSystemTools::EnableVSConsoleOutput(); @@ -1654,9 +1655,18 @@ const char* cmake::GetCacheDefinition(const std::string& name) const return this->State->GetInitializedCacheValue(name); } -void cmake::AddDefaultCommands() +void cmake::AddScriptingCommands() { - std::vector<cmCommand*> const commands = GetPredefinedCommands(); + std::vector<cmCommand*> const commands = GetScriptingCommands(); + for (std::vector<cmCommand*>::const_iterator i = commands.begin(); + i != commands.end(); ++i) { + this->State->AddCommand(*i); + } +} + +void cmake::AddProjectCommands() +{ + std::vector<cmCommand*> const commands = GetProjectCommands(); for (std::vector<cmCommand*>::const_iterator i = commands.begin(); i != commands.end(); ++i) { this->State->AddCommand(*i); diff --git a/Source/cmake.h b/Source/cmake.h index 5347745..abb13ac 100644 --- a/Source/cmake.h +++ b/Source/cmake.h @@ -425,7 +425,8 @@ protected: typedef std::vector<cmExternalMakefileProjectGeneratorFactory*> RegisteredExtraGeneratorsVector; RegisteredExtraGeneratorsVector ExtraGenerators; - void AddDefaultCommands(); + void AddScriptingCommands(); + void AddProjectCommands(); void AddDefaultGenerators(); void AddDefaultExtraGenerators(); |