@@ -2,12 +2,19 @@ set(OPENCV_PREFIX "${ITLABAI_EXTERNAL_ROOT}/opencv")
22set (OPENCV_BUILD_DIR "${ITLABAI_EXTERNAL_BUILD_ROOT} /opencv_min" )
33set (OPENCV_INSTALL_DIR "${ITLABAI_EXTERNAL_INSTALL_ROOT} /opencv_min" )
44
5- # Always build local OpenCV (no system fallback for reproducibility)
5+ set (OPENCV_COMPONENTS core imgproc imgcodecs highgui world)
6+ set (OPENCV_COMPONENTS_ESC "core\\ ;imgproc\\ ;imgcodecs\\ ;highgui\\ ;world" )
7+
68set (OpenCV_FOUND FALSE )
9+ if (ITLABAI_USE_SYSTEM_DEPS)
10+ find_package (OpenCV QUIET COMPONENTS ${OPENCV_COMPONENTS} )
11+ endif ()
712
813if (NOT OpenCV_FOUND)
9- set (OPENCV_COMPONENTS core imgproc imgcodecs highgui world)
10- set (OPENCV_COMPONENTS_ESC "core\\ ;imgproc\\ ;imgcodecs\\ ;highgui\\ ;world" )
14+ set (_opencv_build_type "${CMAKE_BUILD_TYPE } " )
15+ if (NOT _opencv_build_type)
16+ set (_opencv_build_type "Release" )
17+ endif ()
1118 set (OPENCV_FEATURE_ARGS
1219 -DBUILD_TESTS=OFF
1320 -DBUILD_PERF_TESTS=OFF
@@ -47,6 +54,10 @@ if(NOT OpenCV_FOUND)
4754 )
4855
4956 if (WIN32 )
57+ set (_opencv_debug_suffix "" )
58+ if (_opencv_build_type STREQUAL "Debug" )
59+ set (_opencv_debug_suffix "d" )
60+ endif ()
5061 set (_opencv_ver_header "${CMAKE_SOURCE_DIR } /3rdparty/opencv/modules/core/include/opencv2/core/version.hpp" )
5162 if (EXISTS "${_opencv_ver_header} " )
5263 file (READ "${_opencv_ver_header} " _opencv_ver_text )
@@ -69,8 +80,12 @@ if(NOT OpenCV_FOUND)
6980 set (_opencv_libdir "${OPENCV_INSTALL_DIR} /${_opencv_arch} /${_opencv_vc} /lib" )
7081 set (_opencv_bindir "${OPENCV_INSTALL_DIR} /${_opencv_arch} /${_opencv_vc} /bin" )
7182
72- set (_opencv_world_lib "${_opencv_libdir} /opencv_world${_opencv_dllversion} .lib" )
73- set (_opencv_world_dll "${_opencv_bindir} /opencv_world${_opencv_dllversion} .dll" )
83+ set (_opencv_world_lib_release "${_opencv_libdir} /opencv_world${_opencv_dllversion} .lib" )
84+ set (_opencv_world_dll_release "${_opencv_bindir} /opencv_world${_opencv_dllversion} .dll" )
85+ set (_opencv_world_lib_debug "${_opencv_libdir} /opencv_world${_opencv_dllversion} d.lib" )
86+ set (_opencv_world_dll_debug "${_opencv_bindir} /opencv_world${_opencv_dllversion} d.dll" )
87+ set (_opencv_world_lib "${_opencv_libdir} /opencv_world${_opencv_dllversion}${_opencv_debug_suffix} .lib" )
88+ set (_opencv_world_dll "${_opencv_bindir} /opencv_world${_opencv_dllversion}${_opencv_debug_suffix} .dll" )
7489 set (_opencv_include_dir "${OPENCV_INSTALL_DIR} /include" )
7590
7691 set (_opencv_byproducts
@@ -86,20 +101,23 @@ if(NOT OpenCV_FOUND)
86101 )
87102 endif ()
88103
104+ set (OPENCV_INCLUDE_DIR "${_opencv_include_dir} " )
105+
89106 ExternalProject_Add (opencv_external
90107 SOURCE_DIR "${CMAKE_SOURCE_DIR } /3rdparty/opencv"
91108 BINARY_DIR "${OPENCV_BUILD_DIR} "
92109 INSTALL_DIR "${OPENCV_INSTALL_DIR} "
93110 CMAKE_ARGS
94111 -DCMAKE_INSTALL_PREFIX=${OPENCV_INSTALL_DIR}
95- -DCMAKE_BUILD_TYPE=Release
112+ -DCMAKE_BUILD_TYPE=${_opencv_build_type}
96113 -DOPENCV_INSTALL_BIN_DIR=bin
97114 -DOPENCV_INSTALL_LIB_DIR=lib
98115 -DOPENCV_INSTALL_INCLUDE_DIR=include
99116 -DBUILD_SHARED_LIBS=ON
100117 -DBUILD_PROTOBUF=ON
101118 -DPROTOBUF_UPDATE_FILES=OFF
102119 ${OPENCV_FEATURE_ARGS}
120+ ${ITLABAI_EXTERNAL_TOOLCHAIN_ARGS}
103121 CMAKE_CACHE_ARGS
104122 -DBUILD_LIST:STRING=${OPENCV_COMPONENTS_ESC}
105123 BUILD_BYPRODUCTS
@@ -114,15 +132,15 @@ if(NOT OpenCV_FOUND)
114132 if (WIN32 )
115133 set_target_properties (OpenCV::opencv_world PROPERTIES
116134 IMPORTED_LOCATION "${_opencv_world_dll} "
117- IMPORTED_LOCATION_RELEASE "${_opencv_world_dll } "
118- IMPORTED_LOCATION_DEBUG "${_opencv_world_dll } "
119- IMPORTED_LOCATION_RELWITHDEBINFO "${_opencv_world_dll } "
120- IMPORTED_LOCATION_MINSIZEREL "${_opencv_world_dll } "
135+ IMPORTED_LOCATION_RELEASE "${_opencv_world_dll_release } "
136+ IMPORTED_LOCATION_DEBUG "${_opencv_world_dll_debug } "
137+ IMPORTED_LOCATION_RELWITHDEBINFO "${_opencv_world_dll_release } "
138+ IMPORTED_LOCATION_MINSIZEREL "${_opencv_world_dll_release } "
121139 IMPORTED_IMPLIB "${_opencv_world_lib} "
122- IMPORTED_IMPLIB_RELEASE "${_opencv_world_lib } "
123- IMPORTED_IMPLIB_DEBUG "${_opencv_world_lib } "
124- IMPORTED_IMPLIB_RELWITHDEBINFO "${_opencv_world_lib } "
125- IMPORTED_IMPLIB_MINSIZEREL "${_opencv_world_lib } "
140+ IMPORTED_IMPLIB_RELEASE "${_opencv_world_lib_release } "
141+ IMPORTED_IMPLIB_DEBUG "${_opencv_world_lib_debug } "
142+ IMPORTED_IMPLIB_RELWITHDEBINFO "${_opencv_world_lib_release } "
143+ IMPORTED_IMPLIB_MINSIZEREL "${_opencv_world_lib_release } "
126144 INTERFACE_INCLUDE_DIRECTORIES "${_opencv_include_dir} "
127145 )
128146 else ()
0 commit comments