cmake_minimum_required(VERSION 3.19) set(CMAKE_CXX_STANDARD 11) project(bytesflow-opencv-media) SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/output/bin) SET(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/output/lib) add_subdirectory(opencv) add_subdirectory(jni) ############################################# 加入jni支持,linux############################################ message(FIND JAVA_HOME---> $ENV{JAVA_HOME}) set(JAVA_HOME $ENV{JAVA_HOME}) message(JAVA_HOME ${JAVA_HOME}) if (NOT DEFINED ENV{JAVA_HOME}) message("not defined environment variable:JAVA_HOME") set(JAVA_HOME /Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home) set(JNI_PATH ${JAVA_HOME}/include) endif () IF (CMAKE_SYSTEM_NAME MATCHES "Linux") set(JNI_MD_PATH ${JAVA_HOME}/include/linux) set(JNI_PATH ${JAVA_HOME}/include) include_directories(${JNI_PATH}) set(OPENCV_HOME /usr/local/Cellar/opencv/4.5.4_4) set(OPENCV_INCLUDE ${OPENCV_HOME}/include/opencv4) set(OPENCV_LIBS ${OPENCV_HOME}/lib) ELSEIF (CMAKE_SYSTEM_NAME MATCHES "Darwin") set(JNI_PATH ${JAVA_HOME}/include) set(JNI_MD_PATH ${JAVA_HOME}/include/darwin) include_directories(${JNI_PATH}) set(OPENCV_HOME /usr/local/Cellar/opencv/4.5.4_4) set(OPENCV_INCLUDE ${OPENCV_HOME}/include/opencv4) set(OPENCV_LIBS ${OPENCV_HOME}/lib) ELSE () MESSAGE(STATUS "other platform: ${CMAKE_SYSTEM_NAME}") ENDIF (CMAKE_SYSTEM_NAME MATCHES "Linux") link_directories(${OPENCV_LIBS}) include_directories(${OPENCV_INCLUDE}) include_directories(${JNI_MD_PATH}) add_executable(ImageBlurDetection_debug main.cpp ${OPENCV_SRC} count_down_latch.h ${JAVA_JNI_SRC} ) add_library(piaoquan_java_opencv SHARED ${OPENCV_SRC} ${JAVA_JNI_SRC}) set(OpenCV_LIBS -lopencv_xphoto -lopencv_xobjdetect -lopencv_ximgproc -lopencv_xfeatures2d -lopencv_wechat_qrcode -lopencv_viz -lopencv_videostab -lopencv_videoio -lopencv_video -lopencv_tracking -lopencv_text -lopencv_surface_matching -lopencv_superres -lopencv_structured_light -lopencv_stitching -lopencv_stereo -lopencv_shape -lopencv_sfm -lopencv_saliency -lopencv_rgbd -lopencv_reg -lopencv_rapid -lopencv_quality -lopencv_plot -lopencv_photo -lopencv_phase_unwrapping -lopencv_optflow -lopencv_objdetect -lopencv_ml -lopencv_mcc -lopencv_line_descriptor -lopencv_intensity_transform -lopencv_imgproc -lopencv_imgcodecs -lopencv_img_hash -lopencv_highgui -lopencv_hfs -lopencv_gapi -lopencv_fuzzy -lopencv_freetype -lopencv_flann -lopencv_features2d -lopencv_face -lopencv_dpm -lopencv_dnn_superres -lopencv_dnn_objdetect -lopencv_dnn -lopencv_datasets -lopencv_core -lopencv_ccalib -lopencv_calib3d -lopencv_bioinspired -lopencv_bgsegm -lopencv_barcode -lopencv_aruco -lopencv_alphamat) target_link_libraries(ImageBlurDetection_debug ${OpenCV_LIBS} ) target_link_libraries(piaoquan_java_opencv ${OpenCV_LIBS} )