ENH: Added use of KWSYS_HEADER macro in c and cxx files to include kwsys headers through their configured namespace.

This commit is contained in:
Brad King 2003-07-10 14:32:30 -04:00
parent b75c229444
commit d715fba1cb
9 changed files with 59 additions and 16 deletions

View File

@ -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] =

View File

@ -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

View File

@ -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
{

View File

@ -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. */

View File

@ -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)
/*

View File

@ -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)
/*

View File

@ -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

View File

@ -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)

View File

@ -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