diff options
author | Brad King <brad.king@kitware.com> | 2016-06-16 13:46:49 (GMT) |
---|---|---|
committer | CMake Topic Stage <kwrobot@kitware.com> | 2016-06-16 13:46:49 (GMT) |
commit | 290913fab871eddee22e6ebadd3eb7ef48c1485b (patch) | |
tree | c6d8384ecb298239904d308d78729c7220fb40e0 | |
parent | 84c0fdb192ccdad66dc00064b6113d7a1e63944a (diff) | |
parent | 1c2c629769e1bca0cee9e25293c88bfa060e692b (diff) | |
download | CMake-290913fab871eddee22e6ebadd3eb7ef48c1485b.zip CMake-290913fab871eddee22e6ebadd3eb7ef48c1485b.tar.gz CMake-290913fab871eddee22e6ebadd3eb7ef48c1485b.tar.bz2 |
Merge topic 'iwyu-preparation'
1c2c6297 cmTargetLinkLibraryType: Extract from cmStandardIncludes.h
ffdc0a8e cmTypeMacro: Extract from cmStandardIncludes.h
e4eb88e2 cmCustomCommandLines: Extract from cmStandardIncludes.h
535ec2bf cmDocumentationEntry: Extract from cmStandardIncludes
c3819aca cmConfigure.h: Establish as 'include first' file
-rw-r--r-- | Source/cmConfigure.cmake.h.in | 17 | ||||
-rw-r--r-- | Source/cmCustomCommandLines.h | 38 | ||||
-rw-r--r-- | Source/cmDocumentationEntry.h | 45 | ||||
-rw-r--r-- | Source/cmStandardIncludes.h | 88 | ||||
-rw-r--r-- | Source/cmTargetLinkLibraryType.h | 22 | ||||
-rw-r--r-- | Source/cmTypeMacro.h | 37 |
6 files changed, 163 insertions, 84 deletions
diff --git a/Source/cmConfigure.cmake.h.in b/Source/cmConfigure.cmake.h.in index 11ff00b..938b10e 100644 --- a/Source/cmConfigure.cmake.h.in +++ b/Source/cmConfigure.cmake.h.in @@ -9,6 +9,21 @@ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the License for more information. ============================================================================*/ +#ifndef cmConfigure_h +#define cmConfigure_h + +#include <cmsys/Configure.hxx> + +#ifdef _MSC_VER +#pragma warning(disable : 4786) +#pragma warning(disable : 4503) +#endif + +#ifdef __ICL +#pragma warning(disable : 985) +#pragma warning(disable : 1572) /* floating-point equality test */ +#endif + #cmakedefine HAVE_ENVIRON_NOT_REQUIRE_PROTOTYPE #cmakedefine HAVE_UNSETENV #cmakedefine CMAKE_USE_ELF_PARSER @@ -17,3 +32,5 @@ #cmakedefine CMake_HAVE_CXX11_UNORDERED_MAP #define CMAKE_BIN_DIR "/@CMAKE_BIN_DIR@" #define CMAKE_DATA_DIR "/@CMAKE_DATA_DIR@" + +#endif diff --git a/Source/cmCustomCommandLines.h b/Source/cmCustomCommandLines.h new file mode 100644 index 0000000..c67550e --- /dev/null +++ b/Source/cmCustomCommandLines.h @@ -0,0 +1,38 @@ +/*============================================================================ + 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 cmCustomCommandLines_h +#define cmCustomCommandLines_h + +#include <cmConfigure.h> // IWYU pragma: keep + +#include <string> +#include <vector> + +/** Data structure to represent a single command line. */ +class cmCustomCommandLine : public std::vector<std::string> +{ +public: + typedef std::vector<std::string> Superclass; + typedef Superclass::iterator iterator; + typedef Superclass::const_iterator const_iterator; +}; + +/** Data structure to represent a list of command lines. */ +class cmCustomCommandLines : public std::vector<cmCustomCommandLine> +{ +public: + typedef std::vector<cmCustomCommandLine> Superclass; + typedef Superclass::iterator iterator; + typedef Superclass::const_iterator const_iterator; +}; + +#endif diff --git a/Source/cmDocumentationEntry.h b/Source/cmDocumentationEntry.h new file mode 100644 index 0000000..f50839e --- /dev/null +++ b/Source/cmDocumentationEntry.h @@ -0,0 +1,45 @@ +/*============================================================================ + 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 cmDocumentationEntry_h +#define cmDocumentationEntry_h + +#include <cmConfigure.h> // IWYU pragma: keep + +#include <string> + +/** Standard documentation entry for cmDocumentation's formatting. */ +struct cmDocumentationEntry +{ + std::string Name; + std::string Brief; + cmDocumentationEntry() {} + cmDocumentationEntry(const char* doc[2]) + { + if (doc[0]) { + this->Name = doc[0]; + } + if (doc[1]) { + this->Brief = doc[1]; + } + } + cmDocumentationEntry(const char* n, const char* b) + { + if (n) { + this->Name = n; + } + if (b) { + this->Brief = b; + } + } +}; + +#endif diff --git a/Source/cmStandardIncludes.h b/Source/cmStandardIncludes.h index d3bf301..606978e 100644 --- a/Source/cmStandardIncludes.h +++ b/Source/cmStandardIncludes.h @@ -18,18 +18,6 @@ #include <cmConfigure.h> -#include <cmsys/Configure.hxx> - -#ifdef _MSC_VER -#pragma warning(disable : 4786) -#pragma warning(disable : 4503) -#endif - -#ifdef __ICL -#pragma warning(disable : 985) -#pragma warning(disable : 1572) /* floating-point equality test */ -#endif - // Provide fixed-size integer types. #include <cm_kwiml.h> @@ -67,77 +55,9 @@ typedef unsigned short mode_t; /* Poison this operator to avoid common mistakes. */ extern void operator<<(std::ostream&, const std::ostringstream&); -/** Standard documentation entry for cmDocumentation's formatting. */ -struct cmDocumentationEntry -{ - std::string Name; - std::string Brief; - cmDocumentationEntry() {} - cmDocumentationEntry(const char* doc[2]) - { - if (doc[0]) { - this->Name = doc[0]; - } - if (doc[1]) { - this->Brief = doc[1]; - } - } - cmDocumentationEntry(const char* n, const char* b) - { - if (n) { - this->Name = n; - } - if (b) { - this->Brief = b; - } - } -}; - -/** Data structure to represent a single command line. */ -class cmCustomCommandLine : public std::vector<std::string> -{ -public: - typedef std::vector<std::string> Superclass; - typedef Superclass::iterator iterator; - typedef Superclass::const_iterator const_iterator; -}; - -/** Data structure to represent a list of command lines. */ -class cmCustomCommandLines : public std::vector<cmCustomCommandLine> -{ -public: - typedef std::vector<cmCustomCommandLine> Superclass; - typedef Superclass::iterator iterator; - typedef Superclass::const_iterator const_iterator; -}; - -// 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 - -enum cmTargetLinkLibraryType -{ - GENERAL_LibraryType, - DEBUG_LibraryType, - OPTIMIZED_LibraryType -}; +#include "cmCustomCommandLines.h" +#include "cmDocumentationEntry.h" +#include "cmTargetLinkLibraryType.h" +#include "cmTypeMacro.h" #endif diff --git a/Source/cmTargetLinkLibraryType.h b/Source/cmTargetLinkLibraryType.h new file mode 100644 index 0000000..71ac9e7 --- /dev/null +++ b/Source/cmTargetLinkLibraryType.h @@ -0,0 +1,22 @@ +/*============================================================================ + 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 cmTargetLinkLibraryType_h +#define cmTargetLinkLibraryType_h + +enum cmTargetLinkLibraryType +{ + GENERAL_LibraryType, + DEBUG_LibraryType, + OPTIMIZED_LibraryType +}; + +#endif 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 |