diff options
author | Brad King <brad.king@kitware.com> | 2005-04-21 21:00:36 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2005-04-21 21:00:36 (GMT) |
commit | 2f4e516e230c179cdf7c488f4101aae3a52ac53b (patch) | |
tree | 82a887d59ae00122aed6c0089e8fe2f943e555f5 /Source/CursesDialog/form | |
parent | cf8a3a15213ab4b3014c1dd148be48a46d3e4f67 (diff) | |
download | CMake-2f4e516e230c179cdf7c488f4101aae3a52ac53b.zip CMake-2f4e516e230c179cdf7c488f4101aae3a52ac53b.tar.gz CMake-2f4e516e230c179cdf7c488f4101aae3a52ac53b.tar.bz2 |
COMP: Using a new work-around for stdarg.h problem on SGI.
Diffstat (limited to 'Source/CursesDialog/form')
-rw-r--r-- | Source/CursesDialog/form/CMakeLists.txt | 5 | ||||
-rw-r--r-- | Source/CursesDialog/form/form.h | 20 | ||||
-rw-r--r-- | Source/CursesDialog/form/internal_stdio_core.h.in | 5 |
3 files changed, 10 insertions, 20 deletions
diff --git a/Source/CursesDialog/form/CMakeLists.txt b/Source/CursesDialog/form/CMakeLists.txt index 618aef2..2ec21ec 100644 --- a/Source/CursesDialog/form/CMakeLists.txt +++ b/Source/CursesDialog/form/CMakeLists.txt @@ -50,3 +50,8 @@ TARGET_LINK_LIBRARIES(cmForm ${CURSES_LIBRARY}) IF(CURSES_EXTRA_LIBRARY) TARGET_LINK_LIBRARIES(cmForm ${CURSES_EXTRA_LIBRARY}) ENDIF(CURSES_EXTRA_LIBRARY) + +# See internal_stdio_core.h.in for explanation. +CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/internal_stdio_core.h.in + ${CMAKE_CURRENT_BINARY_DIR}/internal/stdio_core.h + @ONLY IMMEDIATE) diff --git a/Source/CursesDialog/form/form.h b/Source/CursesDialog/form/form.h index 197b510..cb291c4 100644 --- a/Source/CursesDialog/form/form.h +++ b/Source/CursesDialog/form/form.h @@ -39,27 +39,7 @@ #include <curses.h> #include <eti.h> - #include <stdarg.h> -#ifdef __cplusplus -#ifndef va_list -/* - Some compilers move va_list into the std:: namespace and there is no way to - tell that this has been done. Playing with things being included before or - after stdarg.h does not solve things because we do not have control over what - the user does. - This hack solves this problem by moving va_list to our own namespace that is - local for forms. -*/ -namespace std {} /* Required for platforms that do not have std:: */ -namespace cmakeForms_VA_LIST -{ - using namespace std; - typedef va_list hack_va_list; -} -#define va_list cmakeForms_VA_LIST::hack_va_list -#endif /* va_list */ -#endif /* __cplusplus */ #ifdef __cplusplus extern "C" { diff --git a/Source/CursesDialog/form/internal_stdio_core.h.in b/Source/CursesDialog/form/internal_stdio_core.h.in new file mode 100644 index 0000000..ae5910c --- /dev/null +++ b/Source/CursesDialog/form/internal_stdio_core.h.in @@ -0,0 +1,5 @@ +/* This is a hack to work around a bug in MIPSpro 7.4 on some SGIs. + We need to include stdarg.h before the stdio core to avoid putting + va_list in the std namespace and never in the global namespace. */ +#include <stdarg.h> +#include_next <internal/stdio_core.h> |