aboutsummaryrefslogtreecommitdiff
path: root/modules/MacroLogFeature.cmake
blob: dcb3c731915887924028eea3343a79e52196d08b (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
# This file defines two macros:
# MACRO_LOG_FEATURE(VAR FEATURE DESCRIPTION URL)
# Logs the information so that it can be displayed at the end
# of the configure run
# VAR : variable which is 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
#
# MACRO_DISPLAY_FEATURE_LOG()
# Call this at the end of the toplevel CMakeLists.txt to display the collected results
#
# Example:
#
# INCLUDE(MacroLogFeature)
#
# FIND_PACKAGE(JPEG)
# MACRO_LOG_FEATURE(JPEG_FOUND "libjpeg" "Support JPEG images" "http://www.ijg.org")
# ...
# MACRO_DISPLAY_FEATURE_LOG()



MACRO(MACRO_LOG_FEATURE _var _package _description _url)

   IF (NOT EXISTS "${CMAKE_BINARY_DIR}/EnabledFeatures.txt")
      FILE(WRITE "${CMAKE_BINARY_DIR}/EnabledFeatures.txt" "\n")
   ENDIF (NOT EXISTS "${CMAKE_BINARY_DIR}/EnabledFeatures.txt")

   IF (NOT EXISTS "${CMAKE_BINARY_DIR}/DisabledFeatures.txt")
      FILE(WRITE "${CMAKE_BINARY_DIR}/DisabledFeatures.txt" "\n")
   ENDIF (NOT EXISTS "${CMAKE_BINARY_DIR}/DisabledFeatures.txt")


   IF (${_var})
      SET(_LOGFILENAME ${CMAKE_BINARY_DIR}/EnabledFeatures.txt )
   ELSE (${_var})
      SET(_LOGFILENAME ${CMAKE_BINARY_DIR}/DisabledFeatures.txt)
   ENDIF (${_var})

   FILE(APPEND "${_LOGFILENAME}" "PACKAGE: ${_package}\nDESCRIPTION: ${_description}\nURL: ${_url}\n\n")

ENDMACRO(MACRO_LOG_FEATURE)


MACRO(MACRO_DISPLAY_FEATURE_LOG)
   IF (EXISTS "${CMAKE_BINARY_DIR}/EnabledFeatures.txt")
      FILE(READ ${CMAKE_BINARY_DIR}/EnabledFeatures.txt _features)
      MESSAGE(STATUS "Enabled features:\n${_features}")
      FILE(REMOVE ${CMAKE_BINARY_DIR}/EnabledFeatures.txt)
   ENDIF (EXISTS "${CMAKE_BINARY_DIR}/EnabledFeatures.txt")

   IF (EXISTS "${CMAKE_BINARY_DIR}/DisabledFeatures.txt")
      FILE(READ ${CMAKE_BINARY_DIR}/DisabledFeatures.txt _features)
      MESSAGE(STATUS "Disabled features:\n${_features}")
      FILE(REMOVE ${CMAKE_BINARY_DIR}/DisabledFeatures.txt)
   ENDIF (EXISTS "${CMAKE_BINARY_DIR}/DisabledFeatures.txt")
ENDMACRO(MACRO_DISPLAY_FEATURE_LOG)