summaryrefslogtreecommitdiffstats
path: root/Source/kwsys/String.c
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2009-06-10 15:46:06 (GMT)
committerBrad King <brad.king@kitware.com>2009-06-10 15:46:06 (GMT)
commit776e21d1c7a3414aff8d307aaaef56abd907d8d5 (patch)
treebe9cf7f403df4f2e21a12df8f09321d782acbf78 /Source/kwsys/String.c
parent7a839be9724be4d17c746823b32aeff33c6498eb (diff)
downloadCMake-776e21d1c7a3414aff8d307aaaef56abd907d8d5.zip
CMake-776e21d1c7a3414aff8d307aaaef56abd907d8d5.tar.gz
CMake-776e21d1c7a3414aff8d307aaaef56abd907d8d5.tar.bz2
COMP: Avoid String.c inclusion by Compaq templates
The Compaq compiler (on VMS) includes 'String.c' in source files that use the stl string while looking for template definitions. This was the true cause of double-inclusion of the 'kwsysPrivate.h' header. We work around the problem by conditionally compiling the entire source file on a condition only true when really building the source.
Diffstat (limited to 'Source/kwsys/String.c')
-rw-r--r--Source/kwsys/String.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/Source/kwsys/String.c b/Source/kwsys/String.c
index 1aade12..9d2afc6 100644
--- a/Source/kwsys/String.c
+++ b/Source/kwsys/String.c
@@ -11,6 +11,14 @@
PURPOSE. See the above copyright notices for more information.
=========================================================================*/
+#ifdef KWSYS_STRING_C
+/*
+All code in this source file is conditionally compiled to work-around
+template definition auto-search on VMS. Other source files in this
+directory that use the stl string cause the compiler to load this
+source to try to get the definition of the string template. This
+condition blocks the compiler from seeing the symbols defined here.
+*/
#include "kwsysPrivate.h"
#include KWSYS_HEADER(String.h)
@@ -105,3 +113,5 @@ int kwsysString_strncasecmp(const char* lhs, const char* rhs, size_t n)
return result;
#endif
}
+
+#endif /* KWSYS_STRING_C */