FindFFMPEG.cmake 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. #国密加解密库
  2. message(STATUS "***** Find FFMEPG Library *****")
  3. #寻找头文件
  4. # find_path(FFMPEG_INCLUDE_DIR
  5. # NAMES libavformat/avformat.h
  6. # PATHS ${CMAKE_CURRENT_LIST_DIR}/include
  7. # NO_DEFAULT_PATH
  8. # )
  9. unset(FFMPEG_INCLUDE_DIR)
  10. unset(FFMPEG_LIBRARY)
  11. #查找库文件,需要判断操作系统,位数
  12. if(CMAKE_SYSTEM_NAME MATCHES "Windows")
  13. list(APPEND FFMPEG_INCLUDE_DIR ${CMAKE_CURRENT_LIST_DIR}/ffmpeg-n5.1.6/include)
  14. if(CMAKE_CXX_COMPILER_ID MATCHES GNU)
  15. if(CMAKE_SIZEOF_VOID_P EQUAL 8)
  16. list(APPEND FFMPEG_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ffmpeg-n5.1.6/lib/libavcodec.dll.a)
  17. list(APPEND FFMPEG_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ffmpeg-n5.1.6/lib/libavdevice.dll.a)
  18. list(APPEND FFMPEG_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ffmpeg-n5.1.6/lib/libavfilter.dll.a)
  19. list(APPEND FFMPEG_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ffmpeg-n5.1.6/lib/libavformat.dll.a)
  20. list(APPEND FFMPEG_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ffmpeg-n5.1.6/lib/libavutil.dll.a)
  21. list(APPEND FFMPEG_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ffmpeg-n5.1.6/lib/libswresample.dll.a)
  22. list(APPEND FFMPEG_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ffmpeg-n5.1.6/lib/libswscale.dll.a)
  23. elseif(CMAKE_SIZEOF_VOID_P EQUAL 4)
  24. message(STATUS "Not support 32bit GNU Compiler")
  25. endif()
  26. elseif(CMAKE_CXX_COMPILER_ID MATCHES MSVC)
  27. list(APPEND FFMPEG_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ffmpeg-n5.1.6/lib/avcodec.lib)
  28. list(APPEND FFMPEG_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ffmpeg-n5.1.6/lib/avdevice.lib)
  29. list(APPEND FFMPEG_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ffmpeg-n5.1.6/lib/avfilter.lib)
  30. list(APPEND FFMPEG_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ffmpeg-n5.1.6/lib/avformat.lib)
  31. list(APPEND FFMPEG_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ffmpeg-n5.1.6/lib/avutil.lib)
  32. list(APPEND FFMPEG_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ffmpeg-n5.1.6/lib/swresample.lib)
  33. list(APPEND FFMPEG_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ffmpeg-n5.1.6/lib/swscale.lib)
  34. endif()
  35. #添加Linux版本
  36. elseif(CMAKE_SYSTEM_NAME MATCHES "Linux")
  37. list(APPEND FFMPEG_INCLUDE_DIR ${CMAKE_CURRENT_LIST_DIR}/ffmpeg4.4.5/include)
  38. list(APPEND FFMPEG_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ffmpeg4.4.5/libs/linux/libavcodec.so)
  39. list(APPEND FFMPEG_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ffmpeg4.4.5/libs/linux/libavdevice.so)
  40. list(APPEND FFMPEG_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ffmpeg4.4.5/libs/linux/libavfilter.so)
  41. list(APPEND FFMPEG_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ffmpeg4.4.5/libs/linux/libavformat.so)
  42. list(APPEND FFMPEG_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ffmpeg4.4.5/libs/linux/libavutil.so)
  43. list(APPEND FFMPEG_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ffmpeg4.4.5/libs/linux/libswresample.so)
  44. list(APPEND FFMPEG_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ffmpeg4.4.5/libs/linux/libswscale.so)
  45. endif()
  46. #设置查找到后的变量
  47. if(FFMPEG_INCLUDE_DIR AND FFMPEG_LIBRARY)
  48. set(FFMPEG_FOUND TRUE)
  49. if(CMAKE_SYSTEM_NAME MATCHES "Windows")
  50. set(FFMPEG_VERSION n5.1.6)
  51. elseif(CMAKE_SYSTEM_NAME MATCHES "Linux")
  52. set(FFMPEG_VERSION 4.4.5)
  53. endif()
  54. message(STATUS "include : FFMPEG_INCLUDE_DIR")
  55. message(STATUS "Library : FFMPEG_LIBRARY")
  56. else()
  57. set(FFMPEG_FOUND FALSE)
  58. endif()
  59. message(STATUS "---------------------------------")