From ce46c80492d518aa85f2583f6cc60752acfbe831 Mon Sep 17 00:00:00 2001 From: David Adam Date: Fri, 17 Nov 2017 16:21:15 +0800 Subject: [PATCH] cmake: restore check for fixed-args tparm ("Solaris tparm kludge") --- cmake/ConfigureChecks.cmake | 31 ++++++++++++++++++++++++++++++- config_cmake.h.in | 2 +- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/cmake/ConfigureChecks.cmake b/cmake/ConfigureChecks.cmake index 3864b477b..a3b18a4a1 100644 --- a/cmake/ConfigureChecks.cmake +++ b/cmake/ConfigureChecks.cmake @@ -82,4 +82,33 @@ IF(EXISTS "/proc/self/stat") ENDIF() CHECK_TYPE_SIZE("wchar_t[8]" WCHAR_T_BITS LANGUAGE CXX) -# Not checked yet: non-varargs tparm ("Solaris tparm kludge") +# Solaris, NetBSD and X/Open-conforming systems have a fixed-args tparm +SET(TPARM_INCLUDES) +IF(HAVE_NCURSES_H) + SET(TPARM_INCLUDES "${TPARM_INCLUDES}#include \n") +ELSEIF(HAVE_NCURSES_CURSES_H) + SET(TPARM_INCLUDES "${TPARM_INCLUDES}#include \n") +ELSE() + SET(TPARM_INCLUDES "${TPARM_INCLUDES}#include \n") +ENDIF() + +IF(HAVE_TERM_H) + SET(TPARM_INCLUDES "${TPARM_INCLUDES}#include \n") +ELSEIF(HAVE_NCURSES_TERM_H) + SET(TPARM_INCLUDES "${TPARM_INCLUDES}#include \n") +ENDIF() + +SET(CMAKE_REQUIRED_LIBRARIES ${CURSES_LIBRARY}) +CHECK_CXX_SOURCE_COMPILES(" +${TPARM_INCLUDES} + +int main () { + tparm( \"\" ); +} +" + TPARM_TAKES_VARARGS +) +SET(CMAKE_REQUIRED_LIBRARIES) +IF(NOT TPARM_TAKES_VARARGS) + SET(TPARM_SOLARIS_KLUDGE 1) +ENDIF() diff --git a/config_cmake.h.in b/config_cmake.h.in index 39c5c2545..c38807eb4 100644 --- a/config_cmake.h.in +++ b/config_cmake.h.in @@ -134,7 +134,7 @@ #define PACKAGE_NAME "fish" /* Define to 1 if tparm accepts a fixed amount of paramters. */ -// #cmakedefine TPARM_SOLARIS_KLUDGE 1 +#cmakedefine TPARM_SOLARIS_KLUDGE 1 /* The size of wchar_t in bits. */ #define WCHAR_T_BITS ${WCHAR_T_BITS}