diff options
-rw-r--r-- | Modules/FindCurses.cmake | 19 | ||||
-rw-r--r-- | Source/CursesDialog/CMakeLists.txt | 7 | ||||
-rw-r--r-- | Source/CursesDialog/ccmake.cxx | 2 | ||||
-rw-r--r-- | Source/CursesDialog/cmCursesStandardIncludes.h | 14 | ||||
-rw-r--r-- | Source/CursesDialog/form/CMakeLists.txt | 4 | ||||
-rw-r--r-- | Source/CursesDialog/form/cmFormConfigure.h.in | 26 | ||||
-rw-r--r-- | Source/CursesDialog/form/form.h | 14 |
7 files changed, 75 insertions, 11 deletions
diff --git a/Modules/FindCurses.cmake b/Modules/FindCurses.cmake index e4ca140..fffe188 100644 --- a/Modules/FindCurses.cmake +++ b/Modules/FindCurses.cmake @@ -3,6 +3,10 @@ # CURSES_FOUND - system has Curses # CURSES_INCLUDE_DIR - the Curses include directory # CURSES_LIBRARIES - The libraries needed to use Curses +# CURSES_HAVE_CURSES_H - true if curses.h is available +# CURSES_HAVE_NCURSES_H - true if ncurses.h is available +# CURSES_HAVE_NCURSES_NCURSES_H - true if ncurses/ncurses.h is available +# CURSES_HAVE_NCURSES_CURSES_H - true if ncurses/curses.h is available # # Set CURSES_NEED_NCURSES to TRUE before the FIND_PACKAGE() command if NCurses # functionality is required. @@ -44,16 +48,25 @@ ENDIF(CURSES_CURSES_LIBRARY AND CURSES_NEED_NCURSES) IF(NOT CURSES_USE_NCURSES) - FIND_PATH(CURSES_CURSES_INCLUDE_PATH curses.h ) - SET(CURSES_INCLUDE_PATH "${CURSES_CURSES_INCLUDE_PATH}") + FIND_FILE(CURSES_HAVE_CURSES_H curses.h ) + FIND_PATH(CURSES_CURSES_H_PATH curses.h ) + SET(CURSES_INCLUDE_PATH "${CURSES_CURSES_H_PATH}") + SET(CURSES_LIBRARY "${CURSES_CURSES_LIBRARY}") GET_FILENAME_COMPONENT(_cursesLibDir "${CURSES_CURSES_LIBRARY}" PATH) GET_FILENAME_COMPONENT(_cursesParentDir "${_cursesLibDir}" PATH) ELSE(NOT CURSES_USE_NCURSES) # we need to find ncurses - FIND_PATH(CURSES_NCURSES_INCLUDE_PATH ncurses.h ncurses/ncurses.h ncurses/curses.h) GET_FILENAME_COMPONENT(_cursesLibDir "${CURSES_NCURSES_LIBRARY}" PATH) GET_FILENAME_COMPONENT(_cursesParentDir "${_cursesLibDir}" PATH) + + FIND_FILE(CURSES_HAVE_NCURSES_H ncurses.h) + FIND_FILE(CURSES_HAVE_NCURSES_NCURSES_H ncurses/ncurses.h) + FIND_FILE(CURSES_HAVE_NCURSES_CURSES_H ncurses/curses.h) + FIND_FILE(CURSES_HAVE_CURSES_H curses.h PATHS "${_cursesParentDir}/include" NO_DEFAULT_PATH) + FIND_FILE(CURSES_HAVE_CURSES_H curses.h) + + FIND_PATH(CURSES_NCURSES_INCLUDE_PATH ncurses.h ncurses/ncurses.h ncurses/curses.h) FIND_PATH(CURSES_NCURSES_INCLUDE_PATH curses.h PATHS "${_cursesParentDir}/include" NO_DEFAULT_PATH) FIND_PATH(CURSES_NCURSES_INCLUDE_PATH curses.h) diff --git a/Source/CursesDialog/CMakeLists.txt b/Source/CursesDialog/CMakeLists.txt index bf86e1f..58a1c68 100644 --- a/Source/CursesDialog/CMakeLists.txt +++ b/Source/CursesDialog/CMakeLists.txt @@ -14,15 +14,14 @@ SET( CURSES_SRCS CursesDialog/ccmake ) -INCLUDE_DIRECTORIES(${CMake_SOURCE_DIR}/Source/CursesDialog/form) +INCLUDE_DIRECTORIES(${CMake_SOURCE_DIR}/Source/CursesDialog/form + ${CMake_BINARY_DIR}/Source/CursesDialog/form) LINK_DIRECTORIES(${CMake_BINARY_DIR}/Source/CursesDialog/form) INCLUDE_DIRECTORIES(${CURSES_INCLUDE_PATH}) - - ADD_EXECUTABLE(ccmake ${CURSES_SRCS} ) TARGET_LINK_LIBRARIES(ccmake CMakeLib) TARGET_LINK_LIBRARIES(ccmake cmForm) -INSTALL_TARGETS(/bin ccmake)
\ No newline at end of file +INSTALL_TARGETS(/bin ccmake) diff --git a/Source/CursesDialog/ccmake.cxx b/Source/CursesDialog/ccmake.cxx index 2d5cea0..1e26b79 100644 --- a/Source/CursesDialog/ccmake.cxx +++ b/Source/CursesDialog/ccmake.cxx @@ -23,8 +23,8 @@ #include <sys/ioctl.h> #include "cmCursesMainForm.h" +#include "cmCursesStandardIncludes.h" -#include <curses.h> #include <form.h> //---------------------------------------------------------------------------- diff --git a/Source/CursesDialog/cmCursesStandardIncludes.h b/Source/CursesDialog/cmCursesStandardIncludes.h index 456d4a6..a5b229c 100644 --- a/Source/CursesDialog/cmCursesStandardIncludes.h +++ b/Source/CursesDialog/cmCursesStandardIncludes.h @@ -20,6 +20,8 @@ #define _MSE_INT_H #endif +#include <cmFormConfigure.h> + #if defined(__hpux) # define _BOOL_DEFINED # include <sys/time.h> @@ -28,7 +30,17 @@ # include <form.h> # undef _XOPEN_SOURCE_EXTENDED #else -# include <curses.h> +/* figure out which curses.h to include */ +# if defined(CURSES_HAVE_NCURSES_H) +# include <ncurses.h> +# elif defined(CURSES_HAVE_NCURSES_NCURSES_H) +# include <ncurses/ncurses.h> +# elif defined(CURSES_HAVE_NCURSES_CURSES_H) +# include <ncurses/curses.h> +# else +# include <curses.h> +# endif + # include <form.h> #endif diff --git a/Source/CursesDialog/form/CMakeLists.txt b/Source/CursesDialog/form/CMakeLists.txt index e5c8ca2..a3d9977 100644 --- a/Source/CursesDialog/form/CMakeLists.txt +++ b/Source/CursesDialog/form/CMakeLists.txt @@ -1,7 +1,9 @@ PROJECT(CMAKE_FORM) INCLUDE_REGULAR_EXPRESSION("^.*$") -INCLUDE_DIRECTORIES(${CURSES_INCLUDE_PATH}) +INCLUDE_DIRECTORIES(${CURSES_INCLUDE_PATH} "${CMAKE_CURRENT_BINARY_DIR}") + +CONFIGURE_FILE(cmFormConfigure.h.in "${CMAKE_CURRENT_BINARY_DIR}/cmFormConfigure.h") SET( FORM_SRCS fld_arg.c diff --git a/Source/CursesDialog/form/cmFormConfigure.h.in b/Source/CursesDialog/form/cmFormConfigure.h.in new file mode 100644 index 0000000..8f76092 --- /dev/null +++ b/Source/CursesDialog/form/cmFormConfigure.h.in @@ -0,0 +1,26 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile$ + Language: C++ + Date: $Date$ + Version: $Revision$ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or 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 CMFORMCONFIGURE_H +#define CMFORMCONFIGURE_H + +#cmakedefine CURSES_HAVE_CURSES_H +#cmakedefine CURSES_HAVE_NCURSES_H +#cmakedefine CURSES_HAVE_NCURSES_NCURSES_H +#cmakedefine CURSES_HAVE_NCURSES_CURSES_H + +#endif diff --git a/Source/CursesDialog/form/form.h b/Source/CursesDialog/form/form.h index cb291c4..94f05af 100644 --- a/Source/CursesDialog/form/form.h +++ b/Source/CursesDialog/form/form.h @@ -37,7 +37,19 @@ #define _MSE_INT_H #endif -#include <curses.h> +#include <cmFormConfigure.h> + +/* figure out which curses.h to include */ +# if defined(CURSES_HAVE_NCURSES_H) +# include <ncurses.h> +# elif defined(CURSES_HAVE_NCURSES_NCURSES_H) +# include <ncurses/ncurses.h> +# elif defined(CURSES_HAVE_NCURSES_CURSES_H) +# include <ncurses/curses.h> +# else +# include <curses.h> +# endif + #include <eti.h> #include <stdarg.h> |