Commit 6865c8fe authored by Brad King's avatar Brad King

Add policy CMP0032 to disallow output_required_files

parent aa76518f
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
......
......@@ -61,3 +61,4 @@ All Policies
/policy/CMP0029
/policy/CMP0030
/policy/CMP0031
/policy/CMP0032
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
......@@ -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");
......
......@@ -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;
......
......@@ -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()
......
......@@ -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.
*
......
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\)
cmake_policy(SET CMP0032 NEW)
output_required_files()
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\)
cmake_policy(SET CMP0032 OLD)
output_required_files()
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\)
......@@ -4,6 +4,7 @@ foreach(p
CMP0029
CMP0030
CMP0031
CMP0032
)
run_cmake(${p}-WARN)
run_cmake(${p}-OLD)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment