sdl

FORK: Simple Directmedia Layer
git clone https://git.neptards.moe/neptards/sdl.git
Log | Files | Refs

macros.cmake (1893B)


      1 macro(SET_OPTION _NAME _DESC)
      2   list(APPEND ALLOPTIONS ${_NAME})
      3   if(${ARGC} EQUAL 3)
      4     set(_DEFLT ${ARGV2})
      5   else()
      6     set(_DEFLT OFF)
      7   endif()
      8   option(${_NAME} ${_DESC} ${_DEFLT})
      9 endmacro()
     10 
     11 macro(DEP_OPTION _NAME _DESC _DEFLT _DEPTEST _FAILDFLT)
     12   list(APPEND ALLOPTIONS ${_NAME})
     13   cmake_dependent_option(${_NAME} ${_DESC} ${_DEFLT} ${_DEPTEST} ${_FAILDFLT})
     14 endmacro()
     15 
     16 macro(OPTION_STRING _NAME _DESC _VALUE)
     17   list(APPEND ALLOPTIONS ${_NAME})
     18   set(${_NAME} ${_VALUE} CACHE STRING "${_DESC}")
     19   set(HAVE_${_NAME} ${_VALUE})
     20 ENDMACRO()
     21 
     22 # Message Output
     23 macro(MESSAGE_WARN _TEXT)
     24   message(STATUS "*** WARNING: ${_TEXT}")
     25 endmacro()
     26 
     27 macro(MESSAGE_ERROR _TEXT)
     28   message(FATAL_ERROR "*** ERROR: ${_TEXT}")
     29 endmacro()
     30 
     31 macro(MESSAGE_BOOL_OPTION _NAME _VALUE)
     32   if(${_VALUE})
     33     message(STATUS "  ${_NAME}:\tON")
     34   else()
     35     message(STATUS "  ${_NAME}:\tOFF")
     36   endif()
     37 endmacro()
     38 
     39 macro(MESSAGE_TESTED_OPTION _NAME)
     40   set(_REQVALUE ${${_NAME}})
     41   set(_PAD " ")
     42   if(${ARGC} EQUAL 2)
     43     set(_PAD ${ARGV1})
     44   endif()
     45   if(NOT HAVE_${_NAME})
     46     set(HAVE_${_NAME} OFF)
     47   elseif("${HAVE_${_NAME}}" MATCHES "1|TRUE|YES|Y")
     48     set(HAVE_${_NAME} ON)
     49   endif()
     50   message(STATUS "  ${_NAME}${_PAD}(Wanted: ${_REQVALUE}): ${HAVE_${_NAME}}")
     51 endmacro()
     52 
     53 macro(LISTTOSTR _LIST _OUTPUT)
     54   if(${ARGC} EQUAL 3)
     55     # prefix for each element
     56     set(_LPREFIX ${ARGV2})
     57   else()
     58     set(_LPREFIX "")
     59   endif()
     60   # Do not use string(REPLACE ";" " ") here to avoid messing up list
     61   # entries
     62   foreach(_ITEM ${${_LIST}})
     63     set(${_OUTPUT} "${_LPREFIX}${_ITEM} ${${_OUTPUT}}")
     64   endforeach()
     65 endmacro()
     66 
     67 macro(CHECK_OBJC_SOURCE_COMPILES SOURCE VAR)
     68   set(PREV_REQUIRED_DEFS "${CMAKE_REQUIRED_DEFINITIONS}")
     69   set(CMAKE_REQUIRED_DEFINITIONS "-x objective-c ${PREV_REQUIRED_DEFS}")
     70   CHECK_C_SOURCE_COMPILES(${SOURCE} ${VAR})
     71   set(CMAKE_REQUIRED_DEFINITIONS "${PREV_REQUIRED_DEFS}")
     72 endmacro()
     73