Merge pull request #6683 from alalek:cmake_hal
This commit is contained in:
commit
68c63188eb
@ -602,26 +602,42 @@ endif()
|
|||||||
|
|
||||||
include(cmake/OpenCVDetectVTK.cmake)
|
include(cmake/OpenCVDetectVTK.cmake)
|
||||||
|
|
||||||
# -- Custom HAL replacement --
|
|
||||||
# Package config in: OpenCV_HALConfig.cmake or opencv_hal-config.cmake
|
# ----------------------------------------------------------------------------
|
||||||
# Use variables: OpenCV_HAL_LIBRARIES, OpenCV_HAL_HEADERS and OpenCV_HAL_INCLUDE_DIRS variables
|
# OpenCV HAL
|
||||||
find_package(OpenCV_HAL NO_MODULE QUIET)
|
# ----------------------------------------------------------------------------
|
||||||
set(_includes "")
|
set(_hal_includes "")
|
||||||
if (OpenCV_HAL_FOUND)
|
macro(ocv_hal_register HAL_LIBRARIES_VAR HAL_HEADERS_VAR HAL_INCLUDE_DIRS_VAR)
|
||||||
# 1. libraries
|
# 1. libraries
|
||||||
foreach (l ${OpenCV_HAL_LIBRARIES})
|
foreach (l ${${HAL_LIBRARIES_VAR}})
|
||||||
get_filename_component(l "${l}" ABSOLUTE)
|
if(NOT TARGET ${l})
|
||||||
set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} ${l})
|
get_filename_component(l "${l}" ABSOLUTE)
|
||||||
|
endif()
|
||||||
|
list(APPEND OPENCV_HAL_LINKER_LIBS ${l})
|
||||||
endforeach()
|
endforeach()
|
||||||
# 2. headers
|
# 2. headers
|
||||||
foreach (h ${OpenCV_HAL_HEADERS})
|
foreach (h ${${HAL_HEADERS_VAR}})
|
||||||
set(_includes "${_includes}\n#include \"${h}\"")
|
set(_hal_includes "${_hal_includes}\n#include \"${h}\"")
|
||||||
endforeach()
|
endforeach()
|
||||||
# 3. include paths
|
# 3. include paths
|
||||||
ocv_include_directories(${OpenCV_HAL_INCLUDE_DIRS})
|
ocv_include_directories(${${HAL_INCLUDE_DIRS_VAR}})
|
||||||
|
endmacro()
|
||||||
|
|
||||||
|
if(NOT DEFINED OpenCV_HAL)
|
||||||
|
set(OpenCV_HAL "OpenCV_HAL")
|
||||||
endif()
|
endif()
|
||||||
|
foreach(hal ${OpenCV_HAL})
|
||||||
|
ocv_debug_message(STATUS "OpenCV HAL: ${hal} ...")
|
||||||
|
ocv_clear_vars(OpenCV_HAL_LIBRARIES OpenCV_HAL_HEADERS OpenCV_HAL_INCLUDE_DIRS)
|
||||||
|
find_package(${hal} NO_MODULE QUIET)
|
||||||
|
if(${hal}_FOUND)
|
||||||
|
ocv_hal_register(OpenCV_HAL_LIBRARIES OpenCV_HAL_HEADERS OpenCV_HAL_INCLUDE_DIRS)
|
||||||
|
list(APPEND OpenCV_USED_HAL "${hal} (ver ${${hal}_VERSION})")
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
configure_file("${OpenCV_SOURCE_DIR}/cmake/templates/custom_hal.hpp.in" "${CMAKE_BINARY_DIR}/custom_hal.hpp" @ONLY)
|
configure_file("${OpenCV_SOURCE_DIR}/cmake/templates/custom_hal.hpp.in" "${CMAKE_BINARY_DIR}/custom_hal.hpp" @ONLY)
|
||||||
unset(_includes)
|
unset(_hal_includes)
|
||||||
|
|
||||||
|
|
||||||
# ----------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------
|
||||||
# Add CUDA libraries (needed for apps/tools, samples)
|
# Add CUDA libraries (needed for apps/tools, samples)
|
||||||
@ -1160,7 +1176,7 @@ endif(DEFINED WITH_VA_INTEL)
|
|||||||
status(" Use Eigen:" HAVE_EIGEN THEN "YES (ver ${EIGEN_WORLD_VERSION}.${EIGEN_MAJOR_VERSION}.${EIGEN_MINOR_VERSION})" ELSE NO)
|
status(" Use Eigen:" HAVE_EIGEN THEN "YES (ver ${EIGEN_WORLD_VERSION}.${EIGEN_MAJOR_VERSION}.${EIGEN_MINOR_VERSION})" ELSE NO)
|
||||||
status(" Use Cuda:" HAVE_CUDA THEN "YES (ver ${CUDA_VERSION_STRING})" ELSE NO)
|
status(" Use Cuda:" HAVE_CUDA THEN "YES (ver ${CUDA_VERSION_STRING})" ELSE NO)
|
||||||
status(" Use OpenCL:" HAVE_OPENCL THEN YES ELSE NO)
|
status(" Use OpenCL:" HAVE_OPENCL THEN YES ELSE NO)
|
||||||
status(" Use custom HAL:" OpenCV_HAL_FOUND THEN "YES (ver ${OpenCV_HAL_VERSION}, ${OpenCV_HAL_CONFIG})" ELSE "NO")
|
status(" Use custom HAL:" OpenCV_USED_HAL THEN "YES (${OpenCV_USED_HAL})" ELSE "NO")
|
||||||
|
|
||||||
if(HAVE_CUDA)
|
if(HAVE_CUDA)
|
||||||
status("")
|
status("")
|
||||||
|
@ -126,6 +126,7 @@ endfunction()
|
|||||||
# clears all passed variables
|
# clears all passed variables
|
||||||
macro(ocv_clear_vars)
|
macro(ocv_clear_vars)
|
||||||
foreach(_var ${ARGN})
|
foreach(_var ${ARGN})
|
||||||
|
unset(${_var})
|
||||||
unset(${_var} CACHE)
|
unset(${_var} CACHE)
|
||||||
endforeach()
|
endforeach()
|
||||||
endmacro()
|
endmacro()
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#ifndef _CUSTOM_HAL_INCLUDED_
|
#ifndef _CUSTOM_HAL_INCLUDED_
|
||||||
#define _CUSTOM_HAL_INCLUDED_
|
#define _CUSTOM_HAL_INCLUDED_
|
||||||
|
|
||||||
@_includes@
|
@_hal_includes@
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
set(the_description "The Core Functionality")
|
set(the_description "The Core Functionality")
|
||||||
ocv_add_module(core
|
ocv_add_module(core
|
||||||
PRIVATE_REQUIRED ${ZLIB_LIBRARIES} "${OPENCL_LIBRARIES}" "${VA_LIBRARIES}"
|
PRIVATE_REQUIRED ${ZLIB_LIBRARIES} "${OPENCL_LIBRARIES}" "${VA_LIBRARIES}" "${OPENCV_HAL_LINKER_LIBS}"
|
||||||
OPTIONAL opencv_cudev
|
OPTIONAL opencv_cudev
|
||||||
WRAP java python)
|
WRAP java python)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user