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