tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

Macros.cmake (1217B)


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