CMakeLists.txt 3.3 KB

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