From 5ac15f09ed96c57cfecbfc1b7b5ca3102f5b58a2 Mon Sep 17 00:00:00 2001 From: Alexander Alekhin Date: Fri, 15 Jan 2016 14:03:48 +0300 Subject: [PATCH] cmake: add DEBUG_PRE/DEBUG_POST commands handling Useful for debug purposes: cmake -DDEBUG_POST="ocv_cmake_dump_vars(CUDA)" . cmake -DCMAKE_PRE="ocv_cmake_dump_vars(\"OPENCL|opencl\")" . --- CMakeLists.txt | 3 +++ cmake/OpenCVUtils.cmake | 10 ++++++++++ 2 files changed, 13 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 41f1d25bb4..fe43ce03b8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -73,6 +73,8 @@ endif() include(cmake/OpenCVUtils.cmake) +ocv_cmake_eval(DEBUG_PRE ONCE) + ocv_clear_vars(OpenCVModules_TARGETS) # ---------------------------------------------------------------------------- @@ -1110,3 +1112,4 @@ include(cmake/OpenCVPackaging.cmake) # This should be the last command ocv_cmake_dump_vars("" TOFILE "CMakeVars.txt") +ocv_cmake_eval(DEBUG_POST ONCE) diff --git a/cmake/OpenCVUtils.cmake b/cmake/OpenCVUtils.cmake index ce2cfaea8a..093e8b7858 100644 --- a/cmake/OpenCVUtils.cmake +++ b/cmake/OpenCVUtils.cmake @@ -42,6 +42,16 @@ function(ocv_cmake_dump_vars) endif() endfunction() +function(ocv_cmake_eval var_name) + if(DEFINED ${var_name}) + file(WRITE "${CMAKE_BINARY_DIR}/CMakeCommand-${var_name}.cmake" ${${var_name}}) + include("${CMAKE_BINARY_DIR}/CMakeCommand-${var_name}.cmake") + endif() + if(";${ARGN};" MATCHES ";ONCE;") + unset(${var_name} CACHE) + endif() +endfunction() + # assert macro # Note: it doesn't support lists in arguments # Usage samples: