FindFFMPEG.cmake 4.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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. unset(VERSION)
  12. #查找库文件,需要判断操作系统,位数
  13. if(CMAKE_SYSTEM_NAME MATCHES "Windows")
  14. if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
  15. if(CMAKE_SIZEOF_VOID_P EQUAL 8)
  16. set(VERSION n5.1.6)
  17. list(APPEND FFMPEG_INCLUDE_DIR ${CMAKE_CURRENT_LIST_DIR}/ffmpeg-n5.1.6/include)
  18. list(APPEND FFMPEG_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ffmpeg-n5.1.6/lib/libavcodec.dll.a)
  19. list(APPEND FFMPEG_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ffmpeg-n5.1.6/lib/libavdevice.dll.a)
  20. list(APPEND FFMPEG_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ffmpeg-n5.1.6/lib/libavfilter.dll.a)
  21. list(APPEND FFMPEG_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ffmpeg-n5.1.6/lib/libavformat.dll.a)
  22. list(APPEND FFMPEG_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ffmpeg-n5.1.6/lib/libavutil.dll.a)
  23. list(APPEND FFMPEG_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ffmpeg-n5.1.6/lib/libswresample.dll.a)
  24. list(APPEND FFMPEG_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ffmpeg-n5.1.6/lib/libswscale.dll.a)
  25. elseif(CMAKE_SIZEOF_VOID_P EQUAL 4)
  26. # message(STATUS "Not support 32bit GNU Compiler")
  27. set(VERSION n4.4)
  28. list(APPEND FFMPEG_INCLUDE_DIR ${CMAKE_CURRENT_LIST_DIR}/ffmpeg-n4.4-win32/include)
  29. list(APPEND FFMPEG_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ffmpeg-n4.4-win32/lib/libavcodec.dll.a)
  30. list(APPEND FFMPEG_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ffmpeg-n4.4-win32/lib/libavdevice.dll.a)
  31. list(APPEND FFMPEG_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ffmpeg-n4.4-win32/lib/libavfilter.dll.a)
  32. list(APPEND FFMPEG_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ffmpeg-n4.4-win32/lib/libavformat.dll.a)
  33. list(APPEND FFMPEG_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ffmpeg-n4.4-win32/lib/libavutil.dll.a)
  34. list(APPEND FFMPEG_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ffmpeg-n4.4-win32/lib/libswresample.dll.a)
  35. list(APPEND FFMPEG_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ffmpeg-n4.4-win32/lib/libswscale.dll.a)
  36. endif()
  37. elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
  38. list(APPEND FFMPEG_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ffmpeg-n5.1.6/lib/avcodec.lib)
  39. list(APPEND FFMPEG_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ffmpeg-n5.1.6/lib/avdevice.lib)
  40. list(APPEND FFMPEG_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ffmpeg-n5.1.6/lib/avfilter.lib)
  41. list(APPEND FFMPEG_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ffmpeg-n5.1.6/lib/avformat.lib)
  42. list(APPEND FFMPEG_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ffmpeg-n5.1.6/lib/avutil.lib)
  43. list(APPEND FFMPEG_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ffmpeg-n5.1.6/lib/swresample.lib)
  44. list(APPEND FFMPEG_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ffmpeg-n5.1.6/lib/swscale.lib)
  45. endif()
  46. #添加Linux版本
  47. elseif(CMAKE_SYSTEM_NAME MATCHES "Linux")
  48. set(VERSION 4.4.5)
  49. list(APPEND FFMPEG_INCLUDE_DIR ${CMAKE_CURRENT_LIST_DIR}/ffmpeg4.4.5/include)
  50. list(APPEND FFMPEG_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ffmpeg4.4.5/libs/linux/libavcodec.so)
  51. list(APPEND FFMPEG_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ffmpeg4.4.5/libs/linux/libavdevice.so)
  52. list(APPEND FFMPEG_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ffmpeg4.4.5/libs/linux/libavfilter.so)
  53. list(APPEND FFMPEG_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ffmpeg4.4.5/libs/linux/libavformat.so)
  54. list(APPEND FFMPEG_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ffmpeg4.4.5/libs/linux/libavutil.so)
  55. list(APPEND FFMPEG_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ffmpeg4.4.5/libs/linux/libswresample.so)
  56. list(APPEND FFMPEG_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/ffmpeg4.4.5/libs/linux/libswscale.so)
  57. endif()
  58. #设置查找到后的变量
  59. if(FFMPEG_INCLUDE_DIR AND FFMPEG_LIBRARY)
  60. set(FFMPEG_FOUND TRUE)
  61. set(FFMPEG_VERSION ${VERSION})
  62. message(STATUS "include : FFMPEG_INCLUDE_DIR")
  63. message(STATUS "Library : FFMPEG_LIBRARY")
  64. else()
  65. set(FFMPEG_FOUND FALSE)
  66. endif()
  67. message(STATUS "---------------------------------")