CMakeLists.txt 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. project(ipphal)
  2. set(IPP_HAL_VERSION 0.0.1 CACHE INTERNAL "")
  3. set(IPP_HAL_LIBRARIES "ipphal" CACHE INTERNAL "")
  4. set(IPP_HAL_INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/include" CACHE INTERNAL "")
  5. set(IPP_HAL_HEADERS
  6. "${CMAKE_CURRENT_SOURCE_DIR}/include/ipp_hal_core.hpp"
  7. "${CMAKE_CURRENT_SOURCE_DIR}/include/ipp_hal_imgproc.hpp"
  8. CACHE INTERNAL "")
  9. add_library(ipphal STATIC
  10. "${CMAKE_CURRENT_SOURCE_DIR}/src/mean_ipp.cpp"
  11. "${CMAKE_CURRENT_SOURCE_DIR}/src/minmax_ipp.cpp"
  12. "${CMAKE_CURRENT_SOURCE_DIR}/src/norm_ipp.cpp"
  13. "${CMAKE_CURRENT_SOURCE_DIR}/src/cart_polar_ipp.cpp"
  14. "${CMAKE_CURRENT_SOURCE_DIR}/src/transforms_ipp.cpp"
  15. "${CMAKE_CURRENT_SOURCE_DIR}/src/warp_ipp.cpp"
  16. "${CMAKE_CURRENT_SOURCE_DIR}/src/sum_ipp.cpp"
  17. )
  18. #TODO: HAVE_IPP_ICV and HAVE_IPP_IW added as private macro till OpenCV itself is
  19. # source of IPP and public definitions lead to redefinition warning
  20. # The macro should be redefined as PUBLIC when IPP part is removed from core
  21. # to make HAL the source of IPP integration. The same is true for WITH_IPP_CALLS_ENFORCED
  22. if(HAVE_IPP_ICV)
  23. target_compile_definitions(ipphal PRIVATE HAVE_IPP_ICV)
  24. endif()
  25. if(HAVE_IPP_IW)
  26. target_compile_definitions(ipphal PRIVATE HAVE_IPP_IW)
  27. endif()
  28. if(WITH_IPP_CALLS_ENFORCED)
  29. target_compile_definitions(ipphal PRIVATE IPP_CALLS_ENFORCED)
  30. message("WITH_IPP_CALLS_ENFORCED=${WITH_IPP_CALLS_ENFORCED}: enforced IPP calls are enabled in IPP HAL")
  31. endif()
  32. target_include_directories(ipphal PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/include")
  33. ocv_warnings_disable(CMAKE_CXX_FLAGS -Wno-suggest-override)
  34. target_include_directories(ipphal PRIVATE
  35. "${CMAKE_CURRENT_SOURCE_DIR}/src"
  36. ${CMAKE_SOURCE_DIR}/modules/core/include
  37. ${CMAKE_SOURCE_DIR}/modules/imgproc/include
  38. ${IPP_INCLUDE_DIRS}
  39. )
  40. target_link_libraries(ipphal PUBLIC ${IPP_IW_LIBRARY} ${IPP_LIBRARIES})
  41. set_target_properties(ipphal PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${3P_LIBRARY_OUTPUT_PATH} DEBUG_POSTFIX "${OPENCV_DEBUG_POSTFIX}")
  42. if(NOT BUILD_SHARED_LIBS)
  43. ocv_install_target(ipphal EXPORT OpenCVModules ARCHIVE DESTINATION ${OPENCV_3P_LIB_INSTALL_PATH} COMPONENT dev)
  44. endif()
  45. if(ENABLE_SOLUTION_FOLDERS)
  46. set_target_properties(ipphal PROPERTIES FOLDER "3rdparty")
  47. endif()