mirror of
https://github.com/opencv/opencv.git
synced 2024-11-30 06:10:02 +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
46 lines
1.6 KiB
Plaintext
46 lines
1.6 KiB
Plaintext
cmake_minimum_required(VERSION 3.15)
|
|
|
|
project(OpenCVTest)
|
|
|
|
enable_testing()
|
|
|
|
find_package(XCTest REQUIRED)
|
|
|
|
# Enable C++11
|
|
set (CMAKE_CXX_STANDARD 11)
|
|
set (CMAKE_CXX_STANDARD_REQUIRED TRUE)
|
|
|
|
set (OBJC_COMPILE_FLAGS "-fobjc-arc -fobjc-weak -fvisibility=hidden")
|
|
set (SUPPRESS_WARNINGS_FLAGS "-Wno-incomplete-umbrella")
|
|
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OBJC_COMPILE_FLAGS} ${SUPPRESS_WARNINGS_FLAGS}")
|
|
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OBJC_ARC_COMPILE_FLAGS} ${SUPPRESS_WARNINGS_FLAGS}")
|
|
|
|
# grab the files
|
|
file(GLOB_RECURSE test_sources "test/*\.h" "test/*\.m" "test/*\.mm" "test/*\.swift")
|
|
|
|
add_library(OpenCVTest STATIC dummy/dummy.mm)
|
|
|
|
enable_language(Swift)
|
|
|
|
# XCTest for Framework
|
|
xctest_add_bundle(OpenCVTestTests OpenCVTest ${test_sources} test/resources ${FRAMEWORK_DIR}/${FRAMEWORK_NAME}.framework)
|
|
set_target_properties(OpenCVTestTests PROPERTIES
|
|
XCODE_ATTRIBUTE_FRAMEWORK_SEARCH_PATHS "${FRAMEWORK_DIR}"
|
|
XCODE_ATTRIBUTE_OTHER_SWIFT_FLAGS "-Xcc ${SUPPRESS_WARNINGS_FLAGS}"
|
|
)
|
|
|
|
# link necessary Frameworks
|
|
target_link_libraries(OpenCVTestTests PRIVATE "-framework Accelerate")
|
|
target_link_libraries(OpenCVTestTests PRIVATE "-framework AVFoundation")
|
|
target_link_libraries(OpenCVTestTests PRIVATE "-framework CoreMedia")
|
|
if (NOT DEFINED IOS_ARCH)
|
|
target_link_libraries(OpenCVTestTests PRIVATE "-framework OpenCL")
|
|
endif()
|
|
|
|
# its OK to ignore stuff we don't know about since there will be no tests relying on it
|
|
set_target_properties(OpenCVTestTests PROPERTIES LINK_FLAGS -Wl,-undefined,dynamic_lookup)
|
|
|
|
set_source_files_properties(test/resources PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
|
|
|
|
xctest_add_test(XCTest.OpenCVTest OpenCVTestTests)
|