Files
CMake/Source/cmVariableWatchCommand.h
Brad King c1b96fddf8 Merge topic 'remove-cmobject-uses'
2214011f Make cmCPackGenerator not inherit from cmObject
7f9a8d53 Make cmCPackGeneratorFactory not inherit from cmObject
fb0b087c Make cmCTestGenericHandler not inherit from cmObject
2169b0fa Make cmCPackLog not inherit from cmObject
9855ebf1 Make cmCommand not inherit from cmObject
2016-10-24 10:16:43 -04:00

60 lines
1.5 KiB
C++

/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
file Copyright.txt or https://cmake.org/licensing for details. */
#ifndef cmVariableWatchCommand_h
#define cmVariableWatchCommand_h
#include <cmConfigure.h>
#include <set>
#include <string>
#include <vector>
#include "cmCommand.h"
#include "cmTypeMacro.h"
class cmExecutionStatus;
/** \class cmVariableWatchCommand
* \brief Watch when the variable changes and invoke command
*
*/
class cmVariableWatchCommand : public cmCommand
{
public:
/**
* This is a virtual constructor for the command.
*/
cmCommand* Clone() CM_OVERRIDE { return new cmVariableWatchCommand; }
//! Default constructor
cmVariableWatchCommand();
//! Destructor.
~cmVariableWatchCommand() CM_OVERRIDE;
/**
* This is called when the command is first encountered in
* the CMakeLists.txt file.
*/
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; }
/**
* The name of the command as specified in CMakeList.txt.
*/
std::string GetName() const CM_OVERRIDE { return "variable_watch"; }
protected:
std::set<std::string> WatchedVariables;
};
#endif