FeatureSummary.cmake 2.36 KB
Newer Older
Alexander Neundorf's avatar
 
Alexander Neundorf committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# - Macros for generating a summary of enabled/disabled features
#
# PRINT_ENABLED_FEATURES()
#   Print a summary of all enabled features. By default all successfull
#   FIND_PACKAGE() calls will appear here, except the ones which used the QUIET keyword.
#   Additional features can be added by appending an entry to the global ENABLED_FEATURES
#   property. If SET_FEATURE_INFO() is used for that feature, the output will be much 
#   more informative.
#
# PRINT_DISABLED_FEATURES()
#   Same as PRINT_ENABLED_FEATURES(), but for disabled features. It can be extended
#   the same way by adding to the global property DISABLED_FEATURES.
#
# SET_FEATURE_INFO(NAME DESCRIPTION [URL [COMMENT] ] )
#    Use this macro to set up information about the named feature, which will
#    then be displayed by PRINT_ENABLED/DISABLED_FEATURES().
#    Example: SET_FEATURE_INFO(LibXml2 "XML processing library." "http://xmlsoft.org/")
#


MACRO(SET_FEATURE_INFO _name _desc)
  SET(_url "${ARGV2}")
  SET(_comment "${ARGV3}")
24
  SET_PROPERTY(GLOBAL PROPERTY ${_name}_DESCRIPTION "${_desc}" )
Alexander Neundorf's avatar
 
Alexander Neundorf committed
25
  IF(_url MATCHES ".+")
26
    SET_PROPERTY(GLOBAL PROPERTY ${_name}_URL "${_url}" )
Alexander Neundorf's avatar
 
Alexander Neundorf committed
27
28
  ENDIF(_url MATCHES ".+")
  IF(_comment MATCHES ".+")
29
    SET_PROPERTY(GLOBAL PROPERTY ${_name}_COMMENT "${_comment}" )
Alexander Neundorf's avatar
 
Alexander Neundorf committed
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
  ENDIF(_comment MATCHES ".+")
ENDMACRO(SET_FEATURE_INFO)


MACRO(_PRINT_FEATURES _property _text)
  SET(_currentFeatureText "${_text}")
  GET_PROPERTY(_EnabledFeatures  GLOBAL  ${_property})
  FOREACH(_currentFeature ${_EnabledFeatures})
    SET(_currentFeatureText "${_currentFeatureText}\n${_currentFeature}")
    GET_PROPERTY(_info  GLOBAL  ${_currentFeature}_DESCRIPTION)
    IF(_info)
      SET(_currentFeatureText "${_currentFeatureText} , ${_info}")
    ENDIF(_info)
    GET_PROPERTY(_info  GLOBAL  ${_currentFeature}_URL)
    IF(_info)
      SET(_currentFeatureText "${_currentFeatureText} , <${_info}>")
    ENDIF(_info)
    GET_PROPERTY(_info  GLOBAL  ${_currentFeature}_COMMENT)
    IF(_info)
      SET(_currentFeatureText "${_currentFeatureText} , ${_info}")
    ENDIF(_info)
  ENDFOREACH(_currentFeature)
  MESSAGE(STATUS "${_currentFeatureText}\n")
ENDMACRO(_PRINT_FEATURES)


MACRO(PRINT_ENABLED_FEATURES)
   _PRINT_FEATURES( ENABLED_FEATURES "Enabled features:")
ENDMACRO(PRINT_ENABLED_FEATURES)


MACRO(PRINT_DISABLED_FEATURES)
   _PRINT_FEATURES( DISABLED_FEATURES "Disabled features:")
ENDMACRO(PRINT_DISABLED_FEATURES)