123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226 |
- set(CMAKE_VERSION 3.6.2)
- cmake_minimum_required(VERSION ${CMAKE_VERSION})
- 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)
- set(-DCMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Wall -s -Wdeprecated-declarations")
- set(-DCMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Wall -s -Wdeprecated-declarations")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -pthread")
- add_definitions("-Wall -g")
- add_subdirectory(src/opencv)
- add_subdirectory(jni)
- add_subdirectory(src/utils)
- add_subdirectory(src/ffmpeg)
- ############################################# 加入 json 支持############################################
- set(JSON_HEADER
- src/json/include)
- FILE(GLOB JSON_ROOT_CPP
- src/json/libs/lib_json/*.cpp)
- include_directories(${JSON_HEADER})
- ############################################# 加入jni支持############################################
- 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 ()
- ############################################# 加入 ffmpeg src 支持############################################
- 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)
- set(OPENCV_INCLUDE ${OPENCV_HOME}/include/opencv4/)
- set(OPENCV_LIBS ${OPENCV_HOME}/lib64)
- set(FFMPEG_PREFIX /usr)
- set(FFMPEG_INCLUDE_DIRS ${FFMPEG_PREFIX}/include/ffmpeg/)
- set(FFMPEG_LIBRARIES ${FFMPEG_PREFIX}/lib64/)
- MESSAGE(FFMPEG_PREFIX ${FFMPEG_PREFIX})
- MESSAGE(FFMPEG_INCLUDE_DIRS ${FFMPEG_INCLUDE_DIRS})
- MESSAGE(FFMPEG_LIBS ${FFMPEG_LIBRARIES})
- 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)
- set(FFMPEG_PREFIX /usr/local/Cellar/ffmpeg@4/4.4.1)
- set(FFMPEG_INCLUDE_DIRS ${FFMPEG_PREFIX}/include/)
- set(FFMPEG_LIBS ${FFMPEG_PREFIX}/lib/)
- MESSAGE(FFMPEG_PREFIX ${FFMPEG_PREFIX})
- MESSAGE(FFMPEG_INCLUDE_DIRS ${FFMPEG_INCLUDE_DIRS})
- MESSAGE(FFMPEG_LIBRARIES ${FFMPEG_LIBRARIES})
- ELSE ()
- MESSAGE(STATUS "other platform: ${CMAKE_SYSTEM_NAME}")
- ENDIF (CMAKE_SYSTEM_NAME MATCHES "Linux")
- message(OPENCV_INCLUDE>${OPENCV_INCLUDE})
- message(OPENCV_LIBS>${OPENCV_LIBS})
- message(JAVA_HOME>${JAVA_HOME})
- message(FFMPEG_INCLUDE_DIRS>${FFMPEG_INCLUDE_DIRS})
- include_directories(${OPENCV_INCLUDE})
- include_directories(${JNI_MD_PATH})
- include_directories(${FFMPEG_INCLUDE_DIRS})
- link_directories(${OPENCV_LIBS})
- link_directories(${FFMPEG_LIBS})
- add_library(piaoquan_java_opencv SHARED
- ${OpenCV_SRC}
- ${UTILS_SRC}
- ${JSON_ROOT_CPP}
- ${FFMPEG_SRC}
- ${JAVA_JNI_SRC})
- #add_library(video_similarity_detection SHARED
- # ${UTILS_SRC}
- # ${JSON_ROOT_CPP}
- # ${Project_SRC})
- set(FFmpeg_LIBS
- -lavcodec
- -lavdevice
- -lavfilter
- -lavformat
- -lavutil
- -lswscale
- -lswresample)
- set(OpenCV_LIBS
- -lopencv_imgproc
- -lopencv_imgcodecs
- -lopencv_core
- -lopencv_highgui
- # -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_img_hash
- # -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_ccalib
- # -lopencv_calib3d
- # -lopencv_bioinspired
- # -lopencv_bgsegm
- # -lopencv_barcode
- # -lopencv_aruco
- # -lopencv_alphamat
- )
- # 条件判断
- if (CMAKE_BUILD_TYPE AND (CMAKE_BUILD_TYPE STREQUAL "Debug"))
- set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -Wall -O0")
- message("Debug mode:${CMAKE_C_FLAGS_DEBUG}")
- add_executable(ImageBlurDetection_debug main.cpp
- ${OpenCV_SRC}
- ${UTILS_SRC}
- ${JSON_ROOT_CPP}
- ${FFMPEG_SRC}
- ${JAVA_JNI_SRC}
- )
- target_link_libraries(ImageBlurDetection_debug -lpthread
- ${OpenCV_LIBS}
- ${FFmpeg_LIBS}
- )
- add_executable(test_md5 md5_main.cpp
- src/utils/md5.h
- src/utils/md5.c
- )
- add_executable(video_similarity_comparison src/video_similarity_comparison.cpp
- ${OpenCV_SRC}
- ${JSON_ROOT_CPP}
- ${FFMPEG_SRC}
- ${UTILS_SRC}
- )
- target_link_libraries(video_similarity_comparison -lpthread
- ${OpenCV_LIBS}
- ${FFmpeg_LIBS}
- )
- elseif (CMAKE_BUILD_TYPE AND (CMAKE_BUILD_TYPE STREQUAL "Release"))
- set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Wall -O3")
- message("Release mode:${CMAKE_C_FLAGS_RELEASE}")
- else ()
- message("else:${CMAKE_BUILD_TYPE}")
- message("else:${CMAKE_C_FLAGS_RELEASE}")
- endif ()
- if (UNIX)
- include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src/third_party/breakpad/ret/include/breakpad)
- # link_directories(${CMAKE_CURRENT_SOURCE_DIR}/src/third_party/breakpad/ret/libs)
- target_link_libraries(piaoquan_java_opencv -lpthread
- ${CMAKE_CURRENT_SOURCE_DIR}/src/third_party/breakpad/ret/libs/libbreakpad.a
- ${CMAKE_CURRENT_SOURCE_DIR}/src/third_party/breakpad/ret/libs/libbreakpad_client.a
- ${FFmpeg_LIBS}
- ${OpenCV_LIBS}
- )
- else ()
- target_link_libraries(piaoquan_java_opencv -lpthread
- ${FFmpeg_LIBS}
- ${OpenCV_LIBS}
- )
- endif ()
|