diff options
author | Daniel Pfeifer <daniel@pfeifer-mail.de> | 2016-06-12 20:46:03 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2016-06-16 13:26:33 (GMT) |
commit | ffdc0a8e2877605f0c7f786ec0a2536db4a71f34 (patch) | |
tree | 816f2641815f3813ae7f257fa81cd7297088001a | |
parent | e4eb88e21dab2f887b2a974ed89358f398418499 (diff) | |
download | CMake-ffdc0a8e2877605f0c7f786ec0a2536db4a71f34.zip CMake-ffdc0a8e2877605f0c7f786ec0a2536db4a71f34.tar.gz CMake-ffdc0a8e2877605f0c7f786ec0a2536db4a71f34.tar.bz2 |
cmTypeMacro: Extract from cmStandardIncludes.h
-rw-r--r-- | Source/cmStandardIncludes.h | 23 | ||||
-rw-r--r-- | Source/cmTypeMacro.h | 37 |
2 files changed, 38 insertions, 22 deletions
diff --git a/Source/cmStandardIncludes.h b/Source/cmStandardIncludes.h index 6a34fb6..047eded 100644 --- a/Source/cmStandardIncludes.h +++ b/Source/cmStandardIncludes.h @@ -57,28 +57,7 @@ extern void operator<<(std::ostream&, const std::ostringstream&); #include "cmCustomCommandLines.h" #include "cmDocumentationEntry.h" - -// All subclasses of cmCommand or cmCTestGenericHandler should -// invoke this macro. -#define cmTypeMacro(thisClass, superclass) \ - virtual const char* GetNameOfClass() { return #thisClass; } \ - typedef superclass Superclass; \ - static bool IsTypeOf(const char* type) \ - { \ - if (!strcmp(#thisClass, type)) { \ - return true; \ - } \ - return Superclass::IsTypeOf(type); \ - } \ - virtual bool IsA(const char* type) { return thisClass::IsTypeOf(type); } \ - static thisClass* SafeDownCast(cmObject* c) \ - { \ - if (c && c->IsA(#thisClass)) { \ - return static_cast<thisClass*>(c); \ - } \ - return 0; \ - } \ - class cmTypeMacro_UseTrailingSemicolon +#include "cmTypeMacro.h" enum cmTargetLinkLibraryType { diff --git a/Source/cmTypeMacro.h b/Source/cmTypeMacro.h new file mode 100644 index 0000000..5c534c3 --- /dev/null +++ b/Source/cmTypeMacro.h @@ -0,0 +1,37 @@ +/*============================================================================ + 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 cmTypeMacro_h +#define cmTypeMacro_h + +// All subclasses of cmCommand or cmCTestGenericHandler should +// invoke this macro. +#define cmTypeMacro(thisClass, superclass) \ + virtual const char* GetNameOfClass() { return #thisClass; } \ + typedef superclass Superclass; \ + static bool IsTypeOf(const char* type) \ + { \ + if (!strcmp(#thisClass, type)) { \ + return true; \ + } \ + return Superclass::IsTypeOf(type); \ + } \ + virtual bool IsA(const char* type) { return thisClass::IsTypeOf(type); } \ + static thisClass* SafeDownCast(cmObject* c) \ + { \ + if (c && c->IsA(#thisClass)) { \ + return static_cast<thisClass*>(c); \ + } \ + return 0; \ + } \ + class cmTypeMacro_UseTrailingSemicolon + +#endif |