mirror of
https://github.com/opencv/opencv.git
synced 2024-11-27 12:40:05 +08:00
02385472b6
Objc binding * Initial work on Objective-C wrapper * Objective-C generator script; update manually generated wrappers * Add Mat tests * Core Tests * Imgproc wrapper generation and tests * Fixes for Imgcodecs wrapper * Miscellaneous fixes. Swift build support * Objective-C wrapper build/install * Add Swift wrappers for videoio/objdetect/feature2d * Framework build;iOS support * Fix toArray functions;Use enum types whenever possible * Use enum types where possible;prepare test build * Update test * Add test runner scripts for iOS and macOS * Add test scripts and samples * Build fixes * Fix build (cmake 3.17.x compatibility) * Fix warnings * Fix enum name conflicting handling * Add support for document generation with Jazzy * Swift/Native fast accessor functions * Add Objective-C wrapper for calib3d, dnn, ml, photo and video modules * Remove IntOut/FloatOut/DoubleOut classes * Fix iOS default test platform value * Fix samples * Revert default framework name to opencv2 * Add converter util functions * Fix failing test * Fix whitespace * Add handling for deprecated methods;fix warnings;define __OPENCV_BUILD * Suppress cmake warnings * Reduce severity of "jazzy not found" log message * Fix incorrect #include of compatibility header in ios.h * Use explicit returns in subscript/get implementation * Reduce minimum required cmake version to 3.15 for Objective-C/Swift binding
163 lines
4.7 KiB
CMake
163 lines
4.7 KiB
CMake
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_PNG OR HAVE_TIFF OR HAVE_OPENEXR)
|
|
ocv_include_directories(${ZLIB_INCLUDE_DIRS})
|
|
list(APPEND GRFMT_LIBS ${ZLIB_LIBRARIES})
|
|
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)
|
|
endif()
|
|
endif()
|
|
|
|
if(HAVE_OPENEXR)
|
|
include_directories(SYSTEM ${OPENEXR_INCLUDE_PATHS})
|
|
list(APPEND GRFMT_LIBS ${OPENEXR_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(IOS)
|
|
list(APPEND imgcodecs_srcs ${CMAKE_CURRENT_LIST_DIR}/src/ios_conversions.mm)
|
|
list(APPEND IMGCODECS_LIBRARIES "-framework UIKit" "-framework AssetsLibrary")
|
|
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)
|
|
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()
|
|
ocv_add_perf_tests()
|