summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Modules/FindCurses.cmake19
-rw-r--r--Source/CursesDialog/CMakeLists.txt7
-rw-r--r--Source/CursesDialog/ccmake.cxx2
-rw-r--r--Source/CursesDialog/cmCursesStandardIncludes.h14
-rw-r--r--Source/CursesDialog/form/CMakeLists.txt4
-rw-r--r--Source/CursesDialog/form/cmFormConfigure.h.in26
-rw-r--r--Source/CursesDialog/form/form.h14
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>