COMP: make it build on NetBSD, which has separate curses and ncurses, so

it has to be detected that curses isn't good enough, but ncurses is, and
that ncurses.h instead of curses.h is included

Alex
This commit is contained in:
Alexander Neundorf 2007-08-27 09:01:14 -04:00
parent a764593f1d
commit c41f798383
7 changed files with 75 additions and 11 deletions

View File

@ -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)

View File

@ -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)
INSTALL_TARGETS(/bin ccmake)

View File

@ -23,8 +23,8 @@
#include <sys/ioctl.h>
#include "cmCursesMainForm.h"
#include "cmCursesStandardIncludes.h"
#include <curses.h>
#include <form.h>
//----------------------------------------------------------------------------

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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>