From b7266c92fd1826a84c6cc33bc37fa15a338e9ee5 Mon Sep 17 00:00:00 2001 From: nmizonov Date: Mon, 2 Mar 2026 05:03:50 -0800 Subject: [PATCH] Fix IPPIW binaries search --- cmake/OpenCVFindIPPIW.cmake | 20 +++++++++++++++++--- cmake/OpenCVModule.cmake | 2 +- hal/ipp/CMakeLists.txt | 2 +- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/cmake/OpenCVFindIPPIW.cmake b/cmake/OpenCVFindIPPIW.cmake index 1e065e10f6..995249ff95 100644 --- a/cmake/OpenCVFindIPPIW.cmake +++ b/cmake/OpenCVFindIPPIW.cmake @@ -43,7 +43,12 @@ file(TO_CMAKE_PATH "${IPPROOT}" IPPROOT) # This function detects Intel IPP Integration Wrappers version by analyzing .h file macro(ippiw_setup PATH BUILD) + set(IPP_NEW_LAYOUT 0) set(FILE "${PATH}/include/iw/iw_version.h") + if(NOT EXISTS "${FILE}") + set(IPP_NEW_LAYOUT 1) + set(FILE "${PATH}/include/ipp/iw/iw_version.h") + endif() if(${BUILD}) ippiw_debugmsg("Checking sources: ${PATH}") else() @@ -97,11 +102,20 @@ macro(ippiw_setup PATH BUILD) endif() else() # check binaries - if(IPP_X64) - set(FILE "${PATH}/lib/intel64/${CMAKE_STATIC_LIBRARY_PREFIX}ipp_iw${CMAKE_STATIC_LIBRARY_SUFFIX}") + if (IPP_NEW_LAYOUT) + if(IPP_X64) + set(IW_LIB_DIR "${PATH}/lib") + else() + set(IW_LIB_DIR "${PATH}/lib32") + endif() else() - set(FILE "${PATH}/lib/ia32/${CMAKE_STATIC_LIBRARY_PREFIX}ipp_iw${CMAKE_STATIC_LIBRARY_SUFFIX}") + if(IPP_X64) + set(IW_LIB_DIR "${PATH}/lib/intel64") + else() + set(IW_LIB_DIR "${PATH}/lib/ia32") + endif() endif() + set(FILE "${IW_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}ipp_iw${CMAKE_STATIC_LIBRARY_SUFFIX}") if(EXISTS ${FILE}) ippiw_debugmsg("binaries\tyes (64=${IPP_X64})") set(IPP_IW_PATH "${PATH}") diff --git a/cmake/OpenCVModule.cmake b/cmake/OpenCVModule.cmake index 84e8216fe0..3690c266d5 100644 --- a/cmake/OpenCVModule.cmake +++ b/cmake/OpenCVModule.cmake @@ -992,7 +992,7 @@ macro(_ocv_create_module) ocv_target_link_libraries(${the_module} PUBLIC ${OPENCV_MODULE_${the_module}_DEPS_EXT} INTERFACE ${OPENCV_MODULE_${the_module}_DEPS_EXT} ) - ocv_target_link_libraries(${the_module} PRIVATE ${OPENCV_LINKER_LIBS} ${OPENCV_HAL_LINKER_LIBS} ${IPP_LIBS} ${ARGN}) + ocv_target_link_libraries(${the_module} PRIVATE ${OPENCV_LINKER_LIBS} ${OPENCV_HAL_LINKER_LIBS} ${ARGN}) if (NOT ENABLE_CUDA_FIRST_CLASS_LANGUAGE AND HAVE_CUDA) ocv_target_link_libraries(${the_module} PRIVATE ${CUDA_LIBRARIES} ${CUDA_npp_LIBRARY}) endif() diff --git a/hal/ipp/CMakeLists.txt b/hal/ipp/CMakeLists.txt index 5ff630c8c0..345a7534b1 100644 --- a/hal/ipp/CMakeLists.txt +++ b/hal/ipp/CMakeLists.txt @@ -45,7 +45,7 @@ target_include_directories(ipphal PRIVATE ${IPP_INCLUDE_DIRS} ) -target_link_libraries(ipphal PUBLIC ${IPP_IW_LIBRARY} ${IPP_LIBRARIES}) +target_link_libraries(ipphal PUBLIC ${IPP_IW_LIBRARIES} ${IPP_LIBRARIES}) set_target_properties(ipphal PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${3P_LIBRARY_OUTPUT_PATH} DEBUG_POSTFIX "${OPENCV_DEBUG_POSTFIX}")