cmakelists.template 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. cmake_minimum_required(VERSION 3.15)
  2. project(OpenCVTest)
  3. enable_testing()
  4. find_package(XCTest REQUIRED)
  5. # Enable C++11
  6. set (CMAKE_CXX_STANDARD 11)
  7. set (CMAKE_CXX_STANDARD_REQUIRED TRUE)
  8. set (OBJC_COMPILE_FLAGS "-fobjc-arc -fobjc-weak -fvisibility=hidden")
  9. set (SUPPRESS_WARNINGS_FLAGS "-Wno-incomplete-umbrella")
  10. set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OBJC_COMPILE_FLAGS} ${SUPPRESS_WARNINGS_FLAGS}")
  11. set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OBJC_ARC_COMPILE_FLAGS} ${SUPPRESS_WARNINGS_FLAGS}")
  12. # grab the files
  13. file(GLOB_RECURSE test_sources "test/*\.h" "test/*\.m" "test/*\.mm" "test/*\.swift")
  14. add_library(OpenCVTest STATIC dummy/dummy.mm)
  15. enable_language(Swift)
  16. # XCTest for Framework
  17. xctest_add_bundle(OpenCVTestTests OpenCVTest ${test_sources} test/resources ${FRAMEWORK_DIR}/${FRAMEWORK_NAME}.framework)
  18. set_target_properties(OpenCVTestTests PROPERTIES
  19. XCODE_ATTRIBUTE_FRAMEWORK_SEARCH_PATHS "${FRAMEWORK_DIR}"
  20. XCODE_ATTRIBUTE_OTHER_SWIFT_FLAGS "-Xcc ${SUPPRESS_WARNINGS_FLAGS}"
  21. XCODE_ATTRIBUTE_LD_RUNPATH_SEARCH_PATHS "${FRAMEWORK_DIR}"
  22. )
  23. # link necessary Frameworks
  24. target_link_libraries(OpenCVTestTests PRIVATE "-framework Accelerate")
  25. target_link_libraries(OpenCVTestTests PRIVATE "-framework AVFoundation")
  26. target_link_libraries(OpenCVTestTests PRIVATE "-framework CoreMedia")
  27. if (NOT DEFINED IOS_ARCH)
  28. target_link_libraries(OpenCVTestTests PRIVATE "-framework OpenCL")
  29. endif()
  30. # its OK to ignore stuff we don't know about since there will be no tests relying on it
  31. set_target_properties(OpenCVTestTests PROPERTIES LINK_FLAGS -Wl,-undefined,dynamic_lookup)
  32. set_source_files_properties(test/resources PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
  33. xctest_add_test(XCTest.OpenCVTest OpenCVTestTests)