diff --git a/cmake/ConfigureChecks.cmake b/cmake/ConfigureChecks.cmake index 4eb8e64fc..6e1168e73 100644 --- a/cmake/ConfigureChecks.cmake +++ b/cmake/ConfigureChecks.cmake @@ -17,38 +17,38 @@ ENDIF() # Set up the config.h file. SET(PACKAGE_NAME "fish") SET(PACKAGE_TARNAME "fish") -INCLUDE(CheckFunctionExists) INCLUDE(CheckCXXSymbolExists) INCLUDE(CheckIncludeFileCXX) INCLUDE(CheckIncludeFiles) INCLUDE(CheckStructHasMember) INCLUDE(CheckCXXSourceCompiles) INCLUDE(CheckTypeSize) -CHECK_FUNCTION_EXISTS(backtrace_symbols HAVE_BACKTRACE_SYMBOLS) -CHECK_FUNCTION_EXISTS(clock_gettime HAVE_CLOCK_GETTIME) -CHECK_FUNCTION_EXISTS(ctermid_r HAVE_CTERMID_R) +CHECK_CXX_SYMBOL_EXISTS(backtrace_symbols execinfo.h HAVE_BACKTRACE_SYMBOLS) +CHECK_CXX_SYMBOL_EXISTS(clock_gettime time.h HAVE_CLOCK_GETTIME) +CHECK_CXX_SYMBOL_EXISTS(ctermid_r stdio.h HAVE_CTERMID_R) CHECK_STRUCT_HAS_MEMBER("struct dirent" d_type dirent.h HAVE_STRUCT_DIRENT_D_TYPE LANGUAGE CXX) -CHECK_FUNCTION_EXISTS(dirfd HAVE_DIRFD) +CHECK_CXX_SYMBOL_EXISTS(dirfd "sys/types.h;dirent.h" HAVE_DIRFD) CHECK_INCLUDE_FILE_CXX(execinfo.h HAVE_EXECINFO_H) -CHECK_FUNCTION_EXISTS(flock HAVE_FLOCK) +CHECK_CXX_SYMBOL_EXISTS(flock sys/file.h HAVE_FLOCK) # futimens is new in OS X 10.13 but is a weak symbol. # Don't assume it exists just because we can link - it may be null. CHECK_CXX_SYMBOL_EXISTS(futimens sys/stat.h HAVE_FUTIMENS) -CHECK_FUNCTION_EXISTS(futimes HAVE_FUTIMES) -CHECK_FUNCTION_EXISTS(getifaddrs HAVE_GETIFADDRS) -CHECK_FUNCTION_EXISTS(getpwent HAVE_GETPWENT) -CHECK_FUNCTION_EXISTS(gettext HAVE_GETTEXT) -CHECK_FUNCTION_EXISTS(killpg HAVE_KILLPG) -CHECK_FUNCTION_EXISTS(lrand48_r HAVE_LRAND48_R) -CHECK_FUNCTION_EXISTS(mkostemp HAVE_MKOSTEMP) +CHECK_CXX_SYMBOL_EXISTS(futimes sys/time.h HAVE_FUTIMES) +CHECK_CXX_SYMBOL_EXISTS(getifaddrs ifaddrs.h HAVE_GETIFADDRS) +CHECK_CXX_SYMBOL_EXISTS(getpwent pwd.h HAVE_GETPWENT) +CHECK_CXX_SYMBOL_EXISTS(gettext libintl.h HAVE_GETTEXT) +CHECK_CXX_SYMBOL_EXISTS(killpg "sys/types.h;signal.h" HAVE_KILLPG) +CHECK_CXX_SYMBOL_EXISTS(lrand48_r stdlib.h HAVE_LRAND48_R) +# mkostemp is in stdlib in glibc and FreeBSD, but unistd on macOS +CHECK_CXX_SYMBOL_EXISTS(mkostemp "stdlib.h;unistd.h" HAVE_MKOSTEMP) SET(HAVE_NCURSES_CURSES_H ${CURSES_HAVE_NCURSES_CURSES_H}) SET(HAVE_NCURSES_H ${CURSES_HAVE_NCURSES_H}) CHECK_INCLUDE_FILE_CXX("ncurses/term.h" HAVE_NCURSES_TERM_H) CHECK_INCLUDE_FILE_CXX(siginfo.h HAVE_SIGINFO_H) CHECK_INCLUDE_FILE_CXX(spawn.h HAVE_SPAWN_H) -CHECK_FUNCTION_EXISTS(std::wcscasecmp HAVE_STD__WCSCASECMP) -CHECK_FUNCTION_EXISTS(std::wcsdup HAVE_STD__WCSDUP) -CHECK_FUNCTION_EXISTS(std::wcsncasecmp HAVE_STD__WCSNCASECMP) +CHECK_CXX_SYMBOL_EXISTS(std::wcscasecmp wchar.h HAVE_STD__WCSCASECMP) +CHECK_CXX_SYMBOL_EXISTS(std::wcsdup wchar.h HAVE_STD__WCSDUP) +CHECK_CXX_SYMBOL_EXISTS(std::wcsncasecmp wchar.h HAVE_STD__WCSNCASECMP) CHECK_STRUCT_HAS_MEMBER("struct stat" st_ctime_nsec "sys/stat.h" HAVE_STRUCT_STAT_ST_CTIME_NSEC LANGUAGE CXX) CHECK_STRUCT_HAS_MEMBER("struct stat" st_mtimespec.tv_nsec "sys/stat.h" @@ -61,11 +61,11 @@ CHECK_INCLUDE_FILE_CXX(sys/select.h HAVE_SYS_SELECT_H) CHECK_INCLUDE_FILES("sys/types.h;sys/sysctl.h" HAVE_SYS_SYSCTL_H) CHECK_INCLUDE_FILE_CXX(termios.h HAVE_TERMIOS_H) # Needed for TIOCGWINSZ CHECK_INCLUDE_FILE_CXX(term.h HAVE_TERM_H) -CHECK_FUNCTION_EXISTS(wcscasecmp HAVE_WCSCASECMP) -CHECK_FUNCTION_EXISTS(wcsdup HAVE_WCSDUP) -CHECK_FUNCTION_EXISTS(wcslcpy HAVE_WCSLCPY) -CHECK_FUNCTION_EXISTS(wcsncasecmp HAVE_WCSNCASECMP) -CHECK_FUNCTION_EXISTS(wcsndup HAVE_WCSNDUP) +CHECK_CXX_SYMBOL_EXISTS(wcscasecmp wchar.h HAVE_WCSCASECMP) +CHECK_CXX_SYMBOL_EXISTS(wcsdup wchar.h HAVE_WCSDUP) +CHECK_CXX_SYMBOL_EXISTS(wcslcpy wchar.h HAVE_WCSLCPY) +CHECK_CXX_SYMBOL_EXISTS(wcsncasecmp wchar.h HAVE_WCSNCASECMP) +CHECK_CXX_SYMBOL_EXISTS(wcsndup wchar.h HAVE_WCSNDUP) CHECK_CXX_SYMBOL_EXISTS(_sys_errs stdlib.h HAVE__SYS__ERRS)