unset(IPP_VERSION_BUILD)
set(IPP_LIB_PREFIX ${CMAKE_STATIC_LIBRARY_PREFIX})
-set(IPP_LIB_SUFFIX ${CMAKE_STATIC_LIBRARY_SUFFIX})
+set(IPP_LIB_SUFFIX ${CMAKE_STATIC_LIBRARY_SUFFIX})
set(IPP_X64 0)
if(CMAKE_CXX_SIZEOF_DATA_PTR EQUAL 8)
set(IPP_INCLUDE_DIRS ${IPP_ROOT_DIR}/include)
set(__msg)
- if(EXISTS ${IPP_ROOT_DIR}/ippicv.h)
+ if(EXISTS ${IPP_ROOT_DIR}/include/ippicv_redefs.h)
set(__msg " (ICV version)")
set(HAVE_IPP_ICV_ONLY 1)
- if(EXISTS ${IPP_ROOT_DIR}/ippversion.h)
- _ipp_not_supported("Can't resolve IPP directory: ${IPP_ROOT_DIR}")
- else()
- ipp_get_version(${IPP_ROOT_DIR}/ippicv.h)
- endif()
- ocv_assert(IPP_VERSION_STR VERSION_GREATER "8.0")
- set(IPP_INCLUDE_DIRS ${IPP_ROOT_DIR}/)
elseif(EXISTS ${IPP_ROOT_DIR}/include/ipp.h)
- ipp_get_version(${IPP_ROOT_DIR}/include/ippversion.h)
- ocv_assert(IPP_VERSION_STR VERSION_GREATER "1.0")
+ # nothing
else()
_ipp_not_supported("Can't resolve IPP directory: ${IPP_ROOT_DIR}")
endif()
+ ipp_get_version(${IPP_INCLUDE_DIRS}/ippversion.h)
+ ocv_assert(IPP_VERSION_STR VERSION_GREATER "1.0")
+
message(STATUS "found IPP${__msg}: ${_MAJOR}.${_MINOR}.${_BUILD} [${IPP_VERSION_STR}]")
message(STATUS "at: ${IPP_ROOT_DIR}")
endif()
set(HAVE_IPP 1)
- if(EXISTS ${IPP_INCLUDE_DIRS}/ipp_redefine.h)
- set(HAVE_IPP_REDEFINE 1)
- else()
- unset(HAVE_IPP_REDEFINE)
- endif()
macro(_ipp_set_library_dir DIR)
if(NOT EXISTS ${DIR})
set(IPP_LIBRARY_DIR ${DIR})
endmacro()
- if(NOT HAVE_IPP_ICV_ONLY)
- if(APPLE)
- _ipp_set_library_dir(${IPP_ROOT_DIR}/lib)
- elseif(IPP_X64)
- _ipp_set_library_dir(${IPP_ROOT_DIR}/lib/intel64)
- else()
- _ipp_set_library_dir(${IPP_ROOT_DIR}/lib/ia32)
- endif()
+ if(APPLE)
+ _ipp_set_library_dir(${IPP_ROOT_DIR}/lib)
+ elseif(IPP_X64)
+ _ipp_set_library_dir(${IPP_ROOT_DIR}/lib/intel64)
else()
- if(EXISTS ${IPP_ROOT_DIR}/lib)
- set(IPP_LIBRARY_DIR ${IPP_ROOT_DIR}/lib)
- else()
- _ipp_not_supported("IPP ${IPP_VERSION_STR} at ${IPP_ROOT_DIR} is not supported")
- endif()
- if(X86_64)
- _ipp_set_library_dir(${IPP_LIBRARY_DIR}/intel64)
- else()
- _ipp_set_library_dir(${IPP_LIBRARY_DIR}/ia32)
- endif()
+ _ipp_set_library_dir(${IPP_ROOT_DIR}/lib/ia32)
endif()
macro(_ipp_add_library name)
if (EXISTS ${IPP_LIBRARY_DIR}/${IPP_LIB_PREFIX}${IPP_PREFIX}${name}${IPP_SUFFIX}${IPP_LIB_SUFFIX})
- list(APPEND IPP_LIBRARIES ${IPP_LIBRARY_DIR}/${IPP_LIB_PREFIX}${IPP_PREFIX}${name}${IPP_SUFFIX}${IPP_LIB_SUFFIX})
+ add_library(ipp${name} STATIC IMPORTED)
+ set_target_properties(ipp${name} PROPERTIES
+ IMPORTED_LINK_INTERFACE_LIBRARIES ""
+ IMPORTED_LOCATION ${IPP_LIBRARY_DIR}/${IPP_LIB_PREFIX}${IPP_PREFIX}${name}${IPP_SUFFIX}${IPP_LIB_SUFFIX}
+ )
+ list(APPEND IPP_LIBRARIES ipp${name})
+ # CMake doesn't support "install(TARGETS ipp${name} " command with imported targets
+ install(FILES ${IPP_LIBRARY_DIR}/${IPP_LIB_PREFIX}${IPP_PREFIX}${name}${IPP_SUFFIX}${IPP_LIB_SUFFIX}
+ DESTINATION ${OPENCV_3P_LIB_INSTALL_PATH} COMPONENT main)
+ string(TOUPPER ${name} uname)
+ set(IPP${uname}_INSTALL_PATH "${CMAKE_INSTALL_PREFIX}/${OPENCV_3P_LIB_INSTALL_PATH}/${IPP_LIB_PREFIX}${IPP_PREFIX}${name}${IPP_SUFFIX}${IPP_LIB_SUFFIX}" CACHE INTERNAL "" FORCE)
+ set(IPP${uname}_LOCATION_PATH "${IPP_LIBRARY_DIR}/${IPP_LIB_PREFIX}${IPP_PREFIX}${name}${IPP_SUFFIX}${IPP_LIB_SUFFIX}" CACHE INTERNAL "" FORCE)
else()
- message(STATUS "Can't find IPP library: ${name}")
+ message(STATUS "Can't find IPP library: ${name} at ${IPP_LIBRARY_DIR}/${IPP_LIB_PREFIX}${IPP_PREFIX}${name}${IPP_SUFFIX}${IPP_LIB_SUFFIX}")
endif()
endmacro()
set(IPPROOT "$ENV{OPENCV_IPP_PATH}")
endif()
if(NOT DEFINED IPPROOT)
- set(IPPROOT "${OpenCV_SOURCE_DIR}/3rdparty/ippicv")
-endif()
-
-# Try ICV
-find_path(
- IPP_ICV_H_PATH
- NAMES ippicv.h
- PATHS ${IPPROOT}
- DOC "The path to Intel(R) IPP ICV header files"
- NO_DEFAULT_PATH
- NO_CMAKE_PATH)
-set(IPP_ROOT_DIR ${IPP_ICV_H_PATH})
-
-if(NOT IPP_ICV_H_PATH)
- # Try standalone IPP
- find_path(
- IPP_H_PATH
- NAMES ippversion.h
- PATHS ${IPPROOT}
- PATH_SUFFIXES include
- DOC "The path to Intel(R) IPP header files"
- NO_DEFAULT_PATH
- NO_CMAKE_PATH)
- if(IPP_H_PATH)
- get_filename_component(IPP_ROOT_DIR ${IPP_H_PATH} PATH)
+ include("${OpenCV_SOURCE_DIR}/3rdparty/ippicv/downloader.cmake")
+ if(DEFINED OPENCV_ICV_PATH)
+ set(IPPROOT "${OPENCV_ICV_PATH}")
+ else()
+ return()
endif()
endif()
-if(IPP_ROOT_DIR)
+file(TO_CMAKE_PATH "${IPPROOT}" __IPPROOT)
+if(EXISTS "${__IPPROOT}/include/ippversion.h")
+ set(IPP_ROOT_DIR ${__IPPROOT})
ipp_detect_version()
endif()