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