mirror of
https://github.com/reactos/CMake.git
synced 2024-12-02 00:26:18 +00:00
96afb12087
This converts the CMake license to a pure 3-clause OSI-approved BSD License. We drop the previous license clause requiring modified versions to be plainly marked. We also update the CMake copyright to cover the full development time range.
52 lines
1.4 KiB
C++
52 lines
1.4 KiB
C++
/*============================================================================
|
|
CMake - Cross Platform Makefile Generator
|
|
Copyright 2000-2009 Kitware, Inc., Insight Software Consortium
|
|
|
|
Distributed under the OSI-approved BSD License (the "License");
|
|
see accompanying file Copyright.txt for details.
|
|
|
|
This software is distributed WITHOUT ANY WARRANTY; without even the
|
|
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
See the License for more information.
|
|
============================================================================*/
|
|
#ifndef cmObject_h
|
|
#define cmObject_h
|
|
|
|
#include "cmStandardIncludes.h"
|
|
|
|
/** \class cmObject
|
|
* \brief Superclass for all commands and other classes in CMake.
|
|
*
|
|
* cmObject is the base class for all classes in CMake. It defines some
|
|
* methods such as GetNameOfClass, IsA, SafeDownCast.
|
|
*/
|
|
class cmObject
|
|
{
|
|
public:
|
|
/**
|
|
* Need virtual destructor to destroy real command type.
|
|
*/
|
|
virtual ~cmObject() {}
|
|
|
|
/**
|
|
* The class name of the command.
|
|
*/
|
|
virtual const char* GetNameOfClass() = 0;
|
|
|
|
/**
|
|
* Returns true if this class is the given class, or a subclass of it.
|
|
*/
|
|
static bool IsTypeOf(const char *type)
|
|
{ return !strcmp("cmObject", type); }
|
|
|
|
/**
|
|
* Returns true if this object is an instance of the given class or
|
|
* a subclass of it.
|
|
*/
|
|
virtual bool IsA(const char *type)
|
|
{ return cmObject::IsTypeOf(type); }
|
|
};
|
|
|
|
#endif
|
|
|