xref: /freebsd/contrib/ntp/sntp/libevent/cmake/Macros.cmake (revision a466cc55373fc3cf86837f09da729535b57e69a1)
1*a466cc55SCy Schubertinclude(CheckSymbolExists)
2*a466cc55SCy Schubertinclude(CheckIncludeFiles)
3*a466cc55SCy Schubert
4*a466cc55SCy Schubert# Check if each symbol in the symbol list exists,
5*a466cc55SCy Schubert# and define PREFIX__HAVE_SYMNAME to 1 if yes.
6*a466cc55SCy Schubert#
7*a466cc55SCy Schubert# SYMLIST: list of symbols to check
8*a466cc55SCy Schubert# HEADERS: header files to be included in check code
9*a466cc55SCy Schubert# PREFIX: the prefix of definition
10*a466cc55SCy Schubertmacro(CHECK_SYMBOLS_EXIST SYMLIST HEADERS PREFIX)
11*a466cc55SCy Schubert  foreach(SYMNAME ${SYMLIST})
12*a466cc55SCy Schubert    string(TOUPPER "${SYMNAME}" SYMNAME_UPPER)
13*a466cc55SCy Schubert    if ("${PREFIX}" STREQUAL "")
14*a466cc55SCy Schubert      set(HAVE_SYM_DEF "HAVE_${SYMNAME_UPPER}")
15*a466cc55SCy Schubert    else()
16*a466cc55SCy Schubert      set(HAVE_SYM_DEF "${PREFIX}__HAVE_${SYMNAME_UPPER}")
17*a466cc55SCy Schubert    endif()
18*a466cc55SCy Schubert    CHECK_SYMBOL_EXISTS(${SYMNAME} "${HEADERS}" ${HAVE_SYM_DEF})
19*a466cc55SCy Schubert  endforeach()
20*a466cc55SCy Schubertendmacro()
21*a466cc55SCy Schubert
22*a466cc55SCy Schubert# Check if file exists, define PREFIX__HAVE_FILE to 1 if yes,
23*a466cc55SCy Schubert# and collect file to EVENT_INCLUDES
24*a466cc55SCy Schubertmacro(CHECK_INCLUDE_FILE_CONCAT FILE PREFIX)
25*a466cc55SCy Schubert  string(REGEX REPLACE "[./]" "_" FILE_UL ${FILE})
26*a466cc55SCy Schubert  string(TOUPPER "${FILE_UL}" FILE_UL_UPPER)
27*a466cc55SCy Schubert  if ("${PREFIX}" STREQUAL "")
28*a466cc55SCy Schubert    set(HAVE_FILE_DEF "HAVE_${FILE_UL_UPPER}")
29*a466cc55SCy Schubert  else()
30*a466cc55SCy Schubert    set(HAVE_FILE_DEF "${PREFIX}__HAVE_${FILE_UL_UPPER}")
31*a466cc55SCy Schubert  endif()
32*a466cc55SCy Schubert  CHECK_INCLUDE_FILES("${EVENT_INCLUDES};${FILE}" ${HAVE_FILE_DEF})
33*a466cc55SCy Schubert  if(${HAVE_FILE_DEF})
34*a466cc55SCy Schubert    set(EVENT_INCLUDES ${EVENT_INCLUDES} ${FILE})
35*a466cc55SCy Schubert  endif()
36*a466cc55SCy Schubertendmacro()
37