123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186 |
- set(the_description "Image I/O")
- ocv_add_module(imgcodecs opencv_imgproc WRAP java objc python)
- # ----------------------------------------------------------------------------
- # CMake file for imgcodecs. See root CMakeLists.txt
- # Some parts taken from version of Hartmut Seichter, HIT Lab NZ.
- # Jose Luis Blanco, 2008
- # ----------------------------------------------------------------------------
- ocv_clear_vars(GRFMT_LIBS)
- if(HAVE_WINRT_CX AND NOT WINRT)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /ZW")
- endif()
- if(HAVE_JPEG)
- ocv_include_directories(${JPEG_INCLUDE_DIR} ${${JPEG_LIBRARY}_BINARY_DIR})
- list(APPEND GRFMT_LIBS ${JPEG_LIBRARIES})
- endif()
- if(HAVE_WEBP)
- add_definitions(-DHAVE_WEBP)
- ocv_include_directories(${WEBP_INCLUDE_DIR})
- list(APPEND GRFMT_LIBS ${WEBP_LIBRARIES})
- endif()
- if(HAVE_PNG)
- add_definitions(${PNG_DEFINITIONS})
- ocv_include_directories(${PNG_INCLUDE_DIR})
- list(APPEND GRFMT_LIBS ${PNG_LIBRARIES})
- endif()
- if(HAVE_GDCM)
- ocv_include_directories(${GDCM_INCLUDE_DIRS})
- list(APPEND GRFMT_LIBS ${GDCM_LIBRARIES})
- endif()
- if(HAVE_TIFF)
- ocv_include_directories(${TIFF_INCLUDE_DIR})
- list(APPEND GRFMT_LIBS ${TIFF_LIBRARIES})
- endif()
- if(HAVE_OPENJPEG)
- ocv_include_directories(${OPENJPEG_INCLUDE_DIRS})
- list(APPEND GRFMT_LIBS ${OPENJPEG_LIBRARIES})
- endif()
- if(HAVE_JASPER)
- ocv_include_directories(${JASPER_INCLUDE_DIR})
- list(APPEND GRFMT_LIBS ${JASPER_LIBRARIES})
- if(OPENCV_IO_FORCE_JASPER)
- add_definitions(-DOPENCV_IMGCODECS_FORCE_JASPER=1)
- else()
- message(STATUS "imgcodecs: Jasper codec is disabled in runtime. Details: https://github.com/opencv/opencv/issues/14058")
- endif()
- endif()
- if(HAVE_OPENEXR)
- include_directories(SYSTEM ${OPENEXR_INCLUDE_PATHS})
- list(APPEND GRFMT_LIBS ${OPENEXR_LIBRARIES})
- if(OPENCV_IO_FORCE_OPENEXR
- OR NOT BUILD_OPENEXR # external OpenEXR versions are not disabled
- )
- add_definitions(-DOPENCV_IMGCODECS_USE_OPENEXR=1)
- else()
- message(STATUS "imgcodecs: OpenEXR codec is disabled in runtime. Details: https://github.com/opencv/opencv/issues/21326")
- endif()
- endif()
- if(HAVE_PNG OR HAVE_TIFF OR HAVE_OPENEXR)
- ocv_include_directories(${ZLIB_INCLUDE_DIRS})
- list(APPEND GRFMT_LIBS ${ZLIB_LIBRARIES})
- endif()
- if(HAVE_GDAL)
- include_directories(SYSTEM ${GDAL_INCLUDE_DIR})
- list(APPEND GRFMT_LIBS ${GDAL_LIBRARY})
- endif()
- if(HAVE_IMGCODEC_HDR)
- add_definitions(-DHAVE_IMGCODEC_HDR)
- endif()
- if(HAVE_IMGCODEC_SUNRASTER)
- add_definitions(-DHAVE_IMGCODEC_SUNRASTER)
- endif()
- if(HAVE_IMGCODEC_PXM)
- add_definitions(-DHAVE_IMGCODEC_PXM)
- endif()
- if (HAVE_IMGCODEC_PFM)
- add_definitions(-DHAVE_IMGCODEC_PFM)
- endif()
- file(GLOB grfmt_hdrs ${CMAKE_CURRENT_LIST_DIR}/src/grfmt*.hpp)
- file(GLOB grfmt_srcs ${CMAKE_CURRENT_LIST_DIR}/src/grfmt*.cpp)
- list(APPEND grfmt_hdrs ${CMAKE_CURRENT_LIST_DIR}/src/bitstrm.hpp)
- list(APPEND grfmt_srcs ${CMAKE_CURRENT_LIST_DIR}/src/bitstrm.cpp)
- list(APPEND grfmt_hdrs ${CMAKE_CURRENT_LIST_DIR}/src/rgbe.hpp)
- list(APPEND grfmt_srcs ${CMAKE_CURRENT_LIST_DIR}/src/rgbe.cpp)
- list(APPEND grfmt_hdrs ${CMAKE_CURRENT_LIST_DIR}/src/exif.hpp)
- list(APPEND grfmt_srcs ${CMAKE_CURRENT_LIST_DIR}/src/exif.cpp)
- source_group("Src\\grfmts" FILES ${grfmt_hdrs} ${grfmt_srcs})
- set(imgcodecs_hdrs
- ${CMAKE_CURRENT_LIST_DIR}/src/precomp.hpp
- ${CMAKE_CURRENT_LIST_DIR}/src/utils.hpp
- )
- set(imgcodecs_srcs
- ${CMAKE_CURRENT_LIST_DIR}/src/loadsave.cpp
- ${CMAKE_CURRENT_LIST_DIR}/src/utils.cpp
- )
- file(GLOB imgcodecs_ext_hdrs
- "${CMAKE_CURRENT_LIST_DIR}/include/opencv2/*.hpp"
- "${CMAKE_CURRENT_LIST_DIR}/include/opencv2/${name}/*.hpp"
- "${CMAKE_CURRENT_LIST_DIR}/include/opencv2/${name}/*.h"
- "${CMAKE_CURRENT_LIST_DIR}/include/opencv2/${name}/legacy/*.h"
- )
- if(APPLE OR APPLE_FRAMEWORK)
- list(APPEND imgcodecs_srcs ${CMAKE_CURRENT_LIST_DIR}/src/apple_conversions.h)
- list(APPEND imgcodecs_srcs ${CMAKE_CURRENT_LIST_DIR}/src/apple_conversions.mm)
- endif()
- if(IOS)
- list(APPEND imgcodecs_srcs ${CMAKE_CURRENT_LIST_DIR}/src/ios_conversions.mm)
- list(APPEND IMGCODECS_LIBRARIES "-framework UIKit")
- endif()
- if(APPLE AND (NOT IOS))
- list(APPEND imgcodecs_srcs ${CMAKE_CURRENT_LIST_DIR}/src/macosx_conversions.mm)
- list(APPEND IMGCODECS_LIBRARIES "-framework AppKit")
- endif()
- if(APPLE_FRAMEWORK)
- list(APPEND IMGCODECS_LIBRARIES "-framework Accelerate" "-framework CoreGraphics" "-framework QuartzCore")
- endif()
- if(TRUE)
- # these variables are set by 'ocv_append_build_options(IMGCODECS ...)'
- foreach(P ${IMGCODECS_INCLUDE_DIRS})
- ocv_include_directories(${P})
- endforeach()
- foreach(P ${IMGCODECS_LIBRARY_DIRS})
- link_directories(${P})
- endforeach()
- endif()
- source_group("Src" FILES ${imgcodecs_srcs} ${imgcodecs_hdrs})
- source_group("Include" FILES ${imgcodecs_ext_hdrs})
- ocv_set_module_sources(HEADERS ${imgcodecs_ext_hdrs} SOURCES ${imgcodecs_srcs} ${imgcodecs_hdrs} ${grfmt_srcs} ${grfmt_hdrs})
- ocv_module_include_directories()
- ocv_create_module(${GRFMT_LIBS} ${IMGCODECS_LIBRARIES})
- macro(ocv_imgcodecs_configure_target)
- if(APPLE)
- add_apple_compiler_options(${the_module})
- endif()
- if(MSVC AND NOT BUILD_SHARED_LIBS AND BUILD_WITH_STATIC_CRT)
- set_target_properties(${the_module} PROPERTIES LINK_FLAGS "/NODEFAULTLIB:atlthunk.lib /NODEFAULTLIB:atlsd.lib /NODEFAULTLIB:libcmt.lib /DEBUG")
- endif()
- ocv_warnings_disable(CMAKE_CXX_FLAGS -Wno-deprecated-declarations)
- endmacro()
- if(NOT BUILD_opencv_world)
- ocv_imgcodecs_configure_target()
- endif()
- ocv_add_accuracy_tests()
- if(TARGET opencv_test_imgcodecs AND HAVE_JASPER AND "$ENV{OPENCV_IO_ENABLE_JASPER}")
- ocv_target_compile_definitions(opencv_test_imgcodecs PRIVATE OPENCV_IMGCODECS_ENABLE_JASPER_TESTS=1)
- endif()
- if(TARGET opencv_test_imgcodecs AND HAVE_OPENEXR AND "$ENV{OPENCV_IO_ENABLE_OPENEXR}")
- ocv_target_compile_definitions(opencv_test_imgcodecs PRIVATE OPENCV_IMGCODECS_ENABLE_OPENEXR_TESTS=1)
- endif()
- if(TARGET opencv_test_imgcodecs AND HAVE_PNG AND NOT (PNG_VERSION VERSION_LESS "1.6.31"))
- # details: https://github.com/glennrp/libpng/commit/68cb0aaee3de6371b81a4613476d9b33e43e95b1
- ocv_target_compile_definitions(opencv_test_imgcodecs PRIVATE OPENCV_IMGCODECS_PNG_WITH_EXIF=1)
- endif()
- ocv_add_perf_tests()
|