From 0e3a5ecdb4727b789993f42aa7b96ab9106b8d26 Mon Sep 17 00:00:00 2001
From: Brad King <brad.king@kitware.com>
Date: Tue, 14 Apr 2009 09:35:56 -0400
Subject: [PATCH] ENH: Skip KWSys name maros in case of identity

All KWSys C symbol names begin with the KWSYS_NAMESPACE defined at
configuration time.  For ease of editing we write canonical names with
the prefix 'kwsys' and use macros to map them to the configured prefix
at preprocessing time.  In the case of standalone KWSys, the prefix is
'kwsys', so the macros were previously defined to their own names.

We now skip defining the macros in the identity case so that the final
symbol names are never themselves macros.  This will allow the symbols
to be further transformed behind the scenes to help linkers in special
cases on some platforms.
---
 Base64.h.in          |  32 ++++---
 Configure.h.in       |   3 +
 Configure.hxx.in     |   3 -
 FundamentalType.h.in |  41 +++++----
 MD5.h.in             |  40 +++++----
 Process.h.in         | 208 ++++++++++++++++++++++---------------------
 String.h.in          |  12 ++-
 System.h.in          |  52 ++++++-----
 Terminal.h.in        | 108 +++++++++++-----------
 kwsysDateStamp.cmake |   2 +-
 10 files changed, 265 insertions(+), 236 deletions(-)

diff --git a/Base64.h.in b/Base64.h.in
index 0afcf0d..78551ff 100644
--- a/Base64.h.in
+++ b/Base64.h.in
@@ -24,13 +24,15 @@
 # define kwsys_ns(x) @KWSYS_NAMESPACE@##x
 # define kwsysEXPORT @KWSYS_NAMESPACE@_EXPORT
 #endif
-#define kwsysBase64          kwsys_ns(Base64)
-#define kwsysBase64_Decode   kwsys_ns(Base64_Decode)
-#define kwsysBase64_Decode3  kwsys_ns(Base64_Decode3)
-#define kwsysBase64_Encode   kwsys_ns(Base64_Encode)
-#define kwsysBase64_Encode1  kwsys_ns(Base64_Encode1)
-#define kwsysBase64_Encode2  kwsys_ns(Base64_Encode2)
-#define kwsysBase64_Encode3  kwsys_ns(Base64_Encode3)
+#if !@KWSYS_NAMESPACE@_NAME_IS_KWSYS
+# define kwsysBase64          kwsys_ns(Base64)
+# define kwsysBase64_Decode   kwsys_ns(Base64_Decode)
+# define kwsysBase64_Decode3  kwsys_ns(Base64_Decode3)
+# define kwsysBase64_Encode   kwsys_ns(Base64_Encode)
+# define kwsysBase64_Encode1  kwsys_ns(Base64_Encode1)
+# define kwsysBase64_Encode2  kwsys_ns(Base64_Encode2)
+# define kwsysBase64_Encode3  kwsys_ns(Base64_Encode3)
+#endif
 
 #if defined(__cplusplus)
 extern "C"
@@ -106,13 +108,15 @@ kwsysEXPORT unsigned long kwsysBase64_Decode(const unsigned char *input,
 #if !defined(KWSYS_NAMESPACE)
 # undef kwsys_ns
 # undef kwsysEXPORT
-# undef kwsysBase64
-# undef kwsysBase64_Decode
-# undef kwsysBase64_Decode3
-# undef kwsysBase64_Encode
-# undef kwsysBase64_Encode1
-# undef kwsysBase64_Encode2
-# undef kwsysBase64_Encode3
+# if !@KWSYS_NAMESPACE@_NAME_IS_KWSYS
+#  undef kwsysBase64
+#  undef kwsysBase64_Decode
+#  undef kwsysBase64_Decode3
+#  undef kwsysBase64_Encode
+#  undef kwsysBase64_Encode1
+#  undef kwsysBase64_Encode2
+#  undef kwsysBase64_Encode3
+# endif
 #endif
 
 #endif
diff --git a/Configure.h.in b/Configure.h.in
index d509f13..2cb5813 100644
--- a/Configure.h.in
+++ b/Configure.h.in
@@ -22,6 +22,9 @@
 # define kwsysEXPORT @KWSYS_NAMESPACE@_EXPORT
 #endif
 
+/* Whether kwsys namespace is "kwsys".  */
+#define @KWSYS_NAMESPACE@_NAME_IS_KWSYS @KWSYS_NAME_IS_KWSYS@
+
 /* If we are building a kwsys .c or .cxx file, suppress the Microsoft
    deprecation warnings.  */
 #if defined(KWSYS_NAMESPACE)
diff --git a/Configure.hxx.in b/Configure.hxx.in
index 30f8acc..4916c12 100644
--- a/Configure.hxx.in
+++ b/Configure.hxx.in
@@ -17,9 +17,6 @@
 /* Include C configuration.  */
 #include <@KWSYS_NAMESPACE@/Configure.h>
 
-/* Whether kwsys namespace is "kwsys".  */
-#define @KWSYS_NAMESPACE@_NAME_IS_KWSYS @KWSYS_NAME_IS_KWSYS@
-
 /* Whether ANSI C++ stream headers are to be used.  */
 #define @KWSYS_NAMESPACE@_IOS_USE_ANSI @KWSYS_IOS_USE_ANSI@
 
diff --git a/FundamentalType.h.in b/FundamentalType.h.in
index 4f105df..28ab548 100644
--- a/FundamentalType.h.in
+++ b/FundamentalType.h.in
@@ -24,15 +24,18 @@
 # define kwsys_ns(x) @KWSYS_NAMESPACE@##x
 # define kwsysEXPORT @KWSYS_NAMESPACE@_EXPORT
 #endif
-#define kwsysFundamentalType        kwsys_ns(FundamentalType)
-#define kwsysFundamentalType_Int8   kwsys_ns(FundamentalType_Int8)
-#define kwsysFundamentalType_UInt8  kwsys_ns(FundamentalType_UInt8)
-#define kwsysFundamentalType_Int16  kwsys_ns(FundamentalType_Int16)
-#define kwsysFundamentalType_UInt16 kwsys_ns(FundamentalType_UInt16)
-#define kwsysFundamentalType_Int32  kwsys_ns(FundamentalType_Int32)
-#define kwsysFundamentalType_UInt32 kwsys_ns(FundamentalType_UInt32)
-#define kwsysFundamentalType_Int64  kwsys_ns(FundamentalType_Int64)
-#define kwsysFundamentalType_UInt64 kwsys_ns(FundamentalType_UInt64)
+
+#if !@KWSYS_NAMESPACE@_NAME_IS_KWSYS
+# define kwsysFundamentalType        kwsys_ns(FundamentalType)
+# define kwsysFundamentalType_Int8   kwsys_ns(FundamentalType_Int8)
+# define kwsysFundamentalType_UInt8  kwsys_ns(FundamentalType_UInt8)
+# define kwsysFundamentalType_Int16  kwsys_ns(FundamentalType_Int16)
+# define kwsysFundamentalType_UInt16 kwsys_ns(FundamentalType_UInt16)
+# define kwsysFundamentalType_Int32  kwsys_ns(FundamentalType_Int32)
+# define kwsysFundamentalType_UInt32 kwsys_ns(FundamentalType_UInt32)
+# define kwsysFundamentalType_Int64  kwsys_ns(FundamentalType_Int64)
+# define kwsysFundamentalType_UInt64 kwsys_ns(FundamentalType_UInt64)
+#endif
 
 /* The size of fundamental types.  Types that do not exist have size 0.  */
 #define @KWSYS_NAMESPACE@_SIZEOF_CHAR @KWSYS_SIZEOF_CHAR@
@@ -114,15 +117,17 @@ typedef unsigned __int64 kwsysFundamentalType_UInt64;
 #if !defined(KWSYS_NAMESPACE)
 # undef kwsys_ns
 # undef kwsysEXPORT
-# undef kwsysFundamentalType
-# undef kwsysFundamentalType_Int8
-# undef kwsysFundamentalType_UInt8
-# undef kwsysFundamentalType_Int16
-# undef kwsysFundamentalType_UInt16
-# undef kwsysFundamentalType_Int32
-# undef kwsysFundamentalType_UInt32
-# undef kwsysFundamentalType_Int64
-# undef kwsysFundamentalType_UInt64
+# if !defined(KWSYS_NAMESPACE) && !@KWSYS_NAMESPACE@_NAME_IS_KWSYS
+#  undef kwsysFundamentalType
+#  undef kwsysFundamentalType_Int8
+#  undef kwsysFundamentalType_UInt8
+#  undef kwsysFundamentalType_Int16
+#  undef kwsysFundamentalType_UInt16
+#  undef kwsysFundamentalType_Int32
+#  undef kwsysFundamentalType_UInt32
+#  undef kwsysFundamentalType_Int64
+#  undef kwsysFundamentalType_UInt64
+# endif
 #endif
 
 /* If building a C or C++ file in kwsys itself, give the source file
diff --git a/MD5.h.in b/MD5.h.in
index 49c5a5c..ea10108 100644
--- a/MD5.h.in
+++ b/MD5.h.in
@@ -24,15 +24,17 @@
 # define kwsys_ns(x) @KWSYS_NAMESPACE@##x
 # define kwsysEXPORT @KWSYS_NAMESPACE@_EXPORT
 #endif
-#define kwsysMD5                 kwsys_ns(MD5)
-#define kwsysMD5_s               kwsys_ns(MD5_s)
-#define kwsysMD5_New             kwsys_ns(MD5_New)
-#define kwsysMD5_Delete          kwsys_ns(MD5_Delete)
-#define kwsysMD5_Initialize      kwsys_ns(MD5_Initialize)
-#define kwsysMD5_Append          kwsys_ns(MD5_Append)
-#define kwsysMD5_Finalize        kwsys_ns(MD5_Finalize)
-#define kwsysMD5_FinalizeHex     kwsys_ns(MD5_FinalizeHex)
-#define kwsysMD5_DigestToHex     kwsys_ns(MD5_DigestToHex)
+#if !@KWSYS_NAMESPACE@_NAME_IS_KWSYS
+# define kwsysMD5                 kwsys_ns(MD5)
+# define kwsysMD5_s               kwsys_ns(MD5_s)
+# define kwsysMD5_New             kwsys_ns(MD5_New)
+# define kwsysMD5_Delete          kwsys_ns(MD5_Delete)
+# define kwsysMD5_Initialize      kwsys_ns(MD5_Initialize)
+# define kwsysMD5_Append          kwsys_ns(MD5_Append)
+# define kwsysMD5_Finalize        kwsys_ns(MD5_Finalize)
+# define kwsysMD5_FinalizeHex     kwsys_ns(MD5_FinalizeHex)
+# define kwsysMD5_DigestToHex     kwsys_ns(MD5_DigestToHex)
+#endif
 
 #if defined(__cplusplus)
 extern "C"
@@ -91,15 +93,17 @@ kwsysEXPORT void kwsysMD5_DigestToHex(unsigned char const digest[16],
 #if !defined(KWSYS_NAMESPACE)
 # undef kwsys_ns
 # undef kwsysEXPORT
-# undef kwsysMD5
-# undef kwsysMD5_s
-# undef kwsysMD5_New
-# undef kwsysMD5_Delete
-# undef kwsysMD5_Initialize
-# undef kwsysMD5_Append
-# undef kwsysMD5_Finalize
-# undef kwsysMD5_FinalizeHex
-# undef kwsysMD5_DigestToHex
+# if !@KWSYS_NAMESPACE@_NAME_IS_KWSYS
+#  undef kwsysMD5
+#  undef kwsysMD5_s
+#  undef kwsysMD5_New
+#  undef kwsysMD5_Delete
+#  undef kwsysMD5_Initialize
+#  undef kwsysMD5_Append
+#  undef kwsysMD5_Finalize
+#  undef kwsysMD5_FinalizeHex
+#  undef kwsysMD5_DigestToHex
+# endif
 #endif
 
 #endif
diff --git a/Process.h.in b/Process.h.in
index 01822d3..9b6fc28 100644
--- a/Process.h.in
+++ b/Process.h.in
@@ -24,57 +24,59 @@
 # define kwsys_ns(x) @KWSYS_NAMESPACE@##x
 # define kwsysEXPORT @KWSYS_NAMESPACE@_EXPORT
 #endif
-#define kwsysProcess                     kwsys_ns(Process)
-#define kwsysProcess_s                   kwsys_ns(Process_s)
-#define kwsysProcess_New                 kwsys_ns(Process_New)
-#define kwsysProcess_Delete              kwsys_ns(Process_Delete)
-#define kwsysProcess_SetCommand          kwsys_ns(Process_SetCommand)
-#define kwsysProcess_AddCommand          kwsys_ns(Process_AddCommand)
-#define kwsysProcess_SetTimeout          kwsys_ns(Process_SetTimeout)
-#define kwsysProcess_SetWorkingDirectory kwsys_ns(Process_SetWorkingDirectory)
-#define kwsysProcess_SetPipeFile         kwsys_ns(Process_SetPipeFile)
-#define kwsysProcess_SetPipeNative       kwsys_ns(Process_SetPipeNative)
-#define kwsysProcess_SetPipeShared       kwsys_ns(Process_SetPipeShared)
-#define kwsysProcess_Option_Detach       kwsys_ns(Process_Option_Detach)
-#define kwsysProcess_Option_HideWindow   kwsys_ns(Process_Option_HideWindow)
-#define kwsysProcess_Option_Verbatim     kwsys_ns(Process_Option_Verbatim)
-#define kwsysProcess_GetOption           kwsys_ns(Process_GetOption)
-#define kwsysProcess_SetOption           kwsys_ns(Process_SetOption)
-#define kwsysProcess_Option_e            kwsys_ns(Process_Option_e)
-#define kwsysProcess_State_Starting      kwsys_ns(Process_State_Starting)
-#define kwsysProcess_State_Error         kwsys_ns(Process_State_Error)
-#define kwsysProcess_State_Exception     kwsys_ns(Process_State_Exception)
-#define kwsysProcess_State_Executing     kwsys_ns(Process_State_Executing)
-#define kwsysProcess_State_Exited        kwsys_ns(Process_State_Exited)
-#define kwsysProcess_State_Expired       kwsys_ns(Process_State_Expired)
-#define kwsysProcess_State_Killed        kwsys_ns(Process_State_Killed)
-#define kwsysProcess_State_Disowned      kwsys_ns(Process_State_Disowned)
-#define kwsysProcess_GetState            kwsys_ns(Process_GetState)
-#define kwsysProcess_State_e             kwsys_ns(Process_State_e)
-#define kwsysProcess_Exception_None      kwsys_ns(Process_Exception_None)
-#define kwsysProcess_Exception_Fault     kwsys_ns(Process_Exception_Fault)
-#define kwsysProcess_Exception_Illegal   kwsys_ns(Process_Exception_Illegal)
-#define kwsysProcess_Exception_Interrupt kwsys_ns(Process_Exception_Interrupt)
-#define kwsysProcess_Exception_Numerical kwsys_ns(Process_Exception_Numerical)
-#define kwsysProcess_Exception_Other     kwsys_ns(Process_Exception_Other)
-#define kwsysProcess_GetExitException    kwsys_ns(Process_GetExitException)
-#define kwsysProcess_Exception_e         kwsys_ns(Process_Exception_e)
-#define kwsysProcess_GetExitCode         kwsys_ns(Process_GetExitCode)
-#define kwsysProcess_GetExitValue        kwsys_ns(Process_GetExitValue)
-#define kwsysProcess_GetErrorString      kwsys_ns(Process_GetErrorString)
-#define kwsysProcess_GetExceptionString  kwsys_ns(Process_GetExceptionString)
-#define kwsysProcess_Execute             kwsys_ns(Process_Execute)
-#define kwsysProcess_Disown              kwsys_ns(Process_Disown)
-#define kwsysProcess_WaitForData         kwsys_ns(Process_WaitForData)
-#define kwsysProcess_Pipes_e             kwsys_ns(Process_Pipes_e)
-#define kwsysProcess_Pipe_None           kwsys_ns(Process_Pipe_None)
-#define kwsysProcess_Pipe_STDIN          kwsys_ns(Process_Pipe_STDIN)
-#define kwsysProcess_Pipe_STDOUT         kwsys_ns(Process_Pipe_STDOUT)
-#define kwsysProcess_Pipe_STDERR         kwsys_ns(Process_Pipe_STDERR)
-#define kwsysProcess_Pipe_Timeout        kwsys_ns(Process_Pipe_Timeout)
-#define kwsysProcess_Pipe_Handle         kwsys_ns(Process_Pipe_Handle)
-#define kwsysProcess_WaitForExit         kwsys_ns(Process_WaitForExit)
-#define kwsysProcess_Kill                kwsys_ns(Process_Kill)
+#if !@KWSYS_NAMESPACE@_NAME_IS_KWSYS
+# define kwsysProcess                     kwsys_ns(Process)
+# define kwsysProcess_s                   kwsys_ns(Process_s)
+# define kwsysProcess_New                 kwsys_ns(Process_New)
+# define kwsysProcess_Delete              kwsys_ns(Process_Delete)
+# define kwsysProcess_SetCommand          kwsys_ns(Process_SetCommand)
+# define kwsysProcess_AddCommand          kwsys_ns(Process_AddCommand)
+# define kwsysProcess_SetTimeout          kwsys_ns(Process_SetTimeout)
+# define kwsysProcess_SetWorkingDirectory kwsys_ns(Process_SetWorkingDirectory)
+# define kwsysProcess_SetPipeFile         kwsys_ns(Process_SetPipeFile)
+# define kwsysProcess_SetPipeNative       kwsys_ns(Process_SetPipeNative)
+# define kwsysProcess_SetPipeShared       kwsys_ns(Process_SetPipeShared)
+# define kwsysProcess_Option_Detach       kwsys_ns(Process_Option_Detach)
+# define kwsysProcess_Option_HideWindow   kwsys_ns(Process_Option_HideWindow)
+# define kwsysProcess_Option_Verbatim     kwsys_ns(Process_Option_Verbatim)
+# define kwsysProcess_GetOption           kwsys_ns(Process_GetOption)
+# define kwsysProcess_SetOption           kwsys_ns(Process_SetOption)
+# define kwsysProcess_Option_e            kwsys_ns(Process_Option_e)
+# define kwsysProcess_State_Starting      kwsys_ns(Process_State_Starting)
+# define kwsysProcess_State_Error         kwsys_ns(Process_State_Error)
+# define kwsysProcess_State_Exception     kwsys_ns(Process_State_Exception)
+# define kwsysProcess_State_Executing     kwsys_ns(Process_State_Executing)
+# define kwsysProcess_State_Exited        kwsys_ns(Process_State_Exited)
+# define kwsysProcess_State_Expired       kwsys_ns(Process_State_Expired)
+# define kwsysProcess_State_Killed        kwsys_ns(Process_State_Killed)
+# define kwsysProcess_State_Disowned      kwsys_ns(Process_State_Disowned)
+# define kwsysProcess_GetState            kwsys_ns(Process_GetState)
+# define kwsysProcess_State_e             kwsys_ns(Process_State_e)
+# define kwsysProcess_Exception_None      kwsys_ns(Process_Exception_None)
+# define kwsysProcess_Exception_Fault     kwsys_ns(Process_Exception_Fault)
+# define kwsysProcess_Exception_Illegal   kwsys_ns(Process_Exception_Illegal)
+# define kwsysProcess_Exception_Interrupt kwsys_ns(Process_Exception_Interrupt)
+# define kwsysProcess_Exception_Numerical kwsys_ns(Process_Exception_Numerical)
+# define kwsysProcess_Exception_Other     kwsys_ns(Process_Exception_Other)
+# define kwsysProcess_GetExitException    kwsys_ns(Process_GetExitException)
+# define kwsysProcess_Exception_e         kwsys_ns(Process_Exception_e)
+# define kwsysProcess_GetExitCode         kwsys_ns(Process_GetExitCode)
+# define kwsysProcess_GetExitValue        kwsys_ns(Process_GetExitValue)
+# define kwsysProcess_GetErrorString      kwsys_ns(Process_GetErrorString)
+# define kwsysProcess_GetExceptionString  kwsys_ns(Process_GetExceptionString)
+# define kwsysProcess_Execute             kwsys_ns(Process_Execute)
+# define kwsysProcess_Disown              kwsys_ns(Process_Disown)
+# define kwsysProcess_WaitForData         kwsys_ns(Process_WaitForData)
+# define kwsysProcess_Pipes_e             kwsys_ns(Process_Pipes_e)
+# define kwsysProcess_Pipe_None           kwsys_ns(Process_Pipe_None)
+# define kwsysProcess_Pipe_STDIN          kwsys_ns(Process_Pipe_STDIN)
+# define kwsysProcess_Pipe_STDOUT         kwsys_ns(Process_Pipe_STDOUT)
+# define kwsysProcess_Pipe_STDERR         kwsys_ns(Process_Pipe_STDERR)
+# define kwsysProcess_Pipe_Timeout        kwsys_ns(Process_Pipe_Timeout)
+# define kwsysProcess_Pipe_Handle         kwsys_ns(Process_Pipe_Handle)
+# define kwsysProcess_WaitForExit         kwsys_ns(Process_WaitForExit)
+# define kwsysProcess_Kill                kwsys_ns(Process_Kill)
+#endif
 
 #if defined(__cplusplus)
 extern "C"
@@ -370,57 +372,59 @@ kwsysEXPORT void kwsysProcess_Kill(kwsysProcess* cp);
 #if !defined(KWSYS_NAMESPACE)
 # undef kwsys_ns
 # undef kwsysEXPORT
-# undef kwsysProcess
-# undef kwsysProcess_s
-# undef kwsysProcess_New
-# undef kwsysProcess_Delete
-# undef kwsysProcess_SetCommand
-# undef kwsysProcess_AddCommand
-# undef kwsysProcess_SetTimeout
-# undef kwsysProcess_SetWorkingDirectory
-# undef kwsysProcess_SetPipeFile
-# undef kwsysProcess_SetPipeNative
-# undef kwsysProcess_SetPipeShared
-# undef kwsysProcess_Option_Detach
-# undef kwsysProcess_Option_HideWindow
-# undef kwsysProcess_Option_Verbatim
-# undef kwsysProcess_GetOption
-# undef kwsysProcess_SetOption
-# undef kwsysProcess_Option_e
-# undef kwsysProcess_State_Starting
-# undef kwsysProcess_State_Error
-# undef kwsysProcess_State_Exception
-# undef kwsysProcess_State_Executing
-# undef kwsysProcess_State_Exited
-# undef kwsysProcess_State_Expired
-# undef kwsysProcess_State_Killed
-# undef kwsysProcess_State_Disowned
-# undef kwsysProcess_GetState
-# undef kwsysProcess_State_e
-# undef kwsysProcess_Exception_None
-# undef kwsysProcess_Exception_Fault
-# undef kwsysProcess_Exception_Illegal
-# undef kwsysProcess_Exception_Interrupt
-# undef kwsysProcess_Exception_Numerical
-# undef kwsysProcess_Exception_Other
-# undef kwsysProcess_GetExitException
-# undef kwsysProcess_Exception_e
-# undef kwsysProcess_GetExitCode
-# undef kwsysProcess_GetExitValue
-# undef kwsysProcess_GetErrorString
-# undef kwsysProcess_GetExceptionString
-# undef kwsysProcess_Execute
-# undef kwsysProcess_Disown
-# undef kwsysProcess_WaitForData
-# undef kwsysProcess_Pipes_e
-# undef kwsysProcess_Pipe_None
-# undef kwsysProcess_Pipe_STDIN
-# undef kwsysProcess_Pipe_STDOUT
-# undef kwsysProcess_Pipe_STDERR
-# undef kwsysProcess_Pipe_Timeout
-# undef kwsysProcess_Pipe_Handle
-# undef kwsysProcess_WaitForExit
-# undef kwsysProcess_Kill
+# if !@KWSYS_NAMESPACE@_NAME_IS_KWSYS
+#  undef kwsysProcess
+#  undef kwsysProcess_s
+#  undef kwsysProcess_New
+#  undef kwsysProcess_Delete
+#  undef kwsysProcess_SetCommand
+#  undef kwsysProcess_AddCommand
+#  undef kwsysProcess_SetTimeout
+#  undef kwsysProcess_SetWorkingDirectory
+#  undef kwsysProcess_SetPipeFile
+#  undef kwsysProcess_SetPipeNative
+#  undef kwsysProcess_SetPipeShared
+#  undef kwsysProcess_Option_Detach
+#  undef kwsysProcess_Option_HideWindow
+#  undef kwsysProcess_Option_Verbatim
+#  undef kwsysProcess_GetOption
+#  undef kwsysProcess_SetOption
+#  undef kwsysProcess_Option_e
+#  undef kwsysProcess_State_Starting
+#  undef kwsysProcess_State_Error
+#  undef kwsysProcess_State_Exception
+#  undef kwsysProcess_State_Executing
+#  undef kwsysProcess_State_Exited
+#  undef kwsysProcess_State_Expired
+#  undef kwsysProcess_State_Killed
+#  undef kwsysProcess_State_Disowned
+#  undef kwsysProcess_GetState
+#  undef kwsysProcess_State_e
+#  undef kwsysProcess_Exception_None
+#  undef kwsysProcess_Exception_Fault
+#  undef kwsysProcess_Exception_Illegal
+#  undef kwsysProcess_Exception_Interrupt
+#  undef kwsysProcess_Exception_Numerical
+#  undef kwsysProcess_Exception_Other
+#  undef kwsysProcess_GetExitException
+#  undef kwsysProcess_Exception_e
+#  undef kwsysProcess_GetExitCode
+#  undef kwsysProcess_GetExitValue
+#  undef kwsysProcess_GetErrorString
+#  undef kwsysProcess_GetExceptionString
+#  undef kwsysProcess_Execute
+#  undef kwsysProcess_Disown
+#  undef kwsysProcess_WaitForData
+#  undef kwsysProcess_Pipes_e
+#  undef kwsysProcess_Pipe_None
+#  undef kwsysProcess_Pipe_STDIN
+#  undef kwsysProcess_Pipe_STDOUT
+#  undef kwsysProcess_Pipe_STDERR
+#  undef kwsysProcess_Pipe_Timeout
+#  undef kwsysProcess_Pipe_Handle
+#  undef kwsysProcess_WaitForExit
+#  undef kwsysProcess_Kill
+# endif
 #endif
 
 #endif
diff --git a/String.h.in b/String.h.in
index fe4a0ee..de4d7ea 100644
--- a/String.h.in
+++ b/String.h.in
@@ -26,8 +26,10 @@
 # define kwsys_ns(x) @KWSYS_NAMESPACE@##x
 # define kwsysEXPORT @KWSYS_NAMESPACE@_EXPORT
 #endif
-#define kwsysString_strcasecmp                kwsys_ns(String_strcasecmp)
-#define kwsysString_strncasecmp               kwsys_ns(String_strncasecmp)
+#if !@KWSYS_NAMESPACE@_NAME_IS_KWSYS
+# define kwsysString_strcasecmp                kwsys_ns(String_strcasecmp)
+# define kwsysString_strncasecmp               kwsys_ns(String_strncasecmp)
+#endif
 
 #if defined(__cplusplus)
 extern "C"
@@ -58,8 +60,10 @@ kwsysEXPORT int kwsysString_strncasecmp(const char* lhs, const char* rhs,
 #if !defined(KWSYS_NAMESPACE)
 # undef kwsys_ns
 # undef kwsysEXPORT
-# undef kwsysString_strcasecmp
-# undef kwsysString_strncasecmp
+# if !@KWSYS_NAMESPACE@_NAME_IS_KWSYS
+#  undef kwsysString_strcasecmp
+#  undef kwsysString_strncasecmp
+# endif
 #endif
 
 #endif
diff --git a/System.h.in b/System.h.in
index 86e5845..0a505b6 100644
--- a/System.h.in
+++ b/System.h.in
@@ -24,18 +24,20 @@
 # define kwsys_ns(x) @KWSYS_NAMESPACE@##x
 # define kwsysEXPORT @KWSYS_NAMESPACE@_EXPORT
 #endif
-#define kwsysSystem_Shell_GetArgumentForWindows      kwsys_ns(System_Shell_GetArgumentForWindows)
-#define kwsysSystem_Shell_GetArgumentForUnix         kwsys_ns(System_Shell_GetArgumentForUnix)
-#define kwsysSystem_Shell_GetArgumentSizeForWindows  kwsys_ns(System_Shell_GetArgumentSizeForWindows)
-#define kwsysSystem_Shell_GetArgumentSizeForUnix     kwsys_ns(System_Shell_GetArgumentSizeForUnix)
-#define kwsysSystem_Shell_Flag_e                     kwsys_ns(System_Shell_Flag_e)
-#define kwsysSystem_Shell_Flag_Make                  kwsys_ns(System_Shell_Flag_Make)
-#define kwsysSystem_Shell_Flag_VSIDE                 kwsys_ns(System_Shell_Flag_VSIDE)
-#define kwsysSystem_Shell_Flag_EchoWindows           kwsys_ns(System_Shell_Flag_EchoWindows)
-#define kwsysSystem_Shell_Flag_WatcomWMake           kwsys_ns(System_Shell_Flag_WatcomWMake)
-#define kwsysSystem_Shell_Flag_MinGWMake             kwsys_ns(System_Shell_Flag_MinGWMake)
-#define kwsysSystem_Shell_Flag_NMake                 kwsys_ns(System_Shell_Flag_NMake)
-#define kwsysSystem_Shell_Flag_AllowMakeVariables    kwsys_ns(System_Shell_Flag_AllowMakeVariables)
+#if !@KWSYS_NAMESPACE@_NAME_IS_KWSYS
+# define kwsysSystem_Shell_GetArgumentForWindows      kwsys_ns(System_Shell_GetArgumentForWindows)
+# define kwsysSystem_Shell_GetArgumentForUnix         kwsys_ns(System_Shell_GetArgumentForUnix)
+# define kwsysSystem_Shell_GetArgumentSizeForWindows  kwsys_ns(System_Shell_GetArgumentSizeForWindows)
+# define kwsysSystem_Shell_GetArgumentSizeForUnix     kwsys_ns(System_Shell_GetArgumentSizeForUnix)
+# define kwsysSystem_Shell_Flag_e                     kwsys_ns(System_Shell_Flag_e)
+# define kwsysSystem_Shell_Flag_Make                  kwsys_ns(System_Shell_Flag_Make)
+# define kwsysSystem_Shell_Flag_VSIDE                 kwsys_ns(System_Shell_Flag_VSIDE)
+# define kwsysSystem_Shell_Flag_EchoWindows           kwsys_ns(System_Shell_Flag_EchoWindows)
+# define kwsysSystem_Shell_Flag_WatcomWMake           kwsys_ns(System_Shell_Flag_WatcomWMake)
+# define kwsysSystem_Shell_Flag_MinGWMake             kwsys_ns(System_Shell_Flag_MinGWMake)
+# define kwsysSystem_Shell_Flag_NMake                 kwsys_ns(System_Shell_Flag_NMake)
+# define kwsysSystem_Shell_Flag_AllowMakeVariables    kwsys_ns(System_Shell_Flag_AllowMakeVariables)
+#endif
 
 #if defined(__cplusplus)
 extern "C"
@@ -111,18 +113,20 @@ enum kwsysSystem_Shell_Flag_e
 #if !defined(KWSYS_NAMESPACE)
 # undef kwsys_ns
 # undef kwsysEXPORT
-# undef kwsysSystem_Shell_GetArgumentForWindows
-# undef kwsysSystem_Shell_GetArgumentForUnix
-# undef kwsysSystem_Shell_GetArgumentSizeForWindows
-# undef kwsysSystem_Shell_GetArgumentSizeForUnix
-# undef kwsysSystem_Shell_Flag_e
-# undef kwsysSystem_Shell_Flag_Make
-# undef kwsysSystem_Shell_Flag_VSIDE
-# undef kwsysSystem_Shell_Flag_EchoWindows
-# undef kwsysSystem_Shell_Flag_WatcomWMake
-# undef kwsysSystem_Shell_Flag_MinGWMake
-# undef kwsysSystem_Shell_Flag_NMake
-# undef kwsysSystem_Shell_Flag_AllowMakeVariables
+# if !defined(KWSYS_NAMESPACE) && !@KWSYS_NAMESPACE@_NAME_IS_KWSYS
+#  undef kwsysSystem_Shell_GetArgumentForWindows
+#  undef kwsysSystem_Shell_GetArgumentForUnix
+#  undef kwsysSystem_Shell_GetArgumentSizeForWindows
+#  undef kwsysSystem_Shell_GetArgumentSizeForUnix
+#  undef kwsysSystem_Shell_Flag_e
+#  undef kwsysSystem_Shell_Flag_Make
+#  undef kwsysSystem_Shell_Flag_VSIDE
+#  undef kwsysSystem_Shell_Flag_EchoWindows
+#  undef kwsysSystem_Shell_Flag_WatcomWMake
+#  undef kwsysSystem_Shell_Flag_MinGWMake
+#  undef kwsysSystem_Shell_Flag_NMake
+#  undef kwsysSystem_Shell_Flag_AllowMakeVariables
+# endif
 #endif
 
 #endif
diff --git a/Terminal.h.in b/Terminal.h.in
index 68c8aa8..0fef3be 100644
--- a/Terminal.h.in
+++ b/Terminal.h.in
@@ -26,32 +26,34 @@
 # define kwsys_ns(x) @KWSYS_NAMESPACE@##x
 # define kwsysEXPORT @KWSYS_NAMESPACE@_EXPORT
 #endif
-#define kwsysTerminal_cfprintf                kwsys_ns(Terminal_cfprintf)
-#define kwsysTerminal_Color_e                 kwsys_ns(Terminal_Color_e)
-#define kwsysTerminal_Color_Normal            kwsys_ns(Terminal_Color_Normal)
-#define kwsysTerminal_Color_ForegroundBlack   kwsys_ns(Terminal_Color_ForegroundBlack)
-#define kwsysTerminal_Color_ForegroundRed     kwsys_ns(Terminal_Color_ForegroundRed)
-#define kwsysTerminal_Color_ForegroundGreen   kwsys_ns(Terminal_Color_ForegroundGreen)
-#define kwsysTerminal_Color_ForegroundYellow  kwsys_ns(Terminal_Color_ForegroundYellow)
-#define kwsysTerminal_Color_ForegroundBlue    kwsys_ns(Terminal_Color_ForegroundBlue)
-#define kwsysTerminal_Color_ForegroundMagenta kwsys_ns(Terminal_Color_ForegroundMagenta)
-#define kwsysTerminal_Color_ForegroundCyan    kwsys_ns(Terminal_Color_ForegroundCyan)
-#define kwsysTerminal_Color_ForegroundWhite   kwsys_ns(Terminal_Color_ForegroundWhite)
-#define kwsysTerminal_Color_ForegroundMask    kwsys_ns(Terminal_Color_ForegroundMask)
-#define kwsysTerminal_Color_BackgroundBlack   kwsys_ns(Terminal_Color_BackgroundBlack)
-#define kwsysTerminal_Color_BackgroundRed     kwsys_ns(Terminal_Color_BackgroundRed)
-#define kwsysTerminal_Color_BackgroundGreen   kwsys_ns(Terminal_Color_BackgroundGreen)
-#define kwsysTerminal_Color_BackgroundYellow  kwsys_ns(Terminal_Color_BackgroundYellow)
-#define kwsysTerminal_Color_BackgroundBlue    kwsys_ns(Terminal_Color_BackgroundBlue)
-#define kwsysTerminal_Color_BackgroundMagenta kwsys_ns(Terminal_Color_BackgroundMagenta)
-#define kwsysTerminal_Color_BackgroundCyan    kwsys_ns(Terminal_Color_BackgroundCyan)
-#define kwsysTerminal_Color_BackgroundWhite   kwsys_ns(Terminal_Color_BackgroundWhite)
-#define kwsysTerminal_Color_BackgroundMask    kwsys_ns(Terminal_Color_BackgroundMask)
-#define kwsysTerminal_Color_ForegroundBold    kwsys_ns(Terminal_Color_ForegroundBold)
-#define kwsysTerminal_Color_BackgroundBold    kwsys_ns(Terminal_Color_BackgroundBold)
-#define kwsysTerminal_Color_AssumeTTY         kwsys_ns(Terminal_Color_AssumeTTY)
-#define kwsysTerminal_Color_AssumeVT100       kwsys_ns(Terminal_Color_AssumeVT100)
-#define kwsysTerminal_Color_AttributeMask     kwsys_ns(Terminal_Color_AttributeMask)
+#if !@KWSYS_NAMESPACE@_NAME_IS_KWSYS
+# define kwsysTerminal_cfprintf                kwsys_ns(Terminal_cfprintf)
+# define kwsysTerminal_Color_e                 kwsys_ns(Terminal_Color_e)
+# define kwsysTerminal_Color_Normal            kwsys_ns(Terminal_Color_Normal)
+# define kwsysTerminal_Color_ForegroundBlack   kwsys_ns(Terminal_Color_ForegroundBlack)
+# define kwsysTerminal_Color_ForegroundRed     kwsys_ns(Terminal_Color_ForegroundRed)
+# define kwsysTerminal_Color_ForegroundGreen   kwsys_ns(Terminal_Color_ForegroundGreen)
+# define kwsysTerminal_Color_ForegroundYellow  kwsys_ns(Terminal_Color_ForegroundYellow)
+# define kwsysTerminal_Color_ForegroundBlue    kwsys_ns(Terminal_Color_ForegroundBlue)
+# define kwsysTerminal_Color_ForegroundMagenta kwsys_ns(Terminal_Color_ForegroundMagenta)
+# define kwsysTerminal_Color_ForegroundCyan    kwsys_ns(Terminal_Color_ForegroundCyan)
+# define kwsysTerminal_Color_ForegroundWhite   kwsys_ns(Terminal_Color_ForegroundWhite)
+# define kwsysTerminal_Color_ForegroundMask    kwsys_ns(Terminal_Color_ForegroundMask)
+# define kwsysTerminal_Color_BackgroundBlack   kwsys_ns(Terminal_Color_BackgroundBlack)
+# define kwsysTerminal_Color_BackgroundRed     kwsys_ns(Terminal_Color_BackgroundRed)
+# define kwsysTerminal_Color_BackgroundGreen   kwsys_ns(Terminal_Color_BackgroundGreen)
+# define kwsysTerminal_Color_BackgroundYellow  kwsys_ns(Terminal_Color_BackgroundYellow)
+# define kwsysTerminal_Color_BackgroundBlue    kwsys_ns(Terminal_Color_BackgroundBlue)
+# define kwsysTerminal_Color_BackgroundMagenta kwsys_ns(Terminal_Color_BackgroundMagenta)
+# define kwsysTerminal_Color_BackgroundCyan    kwsys_ns(Terminal_Color_BackgroundCyan)
+# define kwsysTerminal_Color_BackgroundWhite   kwsys_ns(Terminal_Color_BackgroundWhite)
+# define kwsysTerminal_Color_BackgroundMask    kwsys_ns(Terminal_Color_BackgroundMask)
+# define kwsysTerminal_Color_ForegroundBold    kwsys_ns(Terminal_Color_ForegroundBold)
+# define kwsysTerminal_Color_BackgroundBold    kwsys_ns(Terminal_Color_BackgroundBold)
+# define kwsysTerminal_Color_AssumeTTY         kwsys_ns(Terminal_Color_AssumeTTY)
+# define kwsysTerminal_Color_AssumeVT100       kwsys_ns(Terminal_Color_AssumeVT100)
+# define kwsysTerminal_Color_AttributeMask     kwsys_ns(Terminal_Color_AttributeMask)
+#endif
 
 #if defined(__cplusplus)
 extern "C"
@@ -126,32 +128,34 @@ enum kwsysTerminal_Color_e
 #if !defined(KWSYS_NAMESPACE)
 # undef kwsys_ns
 # undef kwsysEXPORT
-# undef kwsysTerminal_cfprintf
-# undef kwsysTerminal_Color_e
-# undef kwsysTerminal_Color_Normal
-# undef kwsysTerminal_Color_ForegroundBlack
-# undef kwsysTerminal_Color_ForegroundRed
-# undef kwsysTerminal_Color_ForegroundGreen
-# undef kwsysTerminal_Color_ForegroundYellow
-# undef kwsysTerminal_Color_ForegroundBlue
-# undef kwsysTerminal_Color_ForegroundMagenta
-# undef kwsysTerminal_Color_ForegroundCyan
-# undef kwsysTerminal_Color_ForegroundWhite
-# undef kwsysTerminal_Color_ForegroundMask
-# undef kwsysTerminal_Color_BackgroundBlack
-# undef kwsysTerminal_Color_BackgroundRed
-# undef kwsysTerminal_Color_BackgroundGreen
-# undef kwsysTerminal_Color_BackgroundYellow
-# undef kwsysTerminal_Color_BackgroundBlue
-# undef kwsysTerminal_Color_BackgroundMagenta
-# undef kwsysTerminal_Color_BackgroundCyan
-# undef kwsysTerminal_Color_BackgroundWhite
-# undef kwsysTerminal_Color_BackgroundMask
-# undef kwsysTerminal_Color_ForegroundBold
-# undef kwsysTerminal_Color_BackgroundBold
-# undef kwsysTerminal_Color_AssumeTTY
-# undef kwsysTerminal_Color_AssumeVT100
-# undef kwsysTerminal_Color_AttributeMask
+# if !@KWSYS_NAMESPACE@_NAME_IS_KWSYS
+#  undef kwsysTerminal_cfprintf
+#  undef kwsysTerminal_Color_e
+#  undef kwsysTerminal_Color_Normal
+#  undef kwsysTerminal_Color_ForegroundBlack
+#  undef kwsysTerminal_Color_ForegroundRed
+#  undef kwsysTerminal_Color_ForegroundGreen
+#  undef kwsysTerminal_Color_ForegroundYellow
+#  undef kwsysTerminal_Color_ForegroundBlue
+#  undef kwsysTerminal_Color_ForegroundMagenta
+#  undef kwsysTerminal_Color_ForegroundCyan
+#  undef kwsysTerminal_Color_ForegroundWhite
+#  undef kwsysTerminal_Color_ForegroundMask
+#  undef kwsysTerminal_Color_BackgroundBlack
+#  undef kwsysTerminal_Color_BackgroundRed
+#  undef kwsysTerminal_Color_BackgroundGreen
+#  undef kwsysTerminal_Color_BackgroundYellow
+#  undef kwsysTerminal_Color_BackgroundBlue
+#  undef kwsysTerminal_Color_BackgroundMagenta
+#  undef kwsysTerminal_Color_BackgroundCyan
+#  undef kwsysTerminal_Color_BackgroundWhite
+#  undef kwsysTerminal_Color_BackgroundMask
+#  undef kwsysTerminal_Color_ForegroundBold
+#  undef kwsysTerminal_Color_BackgroundBold
+#  undef kwsysTerminal_Color_AssumeTTY
+#  undef kwsysTerminal_Color_AssumeVT100
+#  undef kwsysTerminal_Color_AttributeMask
+# endif
 #endif
 
 #endif
diff --git a/kwsysDateStamp.cmake b/kwsysDateStamp.cmake
index a0fc4b5..5a362e6 100644
--- a/kwsysDateStamp.cmake
+++ b/kwsysDateStamp.cmake
@@ -7,4 +7,4 @@ SET(KWSYS_DATE_STAMP_YEAR  2009)
 SET(KWSYS_DATE_STAMP_MONTH 04)
 
 # KWSys version date day component.  Format is DD.
-SET(KWSYS_DATE_STAMP_DAY   06)
+SET(KWSYS_DATE_STAMP_DAY   14)
-- 
GitLab