CMakeLists.txt 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. cmake_minimum_required(VERSION 2.8.11 FATAL_ERROR)
  2. project(Carotene)
  3. set(CAROTENE_NS "carotene" CACHE STRING "Namespace for Carotene definitions")
  4. set(CAROTENE_INCLUDE_DIR include)
  5. set(CAROTENE_SOURCE_DIR src)
  6. file(GLOB_RECURSE carotene_headers RELATIVE "${CMAKE_CURRENT_LIST_DIR}" "${CAROTENE_INCLUDE_DIR}/*.hpp")
  7. file(GLOB_RECURSE carotene_sources RELATIVE "${CMAKE_CURRENT_LIST_DIR}" "${CAROTENE_SOURCE_DIR}/*.cpp"
  8. "${CAROTENE_SOURCE_DIR}/*.hpp")
  9. include_directories(${CAROTENE_INCLUDE_DIR})
  10. if(CMAKE_COMPILER_IS_GNUCC)
  11. set(CMAKE_CXX_FLAGS "-fvisibility=hidden ${CMAKE_CXX_FLAGS}")
  12. # allow more inlines - these parameters improve performance for:
  13. # - matchTemplate about 5-10%
  14. # - goodFeaturesToTrack 10-20%
  15. # - cornerHarris 30% for some cases
  16. if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "10.0.0")
  17. set_source_files_properties(${carotene_sources} COMPILE_FLAGS "--param ipcp-unit-growth=100000 --param inline-unit-growth=100000 --param large-stack-frame-growth=5000")
  18. else()
  19. set_source_files_properties(${carotene_sources} COMPILE_FLAGS "--param ipa-cp-unit-growth=100000 --param inline-unit-growth=100000 --param large-stack-frame-growth=5000")
  20. endif()
  21. endif()
  22. add_library(carotene_objs OBJECT EXCLUDE_FROM_ALL
  23. ${carotene_headers}
  24. ${carotene_sources}
  25. )
  26. if(NOT CAROTENE_NS STREQUAL "carotene")
  27. target_compile_definitions(carotene_objs PUBLIC "-DCAROTENE_NS=${CAROTENE_NS}")
  28. endif()
  29. if(WITH_NEON)
  30. target_compile_definitions(carotene_objs PRIVATE "-DWITH_NEON")
  31. endif()
  32. # we add dummy file to fix XCode build
  33. add_library(carotene STATIC ${OPENCV_3RDPARTY_EXCLUDE_FROM_ALL} "$<TARGET_OBJECTS:carotene_objs>" "${CAROTENE_SOURCE_DIR}/dummy.cpp")