summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Pfeifer <daniel@pfeifer-mail.de>2017-01-20 21:12:32 (GMT)
committerDaniel Pfeifer <daniel@pfeifer-mail.de>2017-02-13 21:32:55 (GMT)
commit72dcbbe5c017a4c071187259f9594ccf02f7b466 (patch)
tree1cd77bbfcdf4a2e65a2829a6df9292f755a18cb3
parent7fb14775a3cce73dc0cb0d759b96059a95f7104b (diff)
downloadCMake-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.rst133
-rw-r--r--Source/cmCommands.cxx95
-rw-r--r--Source/cmCommands.h3
-rw-r--r--Source/cmake.cxx16
-rw-r--r--Source/cmake.h3
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();