CMakeLists.txt 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. set(CMAKE_VERSION 3.6.2)
  2. cmake_minimum_required(VERSION ${CMAKE_VERSION})
  3. set(CMAKE_CXX_STANDARD 11)
  4. project(bytesflow-opencv-media)
  5. SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/output/bin)
  6. SET(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/output/lib)
  7. add_subdirectory(opencv)
  8. add_subdirectory(jni)
  9. ############################################# 加入jni支持,linux############################################
  10. message(FIND JAVA_HOME---> $ENV{JAVA_HOME})
  11. set(JAVA_HOME $ENV{JAVA_HOME})
  12. message(JAVA_HOME ${JAVA_HOME})
  13. if (NOT DEFINED ENV{JAVA_HOME})
  14. message("not defined environment variable:JAVA_HOME")
  15. set(JAVA_HOME /Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home)
  16. set(JNI_PATH ${JAVA_HOME}/include)
  17. endif ()
  18. IF (CMAKE_SYSTEM_NAME MATCHES "Linux")
  19. set(JNI_MD_PATH ${JAVA_HOME}/include/linux)
  20. set(JNI_PATH ${JAVA_HOME}/include)
  21. include_directories(${JNI_PATH})
  22. set(OPENCV_HOME /usr)
  23. set(OPENCV_INCLUDE ${OPENCV_HOME}/include)
  24. set(OPENCV_LIBS ${OPENCV_HOME}/lib64)
  25. ELSEIF (CMAKE_SYSTEM_NAME MATCHES "Darwin")
  26. set(JNI_PATH ${JAVA_HOME}/include)
  27. set(JNI_MD_PATH ${JAVA_HOME}/include/darwin)
  28. include_directories(${JNI_PATH})
  29. set(OPENCV_HOME /usr/local/Cellar/opencv/4.5.4_4)
  30. set(OPENCV_INCLUDE ${OPENCV_HOME}/include/opencv4)
  31. set(OPENCV_LIBS ${OPENCV_HOME}/lib)
  32. ELSE ()
  33. MESSAGE(STATUS "other platform: ${CMAKE_SYSTEM_NAME}")
  34. ENDIF (CMAKE_SYSTEM_NAME MATCHES "Linux")
  35. message(OPENCV_INCLUDE>${OPENCV_INCLUDE})
  36. message(OPENCV_LIBS>${OPENCV_LIBS})
  37. message(JAVA_HOME>${JAVA_HOME})
  38. link_directories(${OPENCV_LIBS})
  39. include_directories(${OPENCV_INCLUDE})
  40. include_directories(${JNI_MD_PATH})
  41. add_executable(ImageBlurDetection_debug main.cpp
  42. ${OPENCV_SRC}
  43. count_down_latch.h
  44. ${JAVA_JNI_SRC}
  45. )
  46. add_library(piaoquan_java_opencv SHARED
  47. ${OPENCV_SRC}
  48. ${JAVA_JNI_SRC})
  49. set(OpenCV_LIBS
  50. -lopencv_imgproc
  51. -lopencv_imgcodecs
  52. -lopencv_core
  53. # -lopencv_xphoto
  54. # -lopencv_xobjdetect
  55. # -lopencv_ximgproc
  56. # -lopencv_xfeatures2d
  57. # -lopencv_wechat_qrcode
  58. # -lopencv_viz
  59. # -lopencv_videostab
  60. # -lopencv_videoio
  61. # -lopencv_video
  62. # -lopencv_tracking
  63. # -lopencv_text
  64. # -lopencv_surface_matching
  65. # -lopencv_superres
  66. # -lopencv_structured_light
  67. # -lopencv_stitching
  68. # -lopencv_stereo
  69. # -lopencv_shape
  70. # -lopencv_sfm
  71. # -lopencv_saliency
  72. # -lopencv_rgbd
  73. # -lopencv_reg
  74. # -lopencv_rapid
  75. # -lopencv_quality
  76. # -lopencv_plot
  77. # -lopencv_photo
  78. # -lopencv_phase_unwrapping
  79. # -lopencv_optflow
  80. # -lopencv_objdetect
  81. # -lopencv_ml
  82. # -lopencv_mcc
  83. # -lopencv_line_descriptor
  84. # -lopencv_intensity_transform
  85. # -lopencv_img_hash
  86. # -lopencv_highgui
  87. # -lopencv_hfs
  88. # -lopencv_gapi
  89. # -lopencv_fuzzy
  90. # -lopencv_freetype
  91. # -lopencv_flann
  92. # -lopencv_features2d
  93. # -lopencv_face
  94. # -lopencv_dpm
  95. # -lopencv_dnn_superres
  96. # -lopencv_dnn_objdetect
  97. # -lopencv_dnn
  98. # -lopencv_datasets
  99. # -lopencv_ccalib
  100. # -lopencv_calib3d
  101. # -lopencv_bioinspired
  102. # -lopencv_bgsegm
  103. # -lopencv_barcode
  104. # -lopencv_aruco
  105. # -lopencv_alphamat
  106. )
  107. target_link_libraries(ImageBlurDetection_debug
  108. ${OpenCV_LIBS}
  109. )
  110. target_link_libraries(piaoquan_java_opencv
  111. ${OpenCV_LIBS}
  112. )