blob: 434fefb94d797a6e1149fd7a9ef224cf32b531de (
plain)
1
2
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
|
# 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()
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)
ENDIF (NOT _macroLogFeatureAlreadyIncluded)
MACRO(MACRO_LOG_FEATURE _var _package _description _url ) # _required _minvers _comments)
SET(_required "${ARGV4}")
SET(_minvers "${ARGV5}")
SET(_comments "${ARGV6}")
IF (${_var})
SET(_LOGFILENAME ${CMAKE_BINARY_DIR}/EnabledFeatures.txt )
ELSE (${_var})
IF (${_required} MATCHES "[Tt][Rr][Uu][Ee]")
SET(_LOGFILENAME ${CMAKE_BINARY_DIR}/MissingRequirements.txt)
ELSE (${_required} MATCHES "[Tt][Rr][Uu][Ee]")
SET(_LOGFILENAME ${CMAKE_BINARY_DIR}/DisabledFeatures.txt)
ENDIF (${_required} MATCHES "[Tt][Rr][Uu][Ee]")
ENDIF (${_var})
IF (NOT EXISTS ${_LOGFILENAME})
FILE(WRITE ${_LOGFILENAME} "\n")
ENDIF (NOT EXISTS ${_LOGFILENAME})
FILE(APPEND "${_LOGFILENAME}" "=======================================\n")
FILE(APPEND "${_LOGFILENAME}" "PACKAGE: ${_package}\n")
FILE(APPEND "${_LOGFILENAME}" "DESCRIPTION: ${_description}\n")
FILE(APPEND "${_LOGFILENAME}" "URL: ${_url}\n")
IF (${_minvers} MATCHES ".*")
FILE(APPEND "${_LOGFILENAME}" "VERSION: ${_minvers}\n")
ENDIF (${_minvers} MATCHES ".*")
IF (${_comments} MATCHES ".*")
FILE(APPEND "${_LOGFILENAME}" "COMMENTS: ${_comments}\n")
ENDIF (${_comments} MATCHES ".*")
ENDMACRO(MACRO_LOG_FEATURE)
MACRO(MACRO_DISPLAY_FEATURE_LOG)
SET(_file ${CMAKE_BINARY_DIR}/MissingRequirements.txt )
IF (EXISTS ${_file})
FILE(APPEND ${_file} "=======================================")
FILE(READ ${_file} _requirements)
MESSAGE(STATUS "\nMissing Requirements:${_requirements}")
FILE(REMOVE ${_file})
MESSAGE(FATAL_ERROR "Exiting: Missing Requirements")
ENDIF (EXISTS ${_file})
SET(_file ${CMAKE_BINARY_DIR}/EnabledFeatures.txt )
IF (EXISTS ${_file})
FILE(APPEND ${_file} "=======================================")
FILE(READ ${_file} _enabled)
MESSAGE(STATUS "\nEnabled Features:${_enabled}")
FILE(REMOVE ${_file})
ENDIF (EXISTS ${_file})
SET(_file ${CMAKE_BINARY_DIR}/DisabledFeatures.txt )
IF (EXISTS ${_file})
FILE(APPEND ${_file} "=======================================")
FILE(READ ${_file} _disabled)
MESSAGE(STATUS "\nDisabled Features:${_disabled}")
FILE(REMOVE ${_file})
ENDIF (EXISTS ${_file})
ENDMACRO(MACRO_DISPLAY_FEATURE_LOG)
|