@@ -602,26 +602,42 @@ endif()
602
602
603
603
include (cmake/OpenCVDetectVTK.cmake )
604
604
605
- # -- Custom HAL replacement --
606
- # Package config in: OpenCV_HALConfig.cmake or opencv_hal-config.cmake
607
- # Use variables: OpenCV_HAL_LIBRARIES, OpenCV_HAL_HEADERS and OpenCV_HAL_INCLUDE_DIRS variables
608
- find_package ( OpenCV_HAL NO_MODULE QUIET )
609
- set (_includes "" )
610
- if ( OpenCV_HAL_FOUND )
605
+
606
+ # ----------------------------------------------------------------------------
607
+ # OpenCV HAL
608
+ # ----------------------------------------------------------------------------
609
+ set (_hal_includes "" )
610
+ macro ( ocv_hal_register HAL_LIBRARIES_VAR HAL_HEADERS_VAR HAL_INCLUDE_DIRS_VAR )
611
611
# 1. libraries
612
- foreach (l ${OpenCV_HAL_LIBRARIES} )
613
- get_filename_component (l "${l} " ABSOLUTE )
614
- set (OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} ${l} )
612
+ foreach (l ${${HAL_LIBRARIES_VAR}} )
613
+ if (NOT TARGET ${l} )
614
+ get_filename_component (l "${l} " ABSOLUTE )
615
+ endif ()
616
+ list (APPEND OPENCV_HAL_LINKER_LIBS ${l} )
615
617
endforeach ()
616
618
# 2. headers
617
- foreach (h ${OpenCV_HAL_HEADERS } )
618
- set (_includes "${_includes } \n #include \" ${h} \" " )
619
+ foreach (h ${${HAL_HEADERS_VAR} } )
620
+ set (_hal_includes "${_hal_includes } \n #include \" ${h} \" " )
619
621
endforeach ()
620
622
# 3. include paths
621
- ocv_include_directories (${OpenCV_HAL_INCLUDE_DIRS} )
622
- endif ()
623
+ ocv_include_directories (${${HAL_INCLUDE_DIRS_VAR}} )
624
+ endmacro ()
625
+
626
+ if (NOT DEFINED OpenCV_HAL )
627
+ set (OpenCV_HAL "OpenCV_HAL" )
628
+ endif ()
629
+ foreach (hal ${OpenCV_HAL} )
630
+ ocv_debug_message (STATUS "OpenCV HAL: ${hal} ..." )
631
+ ocv_clear_vars (OpenCV_HAL_LIBRARIES OpenCV_HAL_HEADERS OpenCV_HAL_INCLUDE_DIRS )
632
+ find_package (${hal} NO_MODULE QUIET )
633
+ if (${hal} _FOUND )
634
+ ocv_hal_register (OpenCV_HAL_LIBRARIES OpenCV_HAL_HEADERS OpenCV_HAL_INCLUDE_DIRS )
635
+ list (APPEND OpenCV_USED_HAL "${hal} (ver ${${hal} _VERSION})" )
636
+ endif ()
637
+ endforeach ()
623
638
configure_file ("${OpenCV_SOURCE_DIR} /cmake/templates/custom_hal.hpp.in" "${CMAKE_BINARY_DIR} /custom_hal.hpp" @ONLY )
624
- unset (_includes )
639
+ unset (_hal_includes )
640
+
625
641
626
642
# ----------------------------------------------------------------------------
627
643
# Add CUDA libraries (needed for apps/tools, samples)
@@ -1160,7 +1176,7 @@ endif(DEFINED WITH_VA_INTEL)
1160
1176
status (" Use Eigen:" HAVE_EIGEN THEN "YES (ver ${EIGEN_WORLD_VERSION} .${EIGEN_MAJOR_VERSION} .${EIGEN_MINOR_VERSION} )" ELSE NO )
1161
1177
status (" Use Cuda:" HAVE_CUDA THEN "YES (ver ${CUDA_VERSION_STRING} )" ELSE NO )
1162
1178
status (" Use OpenCL:" HAVE_OPENCL THEN YES ELSE NO )
1163
- status (" Use custom HAL:" OpenCV_HAL_FOUND THEN "YES (ver ${OpenCV_HAL_VERSION} , ${OpenCV_HAL_CONFIG } )" ELSE "NO" )
1179
+ status (" Use custom HAL:" OpenCV_USED_HAL THEN "YES (${OpenCV_USED_HAL } )" ELSE "NO" )
1164
1180
1165
1181
if (HAVE_CUDA )
1166
1182
status ("" )
0 commit comments