set(IPP_IW_LIBRARIES ${IPP_IW_LIBRARY})
execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different "${OpenCV_SOURCE_DIR}/3rdparty/ippicv/CMakeLists.txt" "${IPP_IW_PATH}/")
add_subdirectory("${IPP_IW_PATH}/" ${OpenCV_BINARY_DIR}/3rdparty/ippiw)
+
set(HAVE_IPP_IW 1)
return()
endif()
message(STATUS "found Intel IPP IW binaries: ${IW_VERSION_MAJOR}.${IW_VERSION_MINOR}.${IW_VERSION_UPDATE}")
message(STATUS "at: ${IPP_IW_PATH}")
+ add_library(ippiw STATIC IMPORTED)
+ set_target_properties(ippiw PROPERTIES
+ IMPORTED_LINK_INTERFACE_LIBRARIES ""
+ IMPORTED_LOCATION "${FILE}"
+ )
+ if (NOT BUILD_SHARED_LIBS)
+ # CMake doesn't support "install(TARGETS ${name} ...)" command with imported targets
+ install(FILES "${FILE}"
+ DESTINATION ${OPENCV_3P_LIB_INSTALL_PATH} COMPONENT dev)
+ set(IPPIW_INSTALL_PATH "${CMAKE_INSTALL_PREFIX}/${OPENCV_3P_LIB_INSTALL_PATH}/${CMAKE_STATIC_LIBRARY_PREFIX}ipp_iw${CMAKE_STATIC_LIBRARY_SUFFIX}" CACHE INTERNAL "" FORCE)
+ set(IPPIW_LOCATION_PATH "${FILE}" CACHE INTERNAL "" FORCE)
+ endif()
+
set(IPP_IW_INCLUDES "${IPP_IW_PATH}/include")
- set(IPP_IW_LIBRARIES ${FILE})
+ set(IPP_IW_LIBRARIES ippiw)
+
set(HAVE_IPP_IW 1)
set(BUILD_IPP_IW 0)
return()
elseif(WIN32 AND NOT ARM)
set(IW_PACKAGE_SUBDIR "ippiw_win")
else()
- message(SEND_ERROR "Improper system for Intel IPP Integrations Wrappers. This message shouldn't appera. Check Intel IPP configurations steps")
+ message(SEND_ERROR "Improper system for Intel IPP Integrations Wrappers. This message shouldn't appear. Check Intel IPP configurations steps")
return()
endif()
if(TARGET ippicv AND NOT BUILD_SHARED_LIBS)
set(USE_IPPICV TRUE)
- file(RELATIVE_PATH IPPICV_INSTALL_PATH_RELATIVE_CONFIGCMAKE ${CMAKE_BINARY_DIR} ${IPPICV_LOCATION_PATH})
+ file(RELATIVE_PATH IPPICV_INSTALL_PATH_RELATIVE_CONFIGCMAKE "${CMAKE_BINARY_DIR}" "${IPPICV_LOCATION_PATH}")
ocv_cmake_configure("${CMAKE_CURRENT_LIST_DIR}/templates/OpenCVConfig-IPPICV.cmake.in" IPPICV_CONFIGCMAKE @ONLY)
else()
set(USE_IPPICV FALSE)
endif()
+if(TARGET ippiw AND NOT BUILD_SHARED_LIBS AND IPPIW_INSTALL_PATH)
+ set(USE_IPPIW TRUE)
+ file(RELATIVE_PATH IPPIW_INSTALL_PATH_RELATIVE_CONFIGCMAKE "${CMAKE_BINARY_DIR}" "${IPPIW_LOCATION_PATH}")
+ ocv_cmake_configure("${CMAKE_CURRENT_LIST_DIR}/templates/OpenCVConfig-IPPIW.cmake.in" IPPIW_CONFIGCMAKE @ONLY)
+else()
+ set(USE_IPPIW FALSE)
+endif()
+
configure_file("${OpenCV_SOURCE_DIR}/cmake/templates/OpenCVConfig.cmake.in" "${CMAKE_BINARY_DIR}/OpenCVConfig.cmake" @ONLY)
#support for version checking when finding opencv. find_package(OpenCV 2.3.1 EXACT) should now work.
configure_file("${OpenCV_SOURCE_DIR}/cmake/templates/OpenCVConfig-version.cmake.in" "${CMAKE_BINARY_DIR}/OpenCVConfig-version.cmake" @ONLY)
set(OpenCV_INCLUDE_DIRS_CONFIGCMAKE "\"\${OpenCV_INSTALL_PATH}/${OPENCV_INCLUDE_INSTALL_PATH}\" \"\${OpenCV_INSTALL_PATH}/${OPENCV_INCLUDE_INSTALL_PATH}/opencv\"")
if(USE_IPPICV)
- file(RELATIVE_PATH IPPICV_INSTALL_PATH_RELATIVE_CONFIGCMAKE "${CMAKE_INSTALL_PREFIX}" ${IPPICV_INSTALL_PATH})
+ file(RELATIVE_PATH IPPICV_INSTALL_PATH_RELATIVE_CONFIGCMAKE "${CMAKE_INSTALL_PREFIX}" "${IPPICV_INSTALL_PATH}")
ocv_cmake_configure("${CMAKE_CURRENT_LIST_DIR}/templates/OpenCVConfig-IPPICV.cmake.in" IPPICV_CONFIGCMAKE @ONLY)
endif()
+if(USE_IPPIW)
+ file(RELATIVE_PATH IPPIW_INSTALL_PATH_RELATIVE_CONFIGCMAKE "${CMAKE_INSTALL_PREFIX}" "${IPPIW_INSTALL_PATH}")
+ ocv_cmake_configure("${CMAKE_CURRENT_LIST_DIR}/templates/OpenCVConfig-IPPIW.cmake.in" IPPIW_CONFIGCMAKE @ONLY)
+endif()
function(ocv_gen_config TMP_DIR NESTED_PATH ROOT_NAME)
ocv_path_join(__install_nested "${OPENCV_CONFIG_INSTALL_PATH}" "${NESTED_PATH}")
_ocv_append_target_includes(${target})
endfunction()
+
+macro(ocv_get_libname var_name)
+ get_filename_component(__libname "${ARGN}" NAME)
+ string(REGEX REPLACE "^lib(.+).(a|so)(.[.0-9]+)?$" "\\1" __libname "${__libname}")
+ set(${var_name} "${__libname}")
+endmacro()
+
# build the list of opencv libs and dependencies for all modules
# _modules - variable to hold list of all modules
# _extra - variable to hold list of extra dependencies
foreach (dep ${deps} ${OPENCV_LINKER_LIBS})
if (NOT DEFINED OPENCV_MODULE_${dep}_LOCATION)
if (TARGET ${dep})
- get_target_property(_output ${dep} ARCHIVE_OUTPUT_DIRECTORY)
- if ("${_output}" STREQUAL "${3P_LIBRARY_OUTPUT_PATH}")
- list(INSERT ${_3rdparty} 0 ${dep})
+ get_target_property(_type ${dep} TYPE)
+ if(_type STREQUAL "STATIC_LIBRARY" AND BUILD_SHARED_LIBS)
+ # nothing
else()
- list(INSERT ${_extra} 0 ${dep})
+ get_target_property(_output ${dep} IMPORTED_LOCATION)
+ if(NOT _output)
+ get_target_property(_output ${dep} ARCHIVE_OUTPUT_DIRECTORY)
+ get_target_property(_output_name ${dep} OUTPUT_NAME)
+ if(NOT _output_name)
+ set(_output_name "${dep}")
+ endif()
+ else()
+ get_filename_component(_output_name "${_output}" NAME)
+ endif()
+ string(FIND "${_output}" "${CMAKE_BINARY_DIR}" _POS)
+ if (_POS EQUAL 0)
+ ocv_get_libname(_libname "${_output_name}")
+ list(INSERT ${_3rdparty} 0 ${_libname})
+ else()
+ if(_output)
+ list(INSERT ${_extra} 0 ${_output})
+ else()
+ list(INSERT ${_extra} 0 ${dep})
+ endif()
+ endif()
endif()
else()
list(INSERT ${_extra} 0 ${dep})
endforeach()
endforeach()
- # ippicv specific handling
- list(FIND ${_extra} "ippicv" ippicv_idx)
- if (${ippicv_idx} GREATER -1)
- list(REMOVE_ITEM ${_extra} "ippicv")
- if(NOT BUILD_SHARED_LIBS)
- list(INSERT ${_3rdparty} 0 "ippicv")
- endif()
- endif()
-
ocv_list_filterout(${_modules} "^[\$]<")
ocv_list_filterout(${_3rdparty} "^[\$]<")
ocv_list_filterout(${_extra} "^[\$]<")
--- /dev/null
+if(NOT TARGET ippiw)
+ add_library(ippiw STATIC IMPORTED)
+ set_target_properties(ippiw PROPERTIES
+ IMPORTED_LINK_INTERFACE_LIBRARIES ""
+ IMPORTED_LOCATION "${OpenCV_INSTALL_PATH}/@IPPIW_INSTALL_PATH_RELATIVE_CONFIGCMAKE@"
+ )
+endif()
@ANDROID_CONFIGCMAKE@
@IPPICV_CONFIGCMAKE@
+@IPPIW_CONFIGCMAKE@
# Some additional settings are required if OpenCV is built as static libs
set(OpenCV_SHARED @BUILD_SHARED_LIBS@)