Skip to content

Commit 5ac15f0

Browse files
committed
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\")" .
1 parent 36d7712 commit 5ac15f0

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

CMakeLists.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,8 @@ endif()
7373

7474
include(cmake/OpenCVUtils.cmake)
7575

76+
ocv_cmake_eval(DEBUG_PRE ONCE)
77+
7678
ocv_clear_vars(OpenCVModules_TARGETS)
7779

7880
# ----------------------------------------------------------------------------
@@ -1110,3 +1112,4 @@ include(cmake/OpenCVPackaging.cmake)
11101112

11111113
# This should be the last command
11121114
ocv_cmake_dump_vars("" TOFILE "CMakeVars.txt")
1115+
ocv_cmake_eval(DEBUG_POST ONCE)

cmake/OpenCVUtils.cmake

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,16 @@ function(ocv_cmake_dump_vars)
4242
endif()
4343
endfunction()
4444

45+
function(ocv_cmake_eval var_name)
46+
if(DEFINED ${var_name})
47+
file(WRITE "${CMAKE_BINARY_DIR}/CMakeCommand-${var_name}.cmake" ${${var_name}})
48+
include("${CMAKE_BINARY_DIR}/CMakeCommand-${var_name}.cmake")
49+
endif()
50+
if(";${ARGN};" MATCHES ";ONCE;")
51+
unset(${var_name} CACHE)
52+
endif()
53+
endfunction()
54+
4555
# assert macro
4656
# Note: it doesn't support lists in arguments
4757
# Usage samples:

0 commit comments

Comments
 (0)