You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

132 lines
5.0 KiB

7 years ago
  1. # --------------------------------------------------------
  2. # Copyright (C) 2004-2019 by EMGU Corporation. All rights reserved.
  3. #
  4. # CMake file for cvextern_test. See root CMakeLists.txt
  5. # --------------------------------------------------------
  6. project(cvextern_test)
  7. SET(OPENCV_MODULES_DIR "${OPENCV_SUBFOLDER}/modules")
  8. INCLUDE_DIRECTORIES("${OPENCV_MODULES_DIR}/core/include")
  9. INCLUDE_DIRECTORIES("${OPENCV_MODULES_DIR}/imgproc/include")
  10. INCLUDE_DIRECTORIES("${OPENCV_MODULES_DIR}/video/include")
  11. INCLUDE_DIRECTORIES("${OPENCV_MODULES_DIR}/ml/include")
  12. INCLUDE_DIRECTORIES("${OPENCV_MODULES_DIR}/calib3d/include")
  13. INCLUDE_DIRECTORIES("${OPENCV_MODULES_DIR}/objdetect/include")
  14. INCLUDE_DIRECTORIES("${OPENCV_MODULES_DIR}/features2d/include")
  15. INCLUDE_DIRECTORIES("${OPENCV_MODULES_DIR}/hal/include")
  16. INCLUDE_DIRECTORIES("${OPENCV_MODULES_DIR}/flann/include")
  17. INCLUDE_DIRECTORIES("${OPENCV_MODULES_DIR}/highgui/include")
  18. INCLUDE_DIRECTORIES("${OPENCV_MODULES_DIR}/imgcodecs/include")
  19. INCLUDE_DIRECTORIES("${OPENCV_MODULES_DIR}/videoio/include")
  20. INCLUDE_DIRECTORIES("${OPENCV_MODULES_DIR}/photo/include")
  21. INCLUDE_DIRECTORIES("${OPENCV_SUBFOLDER}/include/opencv")
  22. INCLUDE_DIRECTORIES("${PROJECT_SOURCE_DIR}/../../Emgu.CV.Extern/")
  23. INCLUDE_DIRECTORIES("${PROJECT_SOURCE_DIR}/../../")
  24. INCLUDE_DIRECTORIES("${CMAKE_BINARY_DIR}")
  25. #INCLUDE_DIRECTORIES(${TIFF_INCLUDE_DIR})
  26. #INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR})
  27. #INCLUDE_DIRECTORIES(${GEOTIFF_INCLUDE_DIR})
  28. ############################### IPP START ##############################
  29. #IF(WITH_IPP)
  30. #include(${OPENCV_SUBFOLDER}/cmake/OpenCVFindIPP.cmake)
  31. # IF (IPP_FOUND)
  32. # message(STATUS "CVEXTERN: USING IPP: ${IPP_LIBRARY_DIRS} ")
  33. # add_definitions(-DHAVE_IPP)
  34. # include_directories(${IPP_INCLUDE_DIRS})
  35. # LINK_DIRECTORIES(${IPP_LIBRARY_DIRS})
  36. # ENDIF()
  37. #ENDIF()
  38. ############################### IPP END ################################
  39. ############################### TBB START ##############################
  40. if (WITH_TBB AND TBB_INCLUDE_DIR AND TBB_LIB_DIR)
  41. add_definitions(-DHAVE_TBB)
  42. include_directories(${TBB_INCLUDE_DIR})
  43. link_directories(${TBB_LIB_DIR})
  44. endif()
  45. ############################### TBB END ################################
  46. ############################### GPU START ##############################
  47. IF(WIN32 AND WITH_CUDA)
  48. IF(TARGET_ARCH_64)
  49. LINK_DIRECTORIES(${CUDA_TOOLKIT_ROOT_DIR}/lib/x64)
  50. ELSE()
  51. LINK_DIRECTORIES(${CUDA_TOOLKIT_ROOT_DIR}/lib/Win32)
  52. ENDIF()
  53. ENDIF()
  54. ############################### GPU END ################################
  55. ############################### OPENMP START ##############################
  56. IF(WITH_OPENMP)
  57. FIND_PACKAGE( OpenMP REQUIRED)
  58. if(OPENMP_FOUND)
  59. #MESSAGE(STATUS " -- Compiling cvextern with OPENMP")
  60. set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
  61. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
  62. set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")
  63. endif()
  64. ENDIF()
  65. ############################### OPENMP END ################################
  66. if(CMAKE_COMPILER_IS_GNUCXX)
  67. set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-function")
  68. endif()
  69. file(GLOB cvextern_test_srcs "./*.cpp")
  70. source_group("Src" FILES ${cvextern_test_srcs})
  71. file(GLOB cvextern_test_hdrs "./*.h*")
  72. source_group("Include" FILES ${cvextern_test_hdrs})
  73. set(the_target ${PROJECT_NAME})
  74. add_executable(${the_target} ${cvextern_test_srcs} ${cvextern_test_hdrs})
  75. # For dynamic link numbering convenions
  76. set_target_properties(${the_target} PROPERTIES
  77. OUTPUT_NAME "${the_target}"
  78. )
  79. set_target_properties(${PROJECT_NAME} PROPERTIES CXX_STANDARD 11)
  80. if(ENABLE_SOLUTION_FOLDERS)
  81. set_target_properties(${the_target} PROPERTIES FOLDER "emgu")
  82. endif()
  83. # Additional target properties
  84. set_target_properties(${the_target} PROPERTIES
  85. DEBUG_POSTFIX "${OPENCV_DEBUG_POSTFIX}"
  86. ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib${UNMANAGED_LIBRARY_OUTPUT_SUBFOLDER}"
  87. RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin${UNMANAGED_LIBRARY_OUTPUT_SUBFOLDER}"
  88. )
  89. ADD_DEPENDENCIES(${the_target}
  90. cvextern opencv_core opencv_calib3d opencv_features2d opencv_highgui opencv_imgproc opencv_ml opencv_objdetect
  91. # ${ZLIB_LIBRARY}
  92. # ${TIFF_LIBRARY} ${GEOTIFF_LIBRARY}
  93. )
  94. IF(EMGU_ENABLE_SSE)
  95. ADD_DEFINITIONS(-D__EMGU_ENABLE_SSE__)
  96. IF(MSVC AND EMGUCV_ARCH MATCHES "win32" AND (NOT CV_ICC))
  97. SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /arch:SSE2") ## Optimization
  98. ENDIF()
  99. ENDIF()
  100. # Add the required libraries for linking:
  101. target_link_libraries(${the_target} ${OPENCV_LINKER_LIBS}
  102. cvextern opencv_core opencv_calib3d opencv_features2d opencv_highgui opencv_imgproc opencv_ml opencv_objdetect
  103. # ${ZLIB_LIBRARY}
  104. # ${TIFF_LIBRARY}
  105. # ${GEOTIFF_LIBRARY}
  106. )
  107. IF(DEFINED EMGUCV_PLATFORM_TOOLSET)
  108. set_target_properties(${the_target} PROPERTIES PLATFORM_TOOLSET ${EMGUCV_PLATFORM_TOOLSET})
  109. ENDIF()
  110. INSTALL(TARGETS ${the_target}
  111. RUNTIME DESTINATION bin${UNMANAGED_LIBRARY_OUTPUT_SUBFOLDER} COMPONENT main
  112. LIBRARY DESTINATION lib${UNMANAGED_LIBRARY_OUTPUT_SUBFOLDER} COMPONENT main
  113. ARCHIVE DESTINATION lib${UNMANAGED_LIBRARY_OUTPUT_SUBFOLDER} COMPONENT main)