cmake/macros.cmake
changeset 6674 45a21e50ba5e
child 7182 1089a8a701c3
equal deleted inserted replaced
6673:78f18a929123 6674:45a21e50ba5e
       
     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()