diff --git a/CMakeLists.txt b/CMakeLists.txt index 645a4193b2342778c6baefb8a54a0bf72c36dd69..145e43a49d8c5a0d32f2ecc7be937eea6e572e58 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -848,6 +848,12 @@ ENDIF(KWSYS_ENABLE_C AND KWSYS_C_SRCS) # line to configure the namespace in the C and C++ source files. ADD_DEFINITIONS("-DKWSYS_NAMESPACE=${KWSYS_NAMESPACE}") +IF(KWSYS_USE_String) + # Activate code in "String.c". See the comment in the source. + SET_SOURCE_FILES_PROPERTIES(String.c PROPERTIES + COMPILE_FLAGS "-DKWSYS_STRING_C") +ENDIF(KWSYS_USE_String) + #----------------------------------------------------------------------------- # Process execution on windows needs to build a forwarding executable # that works around a Win9x bug. We encode the executable into a C diff --git a/String.c b/String.c index 2df11781dcdd54175dd335f92e47189416709fd2..7d3284918b8b58ef48bb4b615c952c3de151c229 100644 --- a/String.c +++ b/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 */ diff --git a/kwsysDateStamp.cmake b/kwsysDateStamp.cmake index 2f56a09801ec30f4e9b2116f5da6ea5d608eab60..c464938673beeae7c5d626c64409459e9736aeb2 100644 --- a/kwsysDateStamp.cmake +++ b/kwsysDateStamp.cmake @@ -7,4 +7,4 @@ SET(KWSYS_DATE_STAMP_YEAR 2009) SET(KWSYS_DATE_STAMP_MONTH 06) # KWSys version date day component. Format is DD. -SET(KWSYS_DATE_STAMP_DAY 09) +SET(KWSYS_DATE_STAMP_DAY 10) diff --git a/kwsysPrivate.h b/kwsysPrivate.h index e02117080316b2108033adca47555d92f7535bdc..90623e50e958de9bbe30f401ef1f698b52e8e341 100644 --- a/kwsysPrivate.h +++ b/kwsysPrivate.h @@ -39,7 +39,5 @@ #define KWSYS_NAMESPACE_STRING1(x) #x #else -# ifndef __VMS /* Avoid strange false positive on VMS compiler. */ -# error "kwsysPrivate.h included multiple times." -# endif +# error "kwsysPrivate.h included multiple times." #endif