mirror of https://github.com/rspamd/rspamd.git
Rapid spam filtering system
https://rspamd.com/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
139 lines
4.4 KiB
139 lines
4.4 KiB
# CheckSystemHeaders.cmake
|
|
# Checks for the existence of system headers
|
|
|
|
# Check platform specific includes
|
|
function(CheckSystemHeaders)
|
|
# Basic system headers
|
|
check_include_files(sys/types.h HAVE_SYS_TYPES_H)
|
|
check_include_files(sys/uio.h HAVE_SYS_UIO_H)
|
|
|
|
# Standard C headers
|
|
check_include_files(fcntl.h HAVE_FCNTL_H)
|
|
check_include_files(math.h HAVE_MATH_H)
|
|
check_include_files(stdio.h HAVE_STDIO_H)
|
|
check_include_files(stdlib.h HAVE_STDLIB_H)
|
|
check_include_files(string.h HAVE_STRING_H)
|
|
check_include_files(strings.h HAVE_STRINGS_H)
|
|
check_include_files(time.h HAVE_TIME_H)
|
|
check_include_files(unistd.h HAVE_UNISTD_H)
|
|
|
|
# Data type headers
|
|
check_include_files(stdint.h HAVE_STDINT_H)
|
|
check_include_files(inttypes.h HAVE_INTTYPES_H)
|
|
check_include_files(stdbool.h HAVE_STDBOOL_H)
|
|
|
|
# Endian-related headers
|
|
check_include_files(endian.h HAVE_ENDIAN_H)
|
|
check_include_files(sys/endian.h HAVE_SYS_ENDIAN_H)
|
|
check_include_files(machine/endian.h HAVE_MACHINE_ENDIAN_H)
|
|
|
|
# System utility headers
|
|
check_include_files(sys/socket.h HAVE_SYS_SOCKET_H)
|
|
check_include_files(sys/mman.h HAVE_SYS_MMAN_H)
|
|
check_include_files(sys/un.h HAVE_SYS_UN_H)
|
|
check_include_files(sys/stat.h HAVE_SYS_STAT_H)
|
|
check_include_files(sys/wait.h HAVE_SYS_WAIT_H)
|
|
check_include_files(sys/param.h HAVE_SYS_PARAM_H)
|
|
check_include_files(sys/file.h HAVE_SYS_FILE_H)
|
|
check_include_files(sys/resource.h HAVE_SYS_RESOURCE_H)
|
|
|
|
# Network-related headers
|
|
check_include_files(netinet/in.h HAVE_NETINET_IN_H)
|
|
check_include_files(netinet/tcp.h HAVE_NETINET_TCP_H)
|
|
check_include_files(arpa/inet.h HAVE_ARPA_INET_H)
|
|
check_include_files(netdb.h HAVE_NETDB_H)
|
|
|
|
# System logging and signal handling
|
|
check_include_files(syslog.h HAVE_SYSLOG_H)
|
|
check_include_files(siginfo.h HAVE_SIGINFO_H)
|
|
|
|
# Internationalization and user/groups
|
|
check_include_files(locale.h HAVE_LOCALE_H)
|
|
check_include_files(libgen.h HAVE_LIBGEN_H)
|
|
check_include_files(pwd.h HAVE_PWD_H)
|
|
check_include_files(grp.h HAVE_GRP_H)
|
|
|
|
# File and path handling
|
|
check_include_files(glob.h HAVE_GLOB_H)
|
|
check_include_files(poll.h HAVE_POLL_H)
|
|
check_include_files(readpassphrase.h HAVE_READPASSPHRASE_H)
|
|
check_include_files(termios.h HAVE_TERMIOS_H)
|
|
check_include_files(paths.h HAVE_PATHS_H)
|
|
|
|
# Other utilities
|
|
check_include_files(ctype.h HAVE_CTYPE_H)
|
|
check_include_files(cpuid.h HAVE_CPUID_H)
|
|
check_include_files(dirent.h HAVE_DIRENT_H)
|
|
|
|
# Context-related headers
|
|
check_include_files(ucontext.h HAVE_UCONTEXT_H)
|
|
check_include_files(sys/ucontext.h HAVE_SYS_UCONTEXT_H) # OSX specific
|
|
|
|
# Time and memory
|
|
check_include_files(sys/timeb.h HAVE_SYS_TIMEB_H)
|
|
|
|
# Log the results for important headers
|
|
if (NOT HAVE_SYS_TYPES_H)
|
|
message(WARNING "sys/types.h not found - this may cause problems")
|
|
endif ()
|
|
|
|
if (NOT HAVE_SYS_SOCKET_H)
|
|
message(WARNING "sys/socket.h not found - networking functionality may be limited")
|
|
endif ()
|
|
|
|
# Return results to parent scope
|
|
foreach (var
|
|
HAVE_SYS_TYPES_H
|
|
HAVE_SYS_UIO_H
|
|
HAVE_FCNTL_H
|
|
HAVE_MATH_H
|
|
HAVE_STDIO_H
|
|
HAVE_STDLIB_H
|
|
HAVE_STRING_H
|
|
HAVE_STRINGS_H
|
|
HAVE_TIME_H
|
|
HAVE_UNISTD_H
|
|
HAVE_STDINT_H
|
|
HAVE_INTTYPES_H
|
|
HAVE_STDBOOL_H
|
|
HAVE_ENDIAN_H
|
|
HAVE_SYS_ENDIAN_H
|
|
HAVE_MACHINE_ENDIAN_H
|
|
HAVE_SYS_SOCKET_H
|
|
HAVE_SYS_MMAN_H
|
|
HAVE_SYS_UN_H
|
|
HAVE_SYS_STAT_H
|
|
HAVE_SYS_WAIT_H
|
|
HAVE_SYS_PARAM_H
|
|
HAVE_SYS_FILE_H
|
|
HAVE_SYS_RESOURCE_H
|
|
HAVE_NETINET_IN_H
|
|
HAVE_NETINET_TCP_H
|
|
HAVE_ARPA_INET_H
|
|
HAVE_NETDB_H
|
|
HAVE_SYSLOG_H
|
|
HAVE_SIGINFO_H
|
|
HAVE_LOCALE_H
|
|
HAVE_LIBGEN_H
|
|
HAVE_PWD_H
|
|
HAVE_GRP_H
|
|
HAVE_GLOB_H
|
|
HAVE_POLL_H
|
|
HAVE_READPASSPHRASE_H
|
|
HAVE_TERMIOS_H
|
|
HAVE_PATHS_H
|
|
HAVE_CTYPE_H
|
|
HAVE_UNISTD_H
|
|
HAVE_CPUID_H
|
|
HAVE_DIRENT_H
|
|
HAVE_UCONTEXT_H
|
|
HAVE_SYS_UCONTEXT_H
|
|
HAVE_SYS_TIMEB_H)
|
|
if (${var})
|
|
set(${var} ${${var}} PARENT_SCOPE)
|
|
endif ()
|
|
endforeach ()
|
|
endfunction()
|
|
|
|
# Execute the function
|
|
CheckSystemHeaders()
|