diff options
author | Brad King <brad.king@kitware.com> | 2013-10-18 17:00:17 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2013-10-22 13:09:52 (GMT) |
commit | 6865c8fe05d407077a598fcc0921ef62dfeaf021 (patch) | |
tree | 7295bc74f2589671684e77c44a7a37ccdbbfac21 | |
parent | aa76518f8bfd821f000d1779066eb7614cdd079b (diff) | |
download | CMake-6865c8fe05d407077a598fcc0921ef62dfeaf021.zip CMake-6865c8fe05d407077a598fcc0921ef62dfeaf021.tar.gz CMake-6865c8fe05d407077a598fcc0921ef62dfeaf021.tar.bz2 |
Add policy CMP0032 to disallow output_required_files
-rw-r--r-- | Help/command/output_required_files.rst | 4 | ||||
-rw-r--r-- | Help/manual/cmake-policies.7.rst | 1 | ||||
-rw-r--r-- | Help/policy/CMP0032.rst | 13 | ||||
-rw-r--r-- | Source/cmOutputRequiredFilesCommand.cxx | 3 | ||||
-rw-r--r-- | Source/cmOutputRequiredFilesCommand.h | 32 | ||||
-rw-r--r-- | Source/cmPolicies.cxx | 5 | ||||
-rw-r--r-- | Source/cmPolicies.h | 1 | ||||
-rw-r--r-- | Tests/RunCMake/DisallowedCommands/CMP0032-NEW-result.txt | 1 | ||||
-rw-r--r-- | Tests/RunCMake/DisallowedCommands/CMP0032-NEW-stderr.txt | 4 | ||||
-rw-r--r-- | Tests/RunCMake/DisallowedCommands/CMP0032-NEW.cmake | 2 | ||||
-rw-r--r-- | Tests/RunCMake/DisallowedCommands/CMP0032-OLD-result.txt | 1 | ||||
-rw-r--r-- | Tests/RunCMake/DisallowedCommands/CMP0032-OLD-stderr.txt | 4 | ||||
-rw-r--r-- | Tests/RunCMake/DisallowedCommands/CMP0032-OLD.cmake | 2 | ||||
-rw-r--r-- | Tests/RunCMake/DisallowedCommands/CMP0032-WARN-result.txt | 1 | ||||
-rw-r--r-- | Tests/RunCMake/DisallowedCommands/CMP0032-WARN-stderr.txt | 12 | ||||
-rw-r--r-- | Tests/RunCMake/DisallowedCommands/CMP0032-WARN.cmake | 1 | ||||
-rw-r--r-- | Tests/RunCMake/DisallowedCommands/RunCMakeTest.cmake | 1 |
17 files changed, 58 insertions, 30 deletions
diff --git a/Help/command/output_required_files.rst b/Help/command/output_required_files.rst index d6bce13..5e13557 100644 --- a/Help/command/output_required_files.rst +++ b/Help/command/output_required_files.rst @@ -1,7 +1,9 @@ output_required_files --------------------- -Deprecated. Approximate C preprocessor dependency scanning. +Disallowed. See CMake Policy :policy:`CMP0032`. + +Approximate C preprocessor dependency scanning. This command exists only because ancient CMake versions provided it. CMake handles preprocessor dependency scanning automatically using a diff --git a/Help/manual/cmake-policies.7.rst b/Help/manual/cmake-policies.7.rst index ab1bf39..04ac33b 100644 --- a/Help/manual/cmake-policies.7.rst +++ b/Help/manual/cmake-policies.7.rst @@ -61,3 +61,4 @@ All Policies /policy/CMP0029 /policy/CMP0030 /policy/CMP0031 + /policy/CMP0032 diff --git a/Help/policy/CMP0032.rst b/Help/policy/CMP0032.rst new file mode 100644 index 0000000..1b6be48 --- /dev/null +++ b/Help/policy/CMP0032.rst @@ -0,0 +1,13 @@ +CMP0032 +------- + +The :command:`output_required_files` command should not be called. + +This command was added in June 2001 to expose the then-current CMake +implicit dependency scanner. CMake's real implicit dependency scanner +has evolved since then but is not exposed through this command. The +scanning capabilities of this command are very limited and this +functionality is better achieved through dedicated outside tools. + +.. |disallowed_version| replace:: 3.0.0 +.. include:: DISALLOWED_COMMAND.txt diff --git a/Source/cmOutputRequiredFilesCommand.cxx b/Source/cmOutputRequiredFilesCommand.cxx index 01fc2cf..16b2bea 100644 --- a/Source/cmOutputRequiredFilesCommand.cxx +++ b/Source/cmOutputRequiredFilesCommand.cxx @@ -174,6 +174,9 @@ void cmLBDepend::DependWalk(cmDependInformation* info) bool cmOutputRequiredFilesCommand ::InitialPass(std::vector<std::string> const& args, cmExecutionStatus &) { + if(this->Disallowed(cmPolicies::CMP0032, + "The output_required_files command should not be called; see CMP0032.")) + { return true; } if(args.size() != 2 ) { this->SetError("called with incorrect number of arguments"); diff --git a/Source/cmOutputRequiredFilesCommand.h b/Source/cmOutputRequiredFilesCommand.h index d43b229..dd5ed6c 100644 --- a/Source/cmOutputRequiredFilesCommand.h +++ b/Source/cmOutputRequiredFilesCommand.h @@ -15,45 +15,19 @@ #include "cmCommand.h" #include "cmMakeDepend.h" -/** \class cmOutputRequiredFilesCommand - * \brief Output a list of required files for a source file - * - */ class cmOutputRequiredFilesCommand : public cmCommand { public: - /** - * This is a virtual constructor for the command. - */ - virtual cmCommand* Clone() - { - return new cmOutputRequiredFilesCommand; - } - - /** - * This is called when the command is first encountered in - * the CMakeLists.txt file. - */ + cmTypeMacro(cmOutputRequiredFilesCommand, cmCommand); + virtual cmCommand* Clone() { return new cmOutputRequiredFilesCommand; } virtual bool InitialPass(std::vector<std::string> const& args, cmExecutionStatus &status); - - /** - * The name of the command as specified in CMakeList.txt. - */ virtual const char* GetName() const { return "output_required_files";} + virtual bool IsDiscouraged() const { return true; } - /** This command is kept for compatibility with older CMake versions. */ - virtual bool IsDiscouraged() const - { - return true; - } - - - cmTypeMacro(cmOutputRequiredFilesCommand, cmCommand); void ListDependencies(cmDependInformation const *info, FILE *fout, std::set<cmDependInformation const*> *visited); - private: std::string File; std::string OutputFile; diff --git a/Source/cmPolicies.cxx b/Source/cmPolicies.cxx index 03e898e..bf4d2c1 100644 --- a/Source/cmPolicies.cxx +++ b/Source/cmPolicies.cxx @@ -261,6 +261,11 @@ cmPolicies::cmPolicies() CMP0031, "CMP0031", "The load_command command should not be called.", 3,0,0,0, cmPolicies::WARN); + + this->DefinePolicy( + CMP0032, "CMP0032", + "The output_required_files command should not be called.", + 3,0,0,0, cmPolicies::WARN); } cmPolicies::~cmPolicies() diff --git a/Source/cmPolicies.h b/Source/cmPolicies.h index 597296b..851fdb8 100644 --- a/Source/cmPolicies.h +++ b/Source/cmPolicies.h @@ -83,6 +83,7 @@ public: CMP0029, ///< Disallow command: subdir_depends CMP0030, ///< Disallow command: use_mangled_mesa CMP0031, ///< Disallow command: load_command + CMP0032, ///< Disallow command: output_required_files /** \brief Always the last entry. * diff --git a/Tests/RunCMake/DisallowedCommands/CMP0032-NEW-result.txt b/Tests/RunCMake/DisallowedCommands/CMP0032-NEW-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/DisallowedCommands/CMP0032-NEW-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/DisallowedCommands/CMP0032-NEW-stderr.txt b/Tests/RunCMake/DisallowedCommands/CMP0032-NEW-stderr.txt new file mode 100644 index 0000000..c7ac16e --- /dev/null +++ b/Tests/RunCMake/DisallowedCommands/CMP0032-NEW-stderr.txt @@ -0,0 +1,4 @@ +CMake Error at CMP0032-NEW.cmake:2 \(output_required_files\): + The output_required_files command should not be called; see CMP0032. +Call Stack \(most recent call first\): + CMakeLists.txt:3 \(include\) diff --git a/Tests/RunCMake/DisallowedCommands/CMP0032-NEW.cmake b/Tests/RunCMake/DisallowedCommands/CMP0032-NEW.cmake new file mode 100644 index 0000000..c6fb5e8 --- /dev/null +++ b/Tests/RunCMake/DisallowedCommands/CMP0032-NEW.cmake @@ -0,0 +1,2 @@ +cmake_policy(SET CMP0032 NEW) +output_required_files() diff --git a/Tests/RunCMake/DisallowedCommands/CMP0032-OLD-result.txt b/Tests/RunCMake/DisallowedCommands/CMP0032-OLD-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/DisallowedCommands/CMP0032-OLD-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/DisallowedCommands/CMP0032-OLD-stderr.txt b/Tests/RunCMake/DisallowedCommands/CMP0032-OLD-stderr.txt new file mode 100644 index 0000000..2223c42 --- /dev/null +++ b/Tests/RunCMake/DisallowedCommands/CMP0032-OLD-stderr.txt @@ -0,0 +1,4 @@ +CMake Error at CMP0032-OLD.cmake:2 \(output_required_files\): + output_required_files called with incorrect number of arguments +Call Stack \(most recent call first\): + CMakeLists.txt:3 \(include\) diff --git a/Tests/RunCMake/DisallowedCommands/CMP0032-OLD.cmake b/Tests/RunCMake/DisallowedCommands/CMP0032-OLD.cmake new file mode 100644 index 0000000..6585110 --- /dev/null +++ b/Tests/RunCMake/DisallowedCommands/CMP0032-OLD.cmake @@ -0,0 +1,2 @@ +cmake_policy(SET CMP0032 OLD) +output_required_files() diff --git a/Tests/RunCMake/DisallowedCommands/CMP0032-WARN-result.txt b/Tests/RunCMake/DisallowedCommands/CMP0032-WARN-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/DisallowedCommands/CMP0032-WARN-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/DisallowedCommands/CMP0032-WARN-stderr.txt b/Tests/RunCMake/DisallowedCommands/CMP0032-WARN-stderr.txt new file mode 100644 index 0000000..0cf3f94 --- /dev/null +++ b/Tests/RunCMake/DisallowedCommands/CMP0032-WARN-stderr.txt @@ -0,0 +1,12 @@ +CMake Warning \(dev\) at CMP0032-WARN.cmake:1 \(output_required_files\): + Policy CMP0032 is not set: The output_required_files command should not be + called. Run "cmake --help-policy CMP0032" for policy details. Use the + cmake_policy command to set the policy and suppress this warning. +Call Stack \(most recent call first\): + CMakeLists.txt:3 \(include\) +This warning is for project developers. Use -Wno-dev to suppress it. + +CMake Error at CMP0032-WARN.cmake:1 \(output_required_files\): + output_required_files called with incorrect number of arguments +Call Stack \(most recent call first\): + CMakeLists.txt:3 \(include\) diff --git a/Tests/RunCMake/DisallowedCommands/CMP0032-WARN.cmake b/Tests/RunCMake/DisallowedCommands/CMP0032-WARN.cmake new file mode 100644 index 0000000..7411e48 --- /dev/null +++ b/Tests/RunCMake/DisallowedCommands/CMP0032-WARN.cmake @@ -0,0 +1 @@ +output_required_files() diff --git a/Tests/RunCMake/DisallowedCommands/RunCMakeTest.cmake b/Tests/RunCMake/DisallowedCommands/RunCMakeTest.cmake index aea2353..3d54d8f 100644 --- a/Tests/RunCMake/DisallowedCommands/RunCMakeTest.cmake +++ b/Tests/RunCMake/DisallowedCommands/RunCMakeTest.cmake @@ -4,6 +4,7 @@ foreach(p CMP0029 CMP0030 CMP0031 + CMP0032 ) run_cmake(${p}-WARN) run_cmake(${p}-OLD) |