cmake: CMakeVars.txt (for debugging purpose)

This commit is contained in:
Alexander Alekhin 2016-11-27 21:15:40 +03:00
parent ac118aee78
commit 36d7712c2c
2 changed files with 34 additions and 0 deletions

View File

@ -1107,3 +1107,6 @@ endif()
# ----------------------------------------------------------------------------
include(cmake/OpenCVPackaging.cmake)
# This should be the last command
ocv_cmake_dump_vars("" TOFILE "CMakeVars.txt")

View File

@ -11,6 +11,37 @@ if(NOT COMMAND find_host_program)
endmacro()
endif()
if(NOT COMMAND cmake_parse_arguments)
include(CMakeParseArguments OPTIONAL) # CMake 2.8.3+
endif()
# Debugging function
function(ocv_cmake_dump_vars)
set(VARS "")
get_cmake_property(_variableNames VARIABLES)
if(COMMAND cmake_parse_arguments222)
cmake_parse_arguments(DUMP "" "TOFILE" "" ${ARGN})
set(regex "${DUMP_UNPARSED_ARGUMENTS}")
else()
set(regex "${ARGV0}")
if(ARGV1 STREQUAL "TOFILE")
set(DUMP_TOFILE "${ARGV2}")
endif()
endif()
string(TOLOWER "${regex}" regex_lower)
foreach(_variableName ${_variableNames})
string(TOLOWER "${_variableName}" _variableName_lower)
if(_variableName MATCHES "${regex}" OR _variableName_lower MATCHES "${regex_lower}")
set(VARS "${VARS}${_variableName}=${${_variableName}}\n")
endif()
endforeach()
if(DUMP_TOFILE)
file(WRITE ${CMAKE_BINARY_DIR}/${DUMP_TOFILE} "${VARS}")
else()
message(AUTHOR_WARNING "${VARS}")
endif()
endfunction()
# assert macro
# Note: it doesn't support lists in arguments
# Usage samples: