@@ -38,34 +38,42 @@ ocv_list_filterout(opencv_hdrs "modules/.*_inl\\\\.h*")
38
38
ocv_list_filterout (opencv_hdrs "modules/.*\\\\ .details\\\\ .h*" )
39
39
ocv_list_filterout (opencv_hdrs "modules/.*/detection_based_tracker\\\\ .hpp" ) # Conditional compilation
40
40
41
- set (cv2_generated_hdrs
41
+ set (cv2_generated_files
42
42
"${CMAKE_CURRENT_BINARY_DIR} /pyopencv_generated_include.h"
43
43
"${CMAKE_CURRENT_BINARY_DIR} /pyopencv_generated_funcs.h"
44
44
"${CMAKE_CURRENT_BINARY_DIR} /pyopencv_generated_types.h"
45
45
"${CMAKE_CURRENT_BINARY_DIR} /pyopencv_generated_type_reg.h"
46
46
"${CMAKE_CURRENT_BINARY_DIR} /pyopencv_generated_ns_reg.h"
47
- )
48
-
49
- set (cv2_generated_files ${cv2_generated_hdrs}
50
47
"${OPENCV_PYTHON_SIGNATURES_FILE} "
51
48
)
52
49
53
50
string (REPLACE ";" "\n " opencv_hdrs_ "${opencv_hdrs} " )
54
51
file (WRITE "${CMAKE_CURRENT_BINARY_DIR} /headers.txt" "${opencv_hdrs_} " )
55
52
add_custom_command (
56
53
OUTPUT ${cv2_generated_files}
57
- COMMAND ${PYTHON_DEFAULT_EXECUTABLE} "${PYTHON_SOURCE_DIR} /src2/gen2.py" ${CMAKE_CURRENT_BINARY_DIR} "${CMAKE_CURRENT_BINARY_DIR} /headers.txt"
58
- DEPENDS ${PYTHON_SOURCE_DIR} /src2/gen2.py
59
- DEPENDS ${PYTHON_SOURCE_DIR} /src2/hdr_parser.py
60
- DEPENDS ${CMAKE_CURRENT_BINARY_DIR} /headers.txt
61
- DEPENDS ${opencv_hdrs}
54
+ COMMAND " ${PYTHON_DEFAULT_EXECUTABLE} " "${PYTHON_SOURCE_DIR} /src2/gen2.py" " ${CMAKE_CURRENT_BINARY_DIR} " "${CMAKE_CURRENT_BINARY_DIR} /headers.txt"
55
+ DEPENDS " ${PYTHON_SOURCE_DIR} /src2/gen2.py"
56
+ " ${PYTHON_SOURCE_DIR} /src2/hdr_parser.py"
57
+ # not a real build dependency (file(WRITE) result): ${CMAKE_CURRENT_BINARY_DIR}/headers.txt
58
+ ${opencv_hdrs}
62
59
COMMENT "Generate files for Python bindings and documentation"
63
60
)
64
61
65
62
add_custom_target (gen_opencv_python_source DEPENDS ${cv2_generated_files} )
66
63
67
64
set (cv2_custom_hdr "${CMAKE_CURRENT_BINARY_DIR} /pyopencv_custom_headers.h" )
68
- file ( WRITE ${cv2_custom_hdr} "//user-defined headers\n " )
65
+ set ( cv2_custom_hdr_str "//user-defined headers\n " )
69
66
foreach (uh ${opencv_userdef_hdrs} )
70
- file ( APPEND ${cv2_custom_hdr} " #include \" ${uh} \"\n " )
67
+ set ( cv2_custom_hdr_str " ${cv2_custom_hdr_str} #include \" ${uh} \"\n " )
71
68
endforeach (uh )
69
+ if (EXISTS "${cv2_custom_hdr} " )
70
+ file (READ "${cv2_custom_hdr} " __content )
71
+ else ()
72
+ set (__content "" )
73
+ endif ()
74
+ if ("${__content} " STREQUAL "${cv2_custom_hdr_str} " )
75
+ # Up-to-date
76
+ else ()
77
+ file (WRITE "${cv2_custom_hdr} " "${cv2_custom_hdr_str} " )
78
+ endif ()
79
+ unset (__content )
0 commit comments