diff options
author | Brad King <brad.king@kitware.com> | 2017-05-10 13:22:32 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2017-05-10 13:22:46 (GMT) |
commit | 53f1f55599808bf9771a32df35ac4d7a83f4007b (patch) | |
tree | 2d592ab0c81b924775a8871803ebd9a1c5c9ecad | |
parent | 730cd10c64679bd0a8325bf7f0e9febda613bb8a (diff) | |
parent | 44c0b2b75a1c67a8bede285368f617f2c8e1dd77 (diff) | |
download | CMake-53f1f55599808bf9771a32df35ac4d7a83f4007b.zip CMake-53f1f55599808bf9771a32df35ac4d7a83f4007b.tar.gz CMake-53f1f55599808bf9771a32df35ac4d7a83f4007b.tar.bz2 |
Merge topic 'separate-command-registration'
44c0b2b7 cmCommand: remove IsScriptable
da8faa8c cmState: remove RemoveUnscriptableCommands
c3f41af2 cmMakefile: don't check IsScriptable
c2c2bbb3 cmake: register fake project commands in -P mode
c36d63cd cmake: initialize with Role that controls which commands to register
8986dec0 ctest: remove unused cmake instance
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !714
73 files changed, 106 insertions, 301 deletions
diff --git a/Source/CPack/cmCPackGenerator.cxx b/Source/CPack/cmCPackGenerator.cxx index c5495c6..c873529 100644 --- a/Source/CPack/cmCPackGenerator.cxx +++ b/Source/CPack/cmCPackGenerator.cxx @@ -620,7 +620,7 @@ int cmCPackGenerator::InstallProjectViaInstallCMakeProjects( << installComponent << std::endl); } - cmake cm; + cmake cm(cmake::RoleScript); cm.SetHomeDirectory(""); cm.SetHomeOutputDirectory(""); cm.GetCurrentSnapshot().SetDefaultDefinitions(); diff --git a/Source/CPack/cpack.cxx b/Source/CPack/cpack.cxx index a48c8cd..a44bc3d 100644 --- a/Source/CPack/cpack.cxx +++ b/Source/CPack/cpack.cxx @@ -23,7 +23,6 @@ #include "cmDocumentationEntry.h" #include "cmGlobalGenerator.h" #include "cmMakefile.h" -#include "cmState.h" #include "cmStateSnapshot.h" #include "cmSystemTools.h" #include "cm_auto_ptr.hxx" @@ -189,11 +188,10 @@ int main(int argc, char const* const* argv) cmCPack_Log(&log, cmCPackLog::LOG_VERBOSE, "Read CPack config file: " << cpackConfigFile << std::endl); - cmake cminst; + cmake cminst(cmake::RoleScript); cminst.SetHomeDirectory(""); cminst.SetHomeOutputDirectory(""); cminst.GetCurrentSnapshot().SetDefaultDefinitions(); - cminst.GetState()->RemoveUnscriptableCommands(); cmGlobalGenerator cmgg(&cminst); CM_AUTO_PTR<cmMakefile> globalMF( new cmMakefile(&cmgg, cminst.GetCurrentSnapshot())); diff --git a/Source/CTest/cmCTestBuildAndTestHandler.cxx b/Source/CTest/cmCTestBuildAndTestHandler.cxx index ed7dd5d..cc29071 100644 --- a/Source/CTest/cmCTestBuildAndTestHandler.cxx +++ b/Source/CTest/cmCTestBuildAndTestHandler.cxx @@ -167,7 +167,7 @@ int cmCTestBuildAndTestHandler::RunCMakeAndTest(std::string* outstring) return 1; } - cmake cm; + cmake cm(cmake::RoleProject); cm.SetHomeDirectory(""); cm.SetHomeOutputDirectory(""); std::string cmakeOutString; diff --git a/Source/CTest/cmCTestLaunch.cxx b/Source/CTest/cmCTestLaunch.cxx index a782150..5b21351 100644 --- a/Source/CTest/cmCTestLaunch.cxx +++ b/Source/CTest/cmCTestLaunch.cxx @@ -623,7 +623,7 @@ int cmCTestLaunch::Main(int argc, const char* const argv[]) void cmCTestLaunch::LoadConfig() { - cmake cm; + cmake cm(cmake::RoleScript); cm.SetHomeDirectory(""); cm.SetHomeOutputDirectory(""); cm.GetCurrentSnapshot().SetDefaultDefinitions(); diff --git a/Source/CTest/cmCTestScriptHandler.cxx b/Source/CTest/cmCTestScriptHandler.cxx index 60e48b6..1fea8e5 100644 --- a/Source/CTest/cmCTestScriptHandler.cxx +++ b/Source/CTest/cmCTestScriptHandler.cxx @@ -275,7 +275,7 @@ void cmCTestScriptHandler::CreateCMake() delete this->GlobalGenerator; delete this->Makefile; } - this->CMake = new cmake; + this->CMake = new cmake(cmake::RoleScript); this->CMake->SetHomeDirectory(""); this->CMake->SetHomeOutputDirectory(""); this->CMake->GetCurrentSnapshot().SetDefaultDefinitions(); @@ -290,10 +290,6 @@ void cmCTestScriptHandler::CreateCMake() this->CMake->SetProgressCallback(ctestScriptProgressCallback, this->CTest); - // remove all cmake commands which are not scriptable, since they can't be - // used in ctest scripts - this->CMake->GetState()->RemoveUnscriptableCommands(); - // add any ctest specific commands, probably should have common superclass // for ctest commands to clean this up. If a couple more commands are // created with the same format lets do that - ken diff --git a/Source/CTest/cmCTestTestHandler.cxx b/Source/CTest/cmCTestTestHandler.cxx index a5cc1fa..349e91a 100644 --- a/Source/CTest/cmCTestTestHandler.cxx +++ b/Source/CTest/cmCTestTestHandler.cxx @@ -1650,7 +1650,7 @@ void cmCTestTestHandler::GetListOfTests() } cmCTestOptionalLog(this->CTest, HANDLER_VERBOSE_OUTPUT, "Constructing a list of tests" << std::endl, this->Quiet); - cmake cm; + cmake cm(cmake::RoleScript); cm.SetHomeDirectory(""); cm.SetHomeOutputDirectory(""); cm.GetCurrentSnapshot().SetDefaultDefinitions(); diff --git a/Source/CursesDialog/ccmake.cxx b/Source/CursesDialog/ccmake.cxx index 1698a84..28a0e95 100644 --- a/Source/CursesDialog/ccmake.cxx +++ b/Source/CursesDialog/ccmake.cxx @@ -81,7 +81,7 @@ int main(int argc, char const* const* argv) cmDocumentation doc; doc.addCMakeStandardDocSections(); if (doc.CheckOptions(argc, argv)) { - cmake hcm; + cmake hcm(cmake::RoleInternal); hcm.SetHomeDirectory(""); hcm.SetHomeOutputDirectory(""); hcm.AddCMakePaths(); diff --git a/Source/CursesDialog/cmCursesMainForm.cxx b/Source/CursesDialog/cmCursesMainForm.cxx index ca824c0..0fa7aa5 100644 --- a/Source/CursesDialog/cmCursesMainForm.cxx +++ b/Source/CursesDialog/cmCursesMainForm.cxx @@ -40,7 +40,7 @@ cmCursesMainForm::cmCursesMainForm(std::vector<std::string> const& args, "Welcome to ccmake, curses based user interface for CMake."); this->HelpMessage.push_back(""); this->HelpMessage.push_back(s_ConstHelpMessage); - this->CMakeInstance = new cmake; + this->CMakeInstance = new cmake(cmake::RoleProject); this->CMakeInstance->SetCMakeEditCommand( cmSystemTools::GetCMakeCursesCommand()); diff --git a/Source/QtDialog/CMakeSetup.cxx b/Source/QtDialog/CMakeSetup.cxx index b955d77..7fa2ac6 100644 --- a/Source/QtDialog/CMakeSetup.cxx +++ b/Source/QtDialog/CMakeSetup.cxx @@ -59,7 +59,7 @@ int main(int argc, char** argv) doc.addCMakeStandardDocSections(); if (argc2 > 1 && doc.CheckOptions(argc2, argv2)) { // Construct and print requested documentation. - cmake hcm; + cmake hcm(cmake::RoleInternal); hcm.SetHomeDirectory(""); hcm.SetHomeOutputDirectory(""); hcm.AddCMakePaths(); diff --git a/Source/QtDialog/QCMake.cxx b/Source/QtDialog/QCMake.cxx index 28820a6..d473d9b 100644 --- a/Source/QtDialog/QCMake.cxx +++ b/Source/QtDialog/QCMake.cxx @@ -27,7 +27,7 @@ QCMake::QCMake(QObject* p) cmSystemTools::SetStdoutCallback(QCMake::stdoutCallback, this); cmSystemTools::SetStderrCallback(QCMake::stderrCallback, this); - this->CMakeInstance = new cmake; + this->CMakeInstance = new cmake(cmake::RoleProject); this->CMakeInstance->SetCMakeEditCommand( cmSystemTools::GetCMakeGUICommand()); this->CMakeInstance->SetProgressCallback(QCMake::progressCallback, this); diff --git a/Source/cmBreakCommand.h b/Source/cmBreakCommand.h index 8ce5ca2..0038883 100644 --- a/Source/cmBreakCommand.h +++ b/Source/cmBreakCommand.h @@ -33,11 +33,6 @@ public: cmExecutionStatus& status) CM_OVERRIDE; /** - * This determines if the command is invoked when in script mode. - */ - bool IsScriptable() const CM_OVERRIDE { return true; } - - /** * The name of the command as specified in CMakeList.txt. */ std::string GetName() const CM_OVERRIDE { return "break"; } diff --git a/Source/cmBuildNameCommand.h b/Source/cmBuildNameCommand.h index 00f645a..9008c27 100644 --- a/Source/cmBuildNameCommand.h +++ b/Source/cmBuildNameCommand.h @@ -19,7 +19,6 @@ public: bool InitialPass(std::vector<std::string> const& args, cmExecutionStatus& status) CM_OVERRIDE; std::string GetName() const CM_OVERRIDE { return "build_name"; } - bool IsScriptable() const CM_OVERRIDE { return true; } }; #endif diff --git a/Source/cmCMakeHostSystemInformationCommand.h b/Source/cmCMakeHostSystemInformationCommand.h index fe148a3..4263e75 100644 --- a/Source/cmCMakeHostSystemInformationCommand.h +++ b/Source/cmCMakeHostSystemInformationCommand.h @@ -41,11 +41,6 @@ public: cmExecutionStatus& status) CM_OVERRIDE; /** - * This determines if the command is invoked when in script mode. - */ - bool IsScriptable() const CM_OVERRIDE { return true; } - - /** * The name of the command as specified in CMakeList.txt. */ std::string GetName() const CM_OVERRIDE diff --git a/Source/cmCMakeMinimumRequired.h b/Source/cmCMakeMinimumRequired.h index 8db0860..d264675 100644 --- a/Source/cmCMakeMinimumRequired.h +++ b/Source/cmCMakeMinimumRequired.h @@ -33,11 +33,6 @@ public: cmExecutionStatus& status) CM_OVERRIDE; /** - * This determines if the command is invoked when in script mode. - */ - bool IsScriptable() const CM_OVERRIDE { return true; } - - /** * The name of the command as specified in CMakeList.txt. */ std::string GetName() const CM_OVERRIDE { return "cmake_minimum_required"; } diff --git a/Source/cmCMakePolicyCommand.h b/Source/cmCMakePolicyCommand.h index 789e294..cc02169 100644 --- a/Source/cmCMakePolicyCommand.h +++ b/Source/cmCMakePolicyCommand.h @@ -34,11 +34,6 @@ public: cmExecutionStatus& status) CM_OVERRIDE; /** - * This determines if the command is invoked when in script mode. - */ - bool IsScriptable() const CM_OVERRIDE { return true; } - - /** * The name of the command as specified in CMakeList.txt. */ std::string GetName() const CM_OVERRIDE { return "cmake_policy"; } diff --git a/Source/cmCTest.cxx b/Source/cmCTest.cxx index 010221e..f469998 100644 --- a/Source/cmCTest.cxx +++ b/Source/cmCTest.cxx @@ -416,7 +416,7 @@ int cmCTest::Initialize(const char* binary_dir, cmCTestStartCommand* command) } } - cmake cm; + cmake cm(cmake::RoleScript); cm.SetHomeDirectory(""); cm.SetHomeOutputDirectory(""); cm.GetCurrentSnapshot().SetDefaultDefinitions(); diff --git a/Source/cmCommand.h b/Source/cmCommand.h index 62eced0..2e2ba43 100644 --- a/Source/cmCommand.h +++ b/Source/cmCommand.h @@ -80,11 +80,6 @@ public: virtual cmCommand* Clone() = 0; /** - * This determines if the command is invoked when in script mode. - */ - virtual bool IsScriptable() const { return false; } - - /** * This determines if the command is defined in a cmake script. * It is the case for cmMacroHelperCommand and cmFunctionHelperCommand. */ diff --git a/Source/cmCommands.cxx b/Source/cmCommands.cxx index 1576722..adf46ff 100644 --- a/Source/cmCommands.cxx +++ b/Source/cmCommands.cxx @@ -266,3 +266,64 @@ void GetProjectCommands(cmState* state) "The variable_requires command should not be called; see CMP0035.")); #endif } + +void GetProjectCommandsInScriptMode(cmState* state) +{ +#define CM_UNEXPECTED_PROJECT_COMMAND(NAME) \ + state->AddCommand(new cmUnexpectedCommand(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"); + + // deprected 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 +} diff --git a/Source/cmCommands.h b/Source/cmCommands.h index 7895ece..1f8fafb 100644 --- a/Source/cmCommands.h +++ b/Source/cmCommands.h @@ -12,5 +12,6 @@ class cmState; */ void GetScriptingCommands(cmState* state); void GetProjectCommands(cmState* state); +void GetProjectCommandsInScriptMode(cmState* state); #endif diff --git a/Source/cmConfigureFileCommand.h b/Source/cmConfigureFileCommand.h index 882219d..402423d 100644 --- a/Source/cmConfigureFileCommand.h +++ b/Source/cmConfigureFileCommand.h @@ -30,11 +30,6 @@ public: */ std::string GetName() const CM_OVERRIDE { return "configure_file"; } - /** - * This determines if the command is invoked when in script mode. - */ - bool IsScriptable() const CM_OVERRIDE { return true; } - private: int ConfigureFile(); diff --git a/Source/cmContinueCommand.h b/Source/cmContinueCommand.h index 4428d79..4b416a4 100644 --- a/Source/cmContinueCommand.h +++ b/Source/cmContinueCommand.h @@ -33,11 +33,6 @@ public: cmExecutionStatus& status) CM_OVERRIDE; /** - * This determines if the command is invoked when in script mode. - */ - bool IsScriptable() const CM_OVERRIDE { return true; } - - /** * The name of the command as specified in CMakeList.txt. */ std::string GetName() const CM_OVERRIDE { return "continue"; } diff --git a/Source/cmDisallowedCommand.h b/Source/cmDisallowedCommand.h index 7c141dd..38d1d93 100644 --- a/Source/cmDisallowedCommand.h +++ b/Source/cmDisallowedCommand.h @@ -42,11 +42,6 @@ public: return this->Command->HasFinalPass(); } - bool IsScriptable() const CM_OVERRIDE - { - return this->Command->IsScriptable(); - } - std::string GetName() const CM_OVERRIDE { return this->Command->GetName(); } private: diff --git a/Source/cmExecProgramCommand.h b/Source/cmExecProgramCommand.h index 53d35cf..2a59612 100644 --- a/Source/cmExecProgramCommand.h +++ b/Source/cmExecProgramCommand.h @@ -41,11 +41,6 @@ public: */ std::string GetName() const CM_OVERRIDE { return "exec_program"; } - /** - * This determines if the command is invoked when in script mode. - */ - bool IsScriptable() const CM_OVERRIDE { return true; } - private: static bool RunCommand(const char* command, std::string& output, int& retVal, const char* directory = CM_NULLPTR, diff --git a/Source/cmExecuteProcessCommand.h b/Source/cmExecuteProcessCommand.h index 65e16d4..e57e22d 100644 --- a/Source/cmExecuteProcessCommand.h +++ b/Source/cmExecuteProcessCommand.h @@ -37,11 +37,6 @@ public: * The name of the command as specified in CMakeList.txt. */ std::string GetName() const CM_OVERRIDE { return "execute_process"; } - - /** - * This determines if the command is invoked when in script mode. - */ - bool IsScriptable() const CM_OVERRIDE { return true; } }; #endif diff --git a/Source/cmFileCommand.h b/Source/cmFileCommand.h index 121fec0..ff0b35e 100644 --- a/Source/cmFileCommand.h +++ b/Source/cmFileCommand.h @@ -32,11 +32,6 @@ public: cmExecutionStatus& status) CM_OVERRIDE; /** - * This determines if the command is invoked when in script mode. - */ - bool IsScriptable() const CM_OVERRIDE { return true; } - - /** * The name of the command as specified in CMakeList.txt. */ std::string GetName() const CM_OVERRIDE { return "file"; } diff --git a/Source/cmFindLibraryCommand.h b/Source/cmFindLibraryCommand.h index 4a60505..41af976 100644 --- a/Source/cmFindLibraryCommand.h +++ b/Source/cmFindLibraryCommand.h @@ -37,11 +37,6 @@ public: cmExecutionStatus& status) CM_OVERRIDE; /** - * This determines if the command is invoked when in script mode. - */ - bool IsScriptable() const CM_OVERRIDE { return true; } - - /** * The name of the command as specified in CMakeList.txt. */ std::string GetName() const CM_OVERRIDE { return "find_library"; } diff --git a/Source/cmFindPackageCommand.h b/Source/cmFindPackageCommand.h index c42ecce..e4ecfad 100644 --- a/Source/cmFindPackageCommand.h +++ b/Source/cmFindPackageCommand.h @@ -61,11 +61,6 @@ public: cmExecutionStatus& status) CM_OVERRIDE; /** - * This determines if the command is invoked when in script mode. - */ - bool IsScriptable() const CM_OVERRIDE { return true; } - - /** * The name of the command as specified in CMakeList.txt. */ std::string GetName() const CM_OVERRIDE { return "find_package"; } diff --git a/Source/cmFindPathCommand.h b/Source/cmFindPathCommand.h index 205bb17..92849c3 100644 --- a/Source/cmFindPathCommand.h +++ b/Source/cmFindPathCommand.h @@ -37,11 +37,6 @@ public: cmExecutionStatus& status) CM_OVERRIDE; /** - * This determines if the command is invoked when in script mode. - */ - bool IsScriptable() const CM_OVERRIDE { return true; } - - /** * The name of the command as specified in CMakeList.txt. */ std::string GetName() const CM_OVERRIDE { return "find_path"; } diff --git a/Source/cmFindProgramCommand.h b/Source/cmFindProgramCommand.h index 73894ba..af56aef 100644 --- a/Source/cmFindProgramCommand.h +++ b/Source/cmFindProgramCommand.h @@ -38,11 +38,6 @@ public: cmExecutionStatus& status) CM_OVERRIDE; /** - * This determines if the command is invoked when in script mode. - */ - bool IsScriptable() const CM_OVERRIDE { return true; } - - /** * The name of the command as specified in CMakeList.txt. */ std::string GetName() const CM_OVERRIDE { return "find_program"; } diff --git a/Source/cmForEachCommand.h b/Source/cmForEachCommand.h index c71b905..30f0342 100644 --- a/Source/cmForEachCommand.h +++ b/Source/cmForEachCommand.h @@ -49,11 +49,6 @@ public: cmExecutionStatus& status) CM_OVERRIDE; /** - * This determines if the command is invoked when in script mode. - */ - bool IsScriptable() const CM_OVERRIDE { return true; } - - /** * The name of the command as specified in CMakeList.txt. */ std::string GetName() const CM_OVERRIDE { return "foreach"; } diff --git a/Source/cmFunctionCommand.cxx b/Source/cmFunctionCommand.cxx index 31adcb7..4285d26 100644 --- a/Source/cmFunctionCommand.cxx +++ b/Source/cmFunctionCommand.cxx @@ -40,11 +40,6 @@ public: } /** - * This determines if the command is invoked when in script mode. - */ - bool IsScriptable() const CM_OVERRIDE { return true; } - - /** * This is called when the command is first encountered in * the CMakeLists.txt file. */ diff --git a/Source/cmFunctionCommand.h b/Source/cmFunctionCommand.h index d6cc18e..fa13aa4 100644 --- a/Source/cmFunctionCommand.h +++ b/Source/cmFunctionCommand.h @@ -46,11 +46,6 @@ public: cmExecutionStatus& status) CM_OVERRIDE; /** - * This determines if the command is invoked when in script mode. - */ - bool IsScriptable() const CM_OVERRIDE { return true; } - - /** * The name of the command as specified in CMakeList.txt. */ std::string GetName() const CM_OVERRIDE { return "function"; } diff --git a/Source/cmGetCMakePropertyCommand.h b/Source/cmGetCMakePropertyCommand.h index c454e34..b0ddb22 100644 --- a/Source/cmGetCMakePropertyCommand.h +++ b/Source/cmGetCMakePropertyCommand.h @@ -25,11 +25,6 @@ public: cmExecutionStatus& status) CM_OVERRIDE; /** - * This determines if the command is invoked when in script mode. - */ - bool IsScriptable() const CM_OVERRIDE { return true; } - - /** * The name of the command as specified in CMakeList.txt. */ std::string GetName() const CM_OVERRIDE { return "get_cmake_property"; } diff --git a/Source/cmGetDirectoryPropertyCommand.h b/Source/cmGetDirectoryPropertyCommand.h index 0adf818..f91a466 100644 --- a/Source/cmGetDirectoryPropertyCommand.h +++ b/Source/cmGetDirectoryPropertyCommand.h @@ -25,11 +25,6 @@ public: cmExecutionStatus& status) CM_OVERRIDE; /** - * This determines if the command is invoked when in script mode. - */ - bool IsScriptable() const CM_OVERRIDE { return true; } - - /** * The name of the command as specified in CMakeList.txt. */ std::string GetName() const CM_OVERRIDE { return "get_directory_property"; } diff --git a/Source/cmGetFilenameComponentCommand.h b/Source/cmGetFilenameComponentCommand.h index efc9d7b..cf64564 100644 --- a/Source/cmGetFilenameComponentCommand.h +++ b/Source/cmGetFilenameComponentCommand.h @@ -34,11 +34,6 @@ public: cmExecutionStatus& status) CM_OVERRIDE; /** - * This determines if the command is invoked when in script mode. - */ - bool IsScriptable() const CM_OVERRIDE { return true; } - - /** * The name of the command as specified in CMakeList.txt. */ std::string GetName() const CM_OVERRIDE { return "get_filename_component"; } diff --git a/Source/cmGetPropertyCommand.h b/Source/cmGetPropertyCommand.h index a57c675..7bbcec0 100644 --- a/Source/cmGetPropertyCommand.h +++ b/Source/cmGetPropertyCommand.h @@ -27,11 +27,6 @@ public: cmExecutionStatus& status) CM_OVERRIDE; /** - * This determines if the command is invoked when in script mode. - */ - bool IsScriptable() const CM_OVERRIDE { return true; } - - /** * The name of the command as specified in CMakeList.txt. */ std::string GetName() const CM_OVERRIDE { return "get_property"; } diff --git a/Source/cmGlobalNinjaGenerator.cxx b/Source/cmGlobalNinjaGenerator.cxx index 587e18a..d9a8cab 100644 --- a/Source/cmGlobalNinjaGenerator.cxx +++ b/Source/cmGlobalNinjaGenerator.cxx @@ -1903,7 +1903,7 @@ int cmcmd_cmake_ninja_dyndep(std::vector<std::string>::const_iterator argBeg, } } - cmake cm; + cmake cm(cmake::RoleInternal); cm.SetHomeDirectory(dir_top_src); cm.SetHomeOutputDirectory(dir_top_bld); CM_AUTO_PTR<cmGlobalNinjaGenerator> ggd( diff --git a/Source/cmGraphVizWriter.cxx b/Source/cmGraphVizWriter.cxx index 1fcd3cb..7e953ce 100644 --- a/Source/cmGraphVizWriter.cxx +++ b/Source/cmGraphVizWriter.cxx @@ -61,7 +61,7 @@ cmGraphVizWriter::cmGraphVizWriter( void cmGraphVizWriter::ReadSettings(const char* settingsFileName, const char* fallbackSettingsFileName) { - cmake cm; + cmake cm(cmake::RoleScript); cm.SetHomeDirectory(""); cm.SetHomeOutputDirectory(""); cm.GetCurrentSnapshot().SetDefaultDefinitions(); diff --git a/Source/cmIfCommand.h b/Source/cmIfCommand.h index 59d32e6..c6c44cb 100644 --- a/Source/cmIfCommand.h +++ b/Source/cmIfCommand.h @@ -69,11 +69,6 @@ public: */ std::string GetName() const CM_OVERRIDE { return "if"; } - /** - * This determines if the command is invoked when in script mode. - */ - bool IsScriptable() const CM_OVERRIDE { return true; } - // Filter the given variable definition based on policy CMP0054. static const char* GetDefinitionIfUnquoted( const cmMakefile* mf, cmExpandedCommandArgument const& argument); diff --git a/Source/cmIncludeCommand.h b/Source/cmIncludeCommand.h index 06200cd..5a37800 100644 --- a/Source/cmIncludeCommand.h +++ b/Source/cmIncludeCommand.h @@ -34,11 +34,6 @@ public: cmExecutionStatus& status) CM_OVERRIDE; /** - * This determines if the command is invoked when in script mode. - */ - bool IsScriptable() const CM_OVERRIDE { return true; } - - /** * The name of the command as specified in CMakeList.txt. */ std::string GetName() const CM_OVERRIDE { return "include"; } diff --git a/Source/cmListCommand.h b/Source/cmListCommand.h index 8d4aeb1..7272ea1 100644 --- a/Source/cmListCommand.h +++ b/Source/cmListCommand.h @@ -32,11 +32,6 @@ public: cmExecutionStatus& status) CM_OVERRIDE; /** - * This determines if the command is invoked when in script mode. - */ - bool IsScriptable() const CM_OVERRIDE { return true; } - - /** * The name of the command as specified in CMakeList.txt. */ std::string GetName() const CM_OVERRIDE { return "list"; } diff --git a/Source/cmMacroCommand.cxx b/Source/cmMacroCommand.cxx index 583f801..22977f9 100644 --- a/Source/cmMacroCommand.cxx +++ b/Source/cmMacroCommand.cxx @@ -41,11 +41,6 @@ public: } /** - * This determines if the command is invoked when in script mode. - */ - bool IsScriptable() const CM_OVERRIDE { return true; } - - /** * This is called when the command is first encountered in * the CMakeLists.txt file. */ diff --git a/Source/cmMacroCommand.h b/Source/cmMacroCommand.h index f0020ff..fd9c92b 100644 --- a/Source/cmMacroCommand.h +++ b/Source/cmMacroCommand.h @@ -46,11 +46,6 @@ public: cmExecutionStatus& status) CM_OVERRIDE; /** - * This determines if the command is invoked when in script mode. - */ - bool IsScriptable() const CM_OVERRIDE { return true; } - - /** * The name of the command as specified in CMakeList.txt. */ std::string GetName() const CM_OVERRIDE { return "macro"; } diff --git a/Source/cmMakeDirectoryCommand.h b/Source/cmMakeDirectoryCommand.h index 54f4ab3..e2f0932 100644 --- a/Source/cmMakeDirectoryCommand.h +++ b/Source/cmMakeDirectoryCommand.h @@ -40,11 +40,6 @@ public: * The name of the command as specified in CMakeList.txt. */ std::string GetName() const CM_OVERRIDE { return "make_directory"; } - - /** - * This determines if the command is invoked when in script mode. - */ - bool IsScriptable() const CM_OVERRIDE { return true; } }; #endif diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index cb11060..ad35177 100644 --- a/Source/cmMakefile.cxx +++ b/Source/cmMakefile.cxx @@ -272,11 +272,7 @@ bool cmMakefile::ExecuteCommand(const cmListFileFunction& lff, pcmd->SetMakefile(this); // Decide whether to invoke the command. - if (!cmSystemTools::GetFatalErrorOccured() && - (this->GetCMakeInstance()->GetWorkingMode() != cmake::SCRIPT_MODE || - pcmd->IsScriptable())) - - { + if (!cmSystemTools::GetFatalErrorOccured()) { // if trace is enabled, print out invoke information if (this->GetCMakeInstance()->GetTrace()) { this->PrintCommandTrace(lff); @@ -298,15 +294,6 @@ bool cmMakefile::ExecuteCommand(const cmListFileFunction& lff, // use the command this->FinalPassCommands.push_back(pcmd.release()); } - } else if (this->GetCMakeInstance()->GetWorkingMode() == - cmake::SCRIPT_MODE && - !pcmd->IsScriptable()) { - std::string error = "Command "; - error += pcmd->GetName(); - error += "() is not scriptable"; - this->IssueMessage(cmake::FATAL_ERROR, error); - result = false; - cmSystemTools::SetFatalErrorOccured(); } } else { if (!cmSystemTools::GetFatalErrorOccured()) { @@ -3187,7 +3174,7 @@ int cmMakefile::TryCompile(const std::string& srcdir, // make sure the same generator is used // use this program as the cmake to be run, it should not // be run that way but the cmake object requires a vailid path - cmake cm; + cmake cm(cmake::RoleProject); cm.SetIsInTryCompile(true); cmGlobalGenerator* gg = cm.CreateGlobalGenerator(this->GetGlobalGenerator()->GetName()); diff --git a/Source/cmMarkAsAdvancedCommand.h b/Source/cmMarkAsAdvancedCommand.h index 8c2f85b..4f80746 100644 --- a/Source/cmMarkAsAdvancedCommand.h +++ b/Source/cmMarkAsAdvancedCommand.h @@ -36,14 +36,6 @@ public: * The name of the command as specified in CMakeList.txt. */ std::string GetName() const CM_OVERRIDE { return "mark_as_advanced"; } - - /** - * This determines if the command is invoked when in script mode. - * mark_as_advanced() will have no effect in script mode, but this will - * make many of the modules usable in cmake/ctest scripts, (among them - * FindUnixMake.cmake used by the CTEST_BUILD command. - */ - bool IsScriptable() const CM_OVERRIDE { return true; } }; #endif diff --git a/Source/cmMathCommand.h b/Source/cmMathCommand.h index 496d836..ef0eb4a 100644 --- a/Source/cmMathCommand.h +++ b/Source/cmMathCommand.h @@ -29,11 +29,6 @@ public: cmExecutionStatus& status) CM_OVERRIDE; /** - * This determines if the command is invoked when in script mode. - */ - bool IsScriptable() const CM_OVERRIDE { return true; } - - /** * The name of the command as specified in CMakeList.txt. */ std::string GetName() const CM_OVERRIDE { return "math"; } diff --git a/Source/cmMessageCommand.h b/Source/cmMessageCommand.h index ca83ed6..fd2dbe7 100644 --- a/Source/cmMessageCommand.h +++ b/Source/cmMessageCommand.h @@ -35,11 +35,6 @@ public: * The name of the command as specified in CMakeList.txt. */ std::string GetName() const CM_OVERRIDE { return "message"; } - - /** - * This determines if the command is invoked when in script mode. - */ - bool IsScriptable() const CM_OVERRIDE { return true; } }; #endif diff --git a/Source/cmOptionCommand.h b/Source/cmOptionCommand.h index 86fa41f..0227357 100644 --- a/Source/cmOptionCommand.h +++ b/Source/cmOptionCommand.h @@ -36,11 +36,6 @@ public: * The name of the command as specified in CMakeList.txt. */ std::string GetName() const CM_OVERRIDE { return "option"; } - - /** - * This determines if the command is invoked when in script mode. - */ - bool IsScriptable() const CM_OVERRIDE { return true; } }; #endif diff --git a/Source/cmParseArgumentsCommand.h b/Source/cmParseArgumentsCommand.h index 4d9416d..f3de5b6 100644 --- a/Source/cmParseArgumentsCommand.h +++ b/Source/cmParseArgumentsCommand.h @@ -31,11 +31,6 @@ public: cmExecutionStatus& status) CM_OVERRIDE; /** - * This determines if the command is invoked when in script mode. - */ - bool IsScriptable() const CM_OVERRIDE { return true; } - - /** * The name of the command as specified in CMakeList.txt. */ std::string GetName() const CM_OVERRIDE { return "cmake_parse_arguments"; } diff --git a/Source/cmQtAutoGenerators.cxx b/Source/cmQtAutoGenerators.cxx index eec1fc6..7461a0a 100644 --- a/Source/cmQtAutoGenerators.cxx +++ b/Source/cmQtAutoGenerators.cxx @@ -286,7 +286,7 @@ cmQtAutoGenerators::cmQtAutoGenerators() bool cmQtAutoGenerators::Run(const std::string& targetDirectory, const std::string& config) { - cmake cm; + cmake cm(cmake::RoleScript); cm.SetHomeOutputDirectory(targetDirectory); cm.SetHomeDirectory(targetDirectory); cm.GetCurrentSnapshot().SetDefaultDefinitions(); diff --git a/Source/cmRemoveCommand.h b/Source/cmRemoveCommand.h index 38223a5..84e591d 100644 --- a/Source/cmRemoveCommand.h +++ b/Source/cmRemoveCommand.h @@ -33,11 +33,6 @@ public: cmExecutionStatus& status) CM_OVERRIDE; /** - * This determines if the command is invoked when in script mode. - */ - bool IsScriptable() const CM_OVERRIDE { return true; } - - /** * The name of the command as specified in CMakeList.txt. */ std::string GetName() const CM_OVERRIDE { return "remove"; } diff --git a/Source/cmReturnCommand.h b/Source/cmReturnCommand.h index ceed6b5..a4a6283 100644 --- a/Source/cmReturnCommand.h +++ b/Source/cmReturnCommand.h @@ -33,11 +33,6 @@ public: cmExecutionStatus& status) CM_OVERRIDE; /** - * This determines if the command is invoked when in script mode. - */ - bool IsScriptable() const CM_OVERRIDE { return true; } - - /** * The name of the command as specified in CMakeList.txt. */ std::string GetName() const CM_OVERRIDE { return "return"; } diff --git a/Source/cmSeparateArgumentsCommand.h b/Source/cmSeparateArgumentsCommand.h index 7edde48..e4df5da 100644 --- a/Source/cmSeparateArgumentsCommand.h +++ b/Source/cmSeparateArgumentsCommand.h @@ -33,11 +33,6 @@ public: cmExecutionStatus& status) CM_OVERRIDE; /** - * This determines if the command is invoked when in script mode. - */ - bool IsScriptable() const CM_OVERRIDE { return true; } - - /** * The name of the command as specified in CMakeList.txt. */ std::string GetName() const CM_OVERRIDE { return "separate_arguments"; } diff --git a/Source/cmServerProtocol.cxx b/Source/cmServerProtocol.cxx index 4e9e80f..defba77 100644 --- a/Source/cmServerProtocol.cxx +++ b/Source/cmServerProtocol.cxx @@ -215,7 +215,7 @@ bool cmServerProtocol::Activate(cmServer* server, { assert(server); this->m_Server = server; - this->m_CMakeInstance = std::make_unique<cmake>(); + this->m_CMakeInstance = std::make_unique<cmake>(cmake::RoleProject); const bool result = this->DoActivate(request, errorMessage); if (!result) { this->m_CMakeInstance = CM_NULLPTR; diff --git a/Source/cmSetCommand.h b/Source/cmSetCommand.h index 1c67bf9..e3a3175 100644 --- a/Source/cmSetCommand.h +++ b/Source/cmSetCommand.h @@ -33,11 +33,6 @@ public: cmExecutionStatus& status) CM_OVERRIDE; /** - * This determines if the command is invoked when in script mode. - */ - bool IsScriptable() const CM_OVERRIDE { return true; } - - /** * The name of the command as specified in CMakeList.txt. */ std::string GetName() const CM_OVERRIDE { return "set"; } diff --git a/Source/cmSetDirectoryPropertiesCommand.h b/Source/cmSetDirectoryPropertiesCommand.h index e04de6e..4657b66 100644 --- a/Source/cmSetDirectoryPropertiesCommand.h +++ b/Source/cmSetDirectoryPropertiesCommand.h @@ -29,11 +29,6 @@ public: cmExecutionStatus& status) CM_OVERRIDE; /** - * This determines if the command is invoked when in script mode. - */ - bool IsScriptable() const CM_OVERRIDE { return true; } - - /** * The name of the command as specified in CMakeList.txt. */ std::string GetName() const CM_OVERRIDE diff --git a/Source/cmSetPropertyCommand.h b/Source/cmSetPropertyCommand.h index 3657f63..7f5c977 100644 --- a/Source/cmSetPropertyCommand.h +++ b/Source/cmSetPropertyCommand.h @@ -36,11 +36,6 @@ public: */ std::string GetName() const CM_OVERRIDE { return "set_property"; } - /** - * This determines if the command is invoked when in script mode. - */ - bool IsScriptable() const CM_OVERRIDE { return true; } - private: std::set<std::string> Names; std::string PropertyName; diff --git a/Source/cmSiteNameCommand.h b/Source/cmSiteNameCommand.h index c7425f6..e133c6c 100644 --- a/Source/cmSiteNameCommand.h +++ b/Source/cmSiteNameCommand.h @@ -33,11 +33,6 @@ public: cmExecutionStatus& status) CM_OVERRIDE; /** - * This determines if the command is invoked when in script mode. - */ - bool IsScriptable() const CM_OVERRIDE { return true; } - - /** * The name of the command as specified in CMakeList.txt. */ std::string GetName() const CM_OVERRIDE { return "site_name"; } diff --git a/Source/cmState.cxx b/Source/cmState.cxx index aca0358..43f439c 100644 --- a/Source/cmState.cxx +++ b/Source/cmState.cxx @@ -410,21 +410,6 @@ void cmState::AddCommand(cmCommand* command) this->Commands.insert(std::make_pair(name, command)); } -void cmState::RemoveUnscriptableCommands() -{ - std::vector<std::string> unscriptableCommands; - for (std::map<std::string, cmCommand*>::iterator pos = - this->Commands.begin(); - pos != this->Commands.end();) { - if (!pos->second->IsScriptable()) { - delete pos->second; - this->Commands.erase(pos++); - } else { - ++pos; - } - } -} - cmCommand* cmState::GetCommand(std::string const& name) const { cmCommand* command = CM_NULLPTR; diff --git a/Source/cmState.h b/Source/cmState.h index d2af5ce..240d75b 100644 --- a/Source/cmState.h +++ b/Source/cmState.h @@ -121,7 +121,6 @@ public: cmCommand* GetCommand(std::string const& name) const; void AddCommand(cmCommand* command); - void RemoveUnscriptableCommands(); void RenameCommand(std::string const& oldName, std::string const& newName); void RemoveUserDefinedCommands(); std::vector<std::string> GetCommandNames() const; diff --git a/Source/cmStringCommand.h b/Source/cmStringCommand.h index 89ecb12..dc3ce5a 100644 --- a/Source/cmStringCommand.h +++ b/Source/cmStringCommand.h @@ -32,11 +32,6 @@ public: cmExecutionStatus& status) CM_OVERRIDE; /** - * This determines if the command is invoked when in script mode. - */ - bool IsScriptable() const CM_OVERRIDE { return true; } - - /** * The name of the command as specified in CMakeList.txt. */ std::string GetName() const CM_OVERRIDE { return "string"; } diff --git a/Source/cmUnexpectedCommand.h b/Source/cmUnexpectedCommand.h index aee5d4d..1605997 100644 --- a/Source/cmUnexpectedCommand.h +++ b/Source/cmUnexpectedCommand.h @@ -29,8 +29,6 @@ public: bool InitialPass(std::vector<std::string> const& args, cmExecutionStatus& status) CM_OVERRIDE; - bool IsScriptable() const CM_OVERRIDE { return true; } - std::string GetName() const CM_OVERRIDE { return this->Name; } private: diff --git a/Source/cmUnsetCommand.h b/Source/cmUnsetCommand.h index 7e0f5b5..d60bd3e 100644 --- a/Source/cmUnsetCommand.h +++ b/Source/cmUnsetCommand.h @@ -33,11 +33,6 @@ public: cmExecutionStatus& status) CM_OVERRIDE; /** - * This determines if the command is invoked when in script mode. - */ - bool IsScriptable() const CM_OVERRIDE { return true; } - - /** * The name of the command as specified in CMakeList.txt. */ std::string GetName() const CM_OVERRIDE { return "unset"; } diff --git a/Source/cmUseMangledMesaCommand.h b/Source/cmUseMangledMesaCommand.h index e8bd8c6..104614a 100644 --- a/Source/cmUseMangledMesaCommand.h +++ b/Source/cmUseMangledMesaCommand.h @@ -19,7 +19,6 @@ public: bool InitialPass(std::vector<std::string> const& args, cmExecutionStatus& status) CM_OVERRIDE; std::string GetName() const CM_OVERRIDE { return "use_mangled_mesa"; } - bool IsScriptable() const CM_OVERRIDE { return true; } protected: void CopyAndFullPathMesaHeader(const char* source, const char* outdir); }; diff --git a/Source/cmVariableWatchCommand.h b/Source/cmVariableWatchCommand.h index 7096ed5..ca338e6 100644 --- a/Source/cmVariableWatchCommand.h +++ b/Source/cmVariableWatchCommand.h @@ -38,11 +38,6 @@ public: bool InitialPass(std::vector<std::string> const& args, cmExecutionStatus& status) CM_OVERRIDE; - /** - * This determines if the command is invoked when in script mode. - */ - bool IsScriptable() const CM_OVERRIDE { return true; } - /** This command does not really have a final pass but it needs to stay alive since it owns variable watch callback information. */ bool HasFinalPass() const CM_OVERRIDE { return true; } diff --git a/Source/cmWhileCommand.h b/Source/cmWhileCommand.h index daf1046..d353063 100644 --- a/Source/cmWhileCommand.h +++ b/Source/cmWhileCommand.h @@ -59,11 +59,6 @@ public: } /** - * This determines if the command is invoked when in script mode. - */ - bool IsScriptable() const CM_OVERRIDE { return true; } - - /** * The name of the command as specified in CMakeList.txt. */ std::string GetName() const CM_OVERRIDE { return "while"; } diff --git a/Source/cmWriteFileCommand.h b/Source/cmWriteFileCommand.h index 7196ccf..aea8653 100644 --- a/Source/cmWriteFileCommand.h +++ b/Source/cmWriteFileCommand.h @@ -32,11 +32,6 @@ public: cmExecutionStatus& status) CM_OVERRIDE; /** - * This determines if the command is invoked when in script mode. - */ - bool IsScriptable() const CM_OVERRIDE { return true; } - - /** * The name of the command as specified in CMakeList.txt. */ std::string GetName() const CM_OVERRIDE { return "write_file"; } diff --git a/Source/cmake.cxx b/Source/cmake.cxx index 737587d..53e9ab0 100644 --- a/Source/cmake.cxx +++ b/Source/cmake.cxx @@ -136,7 +136,7 @@ void cmWarnUnusedCliWarning(const std::string& variable, int /*unused*/, cm->MarkCliAsUsed(variable); } -cmake::cmake() +cmake::cmake(Role role) { this->Trace = false; this->TraceExpand = false; @@ -174,8 +174,12 @@ cmake::cmake() this->AddDefaultGenerators(); this->AddDefaultExtraGenerators(); - this->AddScriptingCommands(); - this->AddProjectCommands(); + if (role == RoleScript || role == RoleProject) { + this->AddScriptingCommands(); + } + if (role == RoleProject) { + this->AddProjectCommands(); + } // Make sure we can capture the build tool output. cmSystemTools::EnableVSConsoleOutput(); @@ -443,6 +447,8 @@ bool cmake::SetCacheArgs(const std::vector<std::string>& args) cmSystemTools::Error("No cmake script provided."); return false; } + // Register fake project commands that hint misuse in script mode. + GetProjectCommandsInScriptMode(this->State); this->ReadListFile(args, path.c_str()); } else if (arg.find("--find-package", 0) == 0) { findPackageMode = true; @@ -1888,7 +1894,7 @@ int cmake::CheckBuildSystem() // Read the rerun check file and use it to decide whether to do the // global generate. - cmake cm; + cmake cm(RoleScript); // Actually, all we need is the `set` command. cm.SetHomeDirectory(""); cm.SetHomeOutputDirectory(""); cm.GetCurrentSnapshot().SetDefaultDefinitions(); @@ -2419,6 +2425,9 @@ int cmake::Build(const std::string& dir, const std::string& target, std::string homeOutputOrig = this->GetHomeOutputDirectory(); this->SetDirectoriesFromFile(cachePath.c_str()); + this->AddScriptingCommands(); + this->AddProjectCommands(); + int ret = this->Configure(); if (ret) { cmSystemTools::Message("CMake Configure step failed. " diff --git a/Source/cmake.h b/Source/cmake.h index 16a2830..4ddacf7 100644 --- a/Source/cmake.h +++ b/Source/cmake.h @@ -58,6 +58,13 @@ class cmake CM_DISABLE_COPY(cmake) public: + enum Role + { + RoleInternal, // no commands + RoleScript, // script commands + RoleProject // all commands + }; + enum MessageType { AUTHOR_WARNING, @@ -112,7 +119,7 @@ public: typedef std::map<std::string, cmInstalledFile> InstalledFilesMap; /// Default constructor - cmake(); + cmake(Role role); /// Destructor ~cmake(); diff --git a/Source/cmakemain.cxx b/Source/cmakemain.cxx index 3d11241..f472b8a 100644 --- a/Source/cmakemain.cxx +++ b/Source/cmakemain.cxx @@ -201,7 +201,7 @@ int do_cmake(int ac, char const* const* av) doc.addCMakeStandardDocSections(); if (doc.CheckOptions(ac, av)) { // Construct and print requested documentation. - cmake hcm; + cmake hcm(cmake::RoleInternal); hcm.SetHomeDirectory(""); hcm.SetHomeOutputDirectory(""); hcm.AddCMakePaths(); @@ -283,13 +283,13 @@ int do_cmake(int ac, char const* const* av) } } if (sysinfo) { - cmake cm; + cmake cm(cmake::RoleProject); cm.SetHomeDirectory(""); cm.SetHomeOutputDirectory(""); int ret = cm.GetSystemInformation(args); return ret; } - cmake cm; + cmake cm(cmake::RoleProject); cm.SetHomeDirectory(""); cm.SetHomeOutputDirectory(""); cmSystemTools::SetMessageCallback(cmakemainMessageCallback, (void*)&cm); @@ -407,7 +407,7 @@ static int do_build(int ac, char const* const* av) return 1; } - cmake cm; + cmake cm(cmake::RoleInternal); cmSystemTools::SetMessageCallback(cmakemainMessageCallback, (void*)&cm); cm.SetProgressCallback(cmakemainProgressCallback, (void*)&cm); return cm.Build(dir, target, config, nativeOptions, clean); diff --git a/Source/cmcmd.cxx b/Source/cmcmd.cxx index cc954e6..dc267e7 100644 --- a/Source/cmcmd.cxx +++ b/Source/cmcmd.cxx @@ -583,7 +583,7 @@ int cmcmd::ExecuteCMakeCommand(std::vector<std::string>& args) std::cerr << "-E capabilities accepts no additional arguments\n"; return 1; } - cmake cm; + cmake cm(cmake::RoleInternal); #if defined(HAVE_SERVER_MODE) && HAVE_SERVER_MODE std::cout << cm.ReportCapabilities(true); #else @@ -760,7 +760,7 @@ int cmcmd::ExecuteCMakeCommand(std::vector<std::string>& args) const bool verbose = isCMakeVerbose(); // Create a cmake object instance to process dependencies. - cmake cm; + cmake cm(cmake::RoleScript); // All we need is the `set` command. std::string gen; std::string homeDir; std::string startDir; diff --git a/Source/ctest.cxx b/Source/ctest.cxx index 15d4cf4..84e815d 100644 --- a/Source/ctest.cxx +++ b/Source/ctest.cxx @@ -7,7 +7,6 @@ #include "cmCTest.h" #include "cmDocumentation.h" #include "cmSystemTools.h" -#include "cmake.h" #include "cmsys/Encoding.hxx" #if defined(_WIN32) && defined(CMAKE_BUILD_WITH_CMAKE) @@ -170,11 +169,6 @@ int main(int argc, char const* const* argv) cmDocumentation doc; doc.addCTestStandardDocSections(); if (doc.CheckOptions(argc, argv)) { - cmake hcm; - hcm.SetHomeDirectory(""); - hcm.SetHomeOutputDirectory(""); - hcm.AddCMakePaths(); - // Construct and print requested documentation. cmCTestScriptHandler* ch = static_cast<cmCTestScriptHandler*>(inst.GetHandler("script")); |