"Fossies" - the Fresh Open Source Software Archive

Member "evolution-mapi-3.46.1/cmake/modules/PrintableOptions.cmake" (2 Dec 2022, 2703 Bytes) of package /linux/misc/evolution-mapi-3.46.1.tar.xz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) CMake source code syntax highlighting (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file.

    1 # PrintableOptions.cmake
    2 #
    3 # Provides functions to manage printable options,
    4 # which can be printed at the end of the configuration
    5 #
    6 # add_printable_variable_bare(_name)
    7 #    adds variable named _name to the list of prinable options
    8 #
    9 # add_printable_option(_name _description _default_value)
   10 #    the same as option() command, only also notes this option for later printing
   11 #
   12 # add_printable_variable(_name _description _default_value)
   13 #    sets a new cached STRING variable and adds it to the list of printable options
   14 #
   15 # add_printable_variable_path(_name _description _default_value)
   16 #    sets a new cached PATH variable and adds it to the list of printable options
   17 #
   18 # print_build_options()
   19 #    prints all the build options previously added with the above functions
   20 
   21 macro(add_printable_variable_bare _name)
   22     if("${_name}" STREQUAL "")
   23         message(FATAL_ERROR "variable name cannot be empty")
   24     endif("${_name}" STREQUAL "")
   25     list(APPEND _printable_options ${_name})
   26 endmacro()
   27 
   28 macro(add_printable_option _name _description _default_value)
   29     if("${_name}" STREQUAL "")
   30         message(FATAL_ERROR "option name cannot be empty")
   31     endif("${_name}" STREQUAL "")
   32     option(${_name} ${_description} ${_default_value})
   33     add_printable_variable_bare(${_name})
   34 endmacro()
   35 
   36 macro(add_printable_variable _name _description _default_value)
   37     if("${_name}" STREQUAL "")
   38         message(FATAL_ERROR "variable name cannot be empty")
   39     endif("${_name}" STREQUAL "")
   40     set(${_name} ${_default_value} CACHE STRING ${_description})
   41     add_printable_variable_bare(${_name})
   42 endmacro()
   43 
   44 macro(add_printable_variable_path _name _description _default_value)
   45     if("${_name}" STREQUAL "")
   46         message(FATAL_ERROR "path variable name cannot be empty")
   47     endif("${_name}" STREQUAL "")
   48     set(${_name} ${_default_value} CACHE PATH ${_description})
   49     add_printable_variable_bare(${_name})
   50 endmacro()
   51 
   52 macro(add_printable_variable_filepath _name _description _default_value)
   53     if("${_name}" STREQUAL "")
   54         message(FATAL_ERROR "filepath variable name cannot be empty")
   55     endif("${_name}" STREQUAL "")
   56     set(${_name} ${_default_value} CACHE FILEPATH ${_description})
   57     add_printable_variable_bare(${_name})
   58 endmacro()
   59 
   60 function(print_build_options)
   61     message(STATUS "Configure options:")
   62 
   63     set(max_len 0)
   64     foreach(opt IN LISTS _printable_options)
   65         string(LENGTH "${opt}" len)
   66         if(max_len LESS len)
   67             set(max_len ${len})
   68         endif(max_len LESS len)
   69     endforeach()
   70     math(EXPR max_len "${max_len} + 2")
   71 
   72     foreach(opt IN LISTS _printable_options)
   73         string(LENGTH "${opt}" len)
   74         set(str "   ${opt} ")
   75         foreach (IGNORE RANGE ${len} ${max_len})
   76             set(str "${str}.")
   77         endforeach ()
   78         set(str "${str} ${${opt}}")
   79 
   80         message(STATUS ${str})
   81     endforeach()
   82 endfunction()