diff options
author | Brad King <brad.king@kitware.com> | 2003-07-10 18:32:30 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2003-07-10 18:32:30 (GMT) |
commit | d715fba1cb8d97d58cba912cb42359a7f7e8ff22 (patch) | |
tree | 37e597b0d9322b9e7c60f9e8a029b5603e0fef96 | |
parent | b75c229444d8072fd63df2d723fb9cbec81f53f4 (diff) | |
download | CMake-d715fba1cb8d97d58cba912cb42359a7f7e8ff22.zip CMake-d715fba1cb8d97d58cba912cb42359a7f7e8ff22.tar.gz CMake-d715fba1cb8d97d58cba912cb42359a7f7e8ff22.tar.bz2 |
ENH: Added use of KWSYS_HEADER macro in c and cxx files to include kwsys headers through their configured namespace.
-rw-r--r-- | Source/kwsys/Base64.c | 3 | ||||
-rw-r--r-- | Source/kwsys/CMakeLists.txt | 5 | ||||
-rw-r--r-- | Source/kwsys/Directory.cxx | 9 | ||||
-rw-r--r-- | Source/kwsys/EncodeExecutable.c | 3 | ||||
-rw-r--r-- | Source/kwsys/ProcessUNIX.c | 3 | ||||
-rw-r--r-- | Source/kwsys/ProcessWin32.c | 3 | ||||
-rw-r--r-- | Source/kwsys/RegularExpression.cxx | 4 | ||||
-rw-r--r-- | Source/kwsys/SystemTools.cxx | 7 | ||||
-rw-r--r-- | Source/kwsys/kwsysPrivate.h | 38 |
9 files changed, 59 insertions, 16 deletions
diff --git a/Source/kwsys/Base64.c b/Source/kwsys/Base64.c index 34d6048..41f6ef4 100644 --- a/Source/kwsys/Base64.c +++ b/Source/kwsys/Base64.c @@ -15,7 +15,8 @@ PURPOSE. See the above copyright notices for more information. =========================================================================*/ #define KWSYS_IN_BASE64_C -#include <Base64.h> +#include "kwsysPrivate.h" +#include KWSYS_HEADER(Base64.h) /*--------------------------------------------------------------------------*/ static const unsigned char kwsysBase64EncodeTable[65] = diff --git a/Source/kwsys/CMakeLists.txt b/Source/kwsys/CMakeLists.txt index 423a4b9..6f0b9fe 100644 --- a/Source/kwsys/CMakeLists.txt +++ b/Source/kwsys/CMakeLists.txt @@ -304,11 +304,8 @@ IF(KWSYS_LIBRARY_INSTALL_DIR) ENDIF(KWSYS_LIBRARY_INSTALL_DIR) # For building kwsys itself, we use a macro defined on the command -# line to configure the namespace in the C and C++ source files. The -# source files must also include their headers without the namespae -# prefix, so we add the header directory to the include path directly. +# line to configure the namespace in the C and C++ source files. ADD_DEFINITIONS("-DKWSYS_NAMESPACE=${KWSYS_NAMESPACE}") -INCLUDE_DIRECTORIES(BEFORE ${KWSYS_HEADER_DIR}) #----------------------------------------------------------------------------- # Process execution on windows needs to build a forwarding executable diff --git a/Source/kwsys/Directory.cxx b/Source/kwsys/Directory.cxx index 5e409b6..40447c4 100644 --- a/Source/kwsys/Directory.cxx +++ b/Source/kwsys/Directory.cxx @@ -14,12 +14,13 @@ PURPOSE. See the above copyright notices for more information. =========================================================================*/ -#include <Directory.hxx> +#include "kwsysPrivate.h" +#include KWSYS_HEADER(Directory.hxx) -#include <Configure.hxx> +#include KWSYS_HEADER(Configure.hxx) -#include <std/string> -#include <std/vector> +#include KWSYS_HEADER(std/string) +#include KWSYS_HEADER(std/vector) namespace KWSYS_NAMESPACE { diff --git a/Source/kwsys/EncodeExecutable.c b/Source/kwsys/EncodeExecutable.c index 2994129..4797d29 100644 --- a/Source/kwsys/EncodeExecutable.c +++ b/Source/kwsys/EncodeExecutable.c @@ -50,7 +50,8 @@ int main(int argc, char* argv[]) /* Prepend header comment. */ fprintf(ofp, "/*\n * DO NOT EDIT\n * This file is generated by:\n"); fprintf(ofp, " * %s\n */\n\n", argv[0]); - fprintf(ofp, "#include <Configure.h>\n\n"); + fprintf(ofp, "#include \"kwsysPrivate.h\"\n"); + fprintf(ofp, "#include KWSYS_HEADER(Configure.h)\n\n"); fprintf(ofp, "#include <stdio.h>\n\n"); /* Split file up in 1024-byte chunks. */ diff --git a/Source/kwsys/ProcessUNIX.c b/Source/kwsys/ProcessUNIX.c index b14c8cf..62fdae4 100644 --- a/Source/kwsys/ProcessUNIX.c +++ b/Source/kwsys/ProcessUNIX.c @@ -15,7 +15,8 @@ PURPOSE. See the above copyright notices for more information. =========================================================================*/ #define KWSYS_IN_PROCESS_C -#include <Process.h> +#include "kwsysPrivate.h" +#include KWSYS_HEADER(Process.h) /* diff --git a/Source/kwsys/ProcessWin32.c b/Source/kwsys/ProcessWin32.c index 5296f2f..3ef113c 100644 --- a/Source/kwsys/ProcessWin32.c +++ b/Source/kwsys/ProcessWin32.c @@ -15,7 +15,8 @@ PURPOSE. See the above copyright notices for more information. =========================================================================*/ #define KWSYS_IN_PROCESS_C -#include <Process.h> +#include "kwsysPrivate.h" +#include KWSYS_HEADER(Process.h) /* diff --git a/Source/kwsys/RegularExpression.cxx b/Source/kwsys/RegularExpression.cxx index ef204a1..451237c 100644 --- a/Source/kwsys/RegularExpression.cxx +++ b/Source/kwsys/RegularExpression.cxx @@ -33,7 +33,9 @@ // Updated: DLS 03/22/91 New lite version // -#include <RegularExpression.hxx> // Include class specification +#include "kwsysPrivate.h" +#include KWSYS_HEADER(RegularExpression.hxx) + #include <stdio.h> namespace KWSYS_NAMESPACE diff --git a/Source/kwsys/SystemTools.cxx b/Source/kwsys/SystemTools.cxx index 04009a3..c2c67f8 100644 --- a/Source/kwsys/SystemTools.cxx +++ b/Source/kwsys/SystemTools.cxx @@ -14,10 +14,11 @@ PURPOSE. See the above copyright notices for more information. =========================================================================*/ -#include <SystemTools.hxx> +#include "kwsysPrivate.h" +#include KWSYS_HEADER(SystemTools.hxx) -#include <std/iostream> -#include <std/fstream> +#include KWSYS_HEADER(std/iostream) +#include KWSYS_HEADER(std/fstream) #ifdef _MSC_VER # pragma warning (disable: 4786) diff --git a/Source/kwsys/kwsysPrivate.h b/Source/kwsys/kwsysPrivate.h new file mode 100644 index 0000000..94f8b4e --- /dev/null +++ b/Source/kwsys/kwsysPrivate.h @@ -0,0 +1,38 @@ +/*========================================================================= + + Program: KWSys - Kitware System Library + Module: $RCSfile$ + Language: C++ + Date: $Date$ + Version: $Revision$ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef KWSYS_NAMESPACE +# error "Do not include kwsysPrivate.h outside of kwsys c and cxx files." +#endif + +#ifndef _kwsysPrivate_h +#define _kwsysPrivate_h + +/* + Define KWSYS_HEADER macro to help the c and cxx files include kwsys + headers from the configured namespace directory. The macro can be + used like this: + + #include KWSYS_HEADER(Directory.hxx) + #include KWSYS_HEADER(std/vector) +*/ +#define KWSYS_HEADER(x) KWSYS_HEADER0(KWSYS_NAMESPACE/x) +#define KWSYS_HEADER0(x) KWSYS_HEADER1(x) +#define KWSYS_HEADER1(x) <x> + +#else +# error "kwsysPrivate.h included multiple times." +#endif |