| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 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
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 138
 139
 140
 141
 142
 143
 144
 145
 146
 147
 148
 149
 150
 151
 152
 153
 154
 155
 156
 157
 
 | # This file defines the Feature Logging macros.
#
# MACRO_LOG_FEATURE(VAR FEATURE DESCRIPTION URL [REQUIRED [MIN_VERSION [COMMENTS]]])
#   Logs the information so that it can be displayed at the end
#   of the configure run
#   VAR : TRUE or FALSE, indicating whether the feature is supported
#   FEATURE: name of the feature, e.g. "libjpeg"
#   DESCRIPTION: description what this feature provides
#   URL: home page
#   REQUIRED: TRUE or FALSE, indicating whether the featue is required
#   MIN_VERSION: minimum version number. empty string if unneeded
#   COMMENTS: More info you may want to provide.  empty string if unnecessary
#
# MACRO_DISPLAY_FEATURE_LOG()
#   Call this to display the collected results.
#   Exits CMake with a FATAL error message if a required feature is missing
#
# Example:
#
# INCLUDE(MacroLogFeature)
#
# FIND_PACKAGE(JPEG)
# MACRO_LOG_FEATURE(JPEG_FOUND "libjpeg" "Support JPEG images" "http://www.ijg.org" TRUE "3.2a" "")
# ...
# MACRO_DISPLAY_FEATURE_LOG()
# Copyright (c) 2006, Alexander Neundorf, <neundorf@kde.org>
# Copyright (c) 2006, Allen Winter, <winter@kde.org>
# Copyright (c) 2009, Sebastian Trueg, <trueg@kde.org>
#
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
IF (NOT _macroLogFeatureAlreadyIncluded)
   SET(_file ${CMAKE_BINARY_DIR}/MissingRequirements.txt)
   IF (EXISTS ${_file})
      FILE(REMOVE ${_file})
   ENDIF (EXISTS ${_file})
   SET(_file ${CMAKE_BINARY_DIR}/EnabledFeatures.txt)
   IF (EXISTS ${_file})
      FILE(REMOVE ${_file})
   ENDIF (EXISTS ${_file})
   SET(_file ${CMAKE_BINARY_DIR}/DisabledFeatures.txt)
   IF (EXISTS ${_file})
      FILE(REMOVE ${_file})
  ENDIF (EXISTS ${_file})
  SET(_macroLogFeatureAlreadyIncluded TRUE)
  INCLUDE(FeatureSummary)
ENDIF (NOT _macroLogFeatureAlreadyIncluded)
MACRO(MACRO_LOG_FEATURE _var _package _description _url ) # _required _minvers _comments)
   STRING(TOUPPER "${ARGV4}" _required)
   SET(_minvers "${ARGV5}")
   SET(_comments "${ARGV6}")
   IF (${_var})
     SET(_LOGFILENAME ${CMAKE_BINARY_DIR}/EnabledFeatures.txt)
   ELSE (${_var})
     IF ("${_required}" STREQUAL "TRUE")
       SET(_LOGFILENAME ${CMAKE_BINARY_DIR}/MissingRequirements.txt)
     ELSE ("${_required}" STREQUAL "TRUE")
       SET(_LOGFILENAME ${CMAKE_BINARY_DIR}/DisabledFeatures.txt)
     ENDIF ("${_required}" STREQUAL "TRUE")
   ENDIF (${_var})
   SET(_logtext "   * ${_package}")
   IF (NOT ${_var})
      IF (${_minvers} MATCHES ".*")
        SET(_logtext "${_logtext} (${_minvers} or higher)")
      ENDIF (${_minvers} MATCHES ".*")
      SET(_logtext "${_logtext}  <${_url}>\n     ")
   ELSE (NOT ${_var})
     SET(_logtext "${_logtext} - ")
   ENDIF (NOT ${_var})
   SET(_logtext "${_logtext}${_description}")
   IF (NOT ${_var})
      IF (${_comments} MATCHES ".*")
        SET(_logtext "${_logtext}\n     ${_comments}")
      ENDIF (${_comments} MATCHES ".*")
#      SET(_logtext "${_logtext}\n") #double-space missing features?
   ENDIF (NOT ${_var})
   FILE(APPEND "${_LOGFILENAME}" "${_logtext}\n")
   IF(COMMAND SET_PACKAGE_INFO)  # in FeatureSummary.cmake since CMake 2.8.3
     SET_PACKAGE_INFO("${_package}" "\"${_description}\"" "${_url}" "\"${_comments}\"")
   ENDIF(COMMAND SET_PACKAGE_INFO)
ENDMACRO(MACRO_LOG_FEATURE)
MACRO(MACRO_DISPLAY_FEATURE_LOG)
   IF(COMMAND FEATURE_SUMMARY) # in FeatureSummary.cmake since CMake 2.8.3
      FEATURE_SUMMARY(FILENAME ${CMAKE_CURRENT_BINARY_DIR}/FindPackageLog.txt
                      WHAT ALL)
   ENDIF(COMMAND FEATURE_SUMMARY)
   SET(_missingFile ${CMAKE_BINARY_DIR}/MissingRequirements.txt)
   SET(_enabledFile ${CMAKE_BINARY_DIR}/EnabledFeatures.txt)
   SET(_disabledFile ${CMAKE_BINARY_DIR}/DisabledFeatures.txt)
   IF (EXISTS ${_missingFile} OR EXISTS ${_enabledFile} OR EXISTS ${_disabledFile})
     SET(_printSummary TRUE)
   ENDIF (EXISTS ${_missingFile} OR EXISTS ${_enabledFile} OR EXISTS ${_disabledFile})
   IF(_printSummary)
     SET(_missingDeps 0)
     IF (EXISTS ${_enabledFile})
       FILE(READ ${_enabledFile} _enabled)
       FILE(REMOVE ${_enabledFile})
       SET(_summary "${_summary}\n-----------------------------------------------------------------------------\n-- The following external packages were located on your system.\n-- This installation will have the extra features provided by these packages.\n-----------------------------------------------------------------------------\n${_enabled}")
     ENDIF (EXISTS ${_enabledFile})
     IF (EXISTS ${_disabledFile})
       SET(_missingDeps 1)
       FILE(READ ${_disabledFile} _disabled)
       FILE(REMOVE ${_disabledFile})
       SET(_summary "${_summary}\n-----------------------------------------------------------------------------\n-- The following OPTIONAL packages could NOT be located on your system.\n-- Consider installing them to enable more features from this software.\n-----------------------------------------------------------------------------\n${_disabled}")
     ENDIF (EXISTS ${_disabledFile})
     IF (EXISTS ${_missingFile})
       SET(_missingDeps 1)
       FILE(READ ${_missingFile} _requirements)
       SET(_summary "${_summary}\n-----------------------------------------------------------------------------\n-- The following REQUIRED packages could NOT be located on your system.\n-- You must install these packages before continuing.\n-----------------------------------------------------------------------------\n${_requirements}")
       FILE(REMOVE ${_missingFile})
       SET(_haveMissingReq 1)
     ENDIF (EXISTS ${_missingFile})
     IF (NOT ${_missingDeps})
       SET(_summary "${_summary}\n-----------------------------------------------------------------------------\n-- Congratulations! All external packages have been found.")
     ENDIF (NOT ${_missingDeps})
     MESSAGE(${_summary})
     MESSAGE("-----------------------------------------------------------------------------\n")
     IF(_haveMissingReq)
       MESSAGE(FATAL_ERROR "Exiting: Missing Requirements")
     ENDIF(_haveMissingReq)
   ENDIF(_printSummary)
ENDMACRO(MACRO_DISPLAY_FEATURE_LOG)
 |