aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--modules/MacroLogFeature.cmake58
1 files changed, 58 insertions, 0 deletions
diff --git a/modules/MacroLogFeature.cmake b/modules/MacroLogFeature.cmake
new file mode 100644
index 00000000..dcb3c731
--- /dev/null
+++ b/modules/MacroLogFeature.cmake
@@ -0,0 +1,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)