FindLibavutil.cmake 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. find_package(PkgConfig)
  2. pkg_check_modules(PC_LIBAVUTIL QUIET libavutil)
  3. set(LIBAVUTIL_STANDARD_DEFINITIONS ${PC_LIBAVUTIL_CFLAGS_OTHER}
  4. CACHE STRING
  5. "Libavutil required CFLAGS")
  6. set(LIBAVUTIL_STATIC_DEFINITIONS ${PC_LIBAVUTIL_STATIC_CFLAGS_OTHER}
  7. CACHE STRING
  8. "Libavutil static required CFLAGS")
  9. find_path(LIBAVUTIL_STANDARD_INCLUDE_DIR libavutil/avutil.h
  10. HINTS ${PC_LIBAVUTIL_INCLUDEDIR}
  11. ${PC_LIBAVUTIL_INCLUDE_DIRS}
  12. PATH_SUFFIXES libavutil)
  13. find_path(LIBAVUTIL_STATIC_INCLUDE_DIR libavutil/avutil.h
  14. HINTS ${PC_LIBAVUTIL_STATIC_INCLUDEDIR}
  15. ${PC_LIBAVUTIL_STATIC_INCLUDE_DIRS}
  16. PATH_SUFFIXES libavutil)
  17. if(NOT LIBAVUTIL_STANDARD_LIBRARIES)
  18. set(LIBAVUTIL_STANDARD_LIBRARIES_ "")
  19. foreach(lib ${PC_LIBAVUTIL_LIBRARIES})
  20. find_library(_lib_file NAMES ${lib}
  21. HINTS ${PC_LIBAVUTIL_LIBDIR}
  22. ${PC_LIBAVUTIL_LIBRARY_DIRS})
  23. if(_lib_file)
  24. list(APPEND LIBAVUTIL_STANDARD_LIBRARIES_ ${_lib_file})
  25. endif()
  26. unset(_lib_file CACHE)
  27. endforeach()
  28. set(LIBAVUTIL_STANDARD_LIBRARIES ${LIBAVUTIL_STANDARD_LIBRARIES_}
  29. CACHE STRING
  30. "Libavutil (dynamic) libraries")
  31. unset(LIBAVUTIL_STANDARD_LIBRARIES_)
  32. endif()
  33. if(NOT LIBAVUTIL_STATIC_LIBRARIES)
  34. set(LIBAVUTIL_STATIC_LIBRARIES_ "")
  35. set(lib_suffixes ${CMAKE_FIND_LIBRARY_SUFFIXES})
  36. set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_STATIC_LIBRARY_SUFFIX}
  37. ${CMAKE_SHARED_LIBRARY_SUFFIX} ${CMAKE_SHARED_MODULE_SUFFIX})
  38. foreach(lib ${PC_LIBAVUTIL_STATIC_LIBRARIES})
  39. find_library(_lib_file NAMES ${lib}
  40. HINTS ${PC_LIBAVUTIL_LIBDIR}
  41. ${PC_LIBAVUTIL_LIBRARY_DIRS})
  42. if(_lib_file)
  43. list(APPEND LIBAVUTIL_STATIC_LIBRARIES_ ${_lib_file})
  44. else()
  45. list(APPEND LIBAVUTIL_STATIC_LIBRARIES_ ${lib})
  46. endif()
  47. unset(_lib_file CACHE)
  48. endforeach()
  49. set(CMAKE_FIND_LIBRARY_SUFFIXES ${lib_suffixes})
  50. unset(lib_suffixes)
  51. set(LIBAVUTIL_STATIC_LIBRARIES ${LIBAVUTIL_STATIC_LIBRARIES_}
  52. CACHE STRING
  53. "Libavutil static libraries")
  54. unset(LIBAVUTIL_STATIC_LIBRARIES_)
  55. endif()
  56. if(Libavutil_FIND_COMPONENTS AND
  57. Libavutil_FIND_COMPONENTS STREQUAL "static")
  58. set(LIBAVUTIL_DEFINITION ${LIBAVUTIL_STATIC_DEFINITIONS})
  59. set(LIBAVUTIL_INCLUDE_DIR ${LIBAVUTIL_STATIC_INCLUDE_DIR})
  60. set(LIBAVUTIL_LIBRARY ${LIBAVUTIL_STATIC_LIBRARIES})
  61. else()
  62. set(LIBAVUTIL_DEFINITION ${LIBAVUTIL_STANDARD_DEFINITIONS})
  63. set(LIBAVUTIL_INCLUDE_DIR ${LIBAVUTIL_STANDARD_INCLUDE_DIR})
  64. set(LIBAVUTIL_LIBRARY ${LIBAVUTIL_STANDARD_LIBRARIES})
  65. endif()
  66. include(FindPackageHandleStandardArgs)
  67. find_package_handle_standard_args(Libavutil DEFAULT_MSG
  68. LIBAVUTIL_INCLUDE_DIR LIBAVUTIL_LIBRARY)
  69. if(LIBAVUTIL_FOUND)
  70. set(LIBAVUTIL_DEFINITIONS ${LIBAVUTIL_DEFINITION})
  71. set(LIBAVUTIL_INCLUDE_DIRS ${LIBAVUTIL_INCLUDE_DIR})
  72. set(LIBAVUTIL_LIBRARIES ${LIBAVUTIL_LIBRARY})
  73. endif()
  74. mark_as_advanced(
  75. LIBAVUTIL_STANDARD_DEFINITIONS
  76. LIBAVUTIL_STANDARD_INCLUDE_DIR
  77. LIBAVUTIL_STANDARD_LIBRARIES
  78. LIBAVUTIL_STATIC_DEFINITIONS
  79. LIBAVUTIL_STATIC_INCLUDE_DIR
  80. LIBAVUTIL_STATIC_LIBRARIES
  81. )