include(CheckSymbolExists) include(CheckIncludeFiles) # Check if each symbol in the symbol list exists, # and define PREFIX__HAVE_SYMNAME to 1 if yes. # # SYMLIST: list of symbols to check # HEADERS: header files to be included in check code # PREFIX: the prefix of definition macro(CHECK_SYMBOLS_EXIST SYMLIST HEADERS PREFIX) foreach(SYMNAME ${SYMLIST}) string(TOUPPER "${SYMNAME}" SYMNAME_UPPER) if ("${PREFIX}" STREQUAL "") set(HAVE_SYM_DEF "HAVE_${SYMNAME_UPPER}") else() set(HAVE_SYM_DEF "${PREFIX}__HAVE_${SYMNAME_UPPER}") endif() CHECK_SYMBOL_EXISTS(${SYMNAME} "${HEADERS}" ${HAVE_SYM_DEF}) endforeach() endmacro() # Check if file exists, define PREFIX__HAVE_FILE to 1 if yes, # and collect file to EVENT_INCLUDES macro(CHECK_INCLUDE_FILE_CONCAT FILE PREFIX) string(REGEX REPLACE "[./]" "_" FILE_UL ${FILE}) string(TOUPPER "${FILE_UL}" FILE_UL_UPPER) if ("${PREFIX}" STREQUAL "") set(HAVE_FILE_DEF "HAVE_${FILE_UL_UPPER}") else() set(HAVE_FILE_DEF "${PREFIX}__HAVE_${FILE_UL_UPPER}") endif() CHECK_INCLUDE_FILES("${EVENT_INCLUDES};${FILE}" ${HAVE_FILE_DEF}) if(${HAVE_FILE_DEF}) set(EVENT_INCLUDES ${EVENT_INCLUDES} ${FILE}) endif() endmacro()