vcpkg-cmake-wrapper.cmake 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. set(FFMPEG_PREV_MODULE_PATH ${CMAKE_MODULE_PATH})
  2. list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR})
  3. include(SelectLibraryConfigurations)
  4. cmake_policy(SET CMP0012 NEW)
  5. set(vcpkg_no_avcodec_target ON)
  6. set(vcpkg_no_avformat_target ON)
  7. set(vcpkg_no_avutil_target ON)
  8. if(TARGET FFmpeg::avcodec)
  9. set(vcpkg_no_avcodec_target OFF)
  10. endif()
  11. if(TARGET FFmpeg::avformat)
  12. set(vcpkg_no_avformat_target OFF)
  13. endif()
  14. if(TARGET FFmpeg::avutil)
  15. set(vcpkg_no_avutil_target OFF)
  16. endif()
  17. _find_package(${ARGS})
  18. if(WIN32)
  19. set(PKG_CONFIG_EXECUTABLE "${CMAKE_CURRENT_LIST_DIR}/../../../@_HOST_TRIPLET@/tools/pkgconf/pkgconf.exe" CACHE STRING "" FORCE)
  20. endif()
  21. set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH ON) # Required for CMAKE_MINIMUM_REQUIRED_VERSION VERSION_LESS 3.1 which otherwise ignores CMAKE_PREFIX_PATH
  22. if(@WITH_MFX@)
  23. find_package(PkgConfig )
  24. pkg_check_modules(libmfx IMPORTED_TARGET libmfx)
  25. list(APPEND FFMPEG_LIBRARIES PkgConfig::libmfx)
  26. if(vcpkg_no_avcodec_target AND TARGET FFmpeg::avcodec)
  27. target_link_libraries(FFmpeg::avcodec INTERFACE PkgConfig::libmfx)
  28. endif()
  29. if(vcpkg_no_avutil_target AND TARGET FFmpeg::avutil)
  30. target_link_libraries(FFmpeg::avutil INTERFACE PkgConfig::libmfx)
  31. endif()
  32. endif()
  33. set(FFMPEG_LIBRARY ${FFMPEG_LIBRARIES})
  34. set(CMAKE_MODULE_PATH ${FFMPEG_PREV_MODULE_PATH})
  35. unset(vcpkg_no_avformat_target)
  36. unset(vcpkg_no_avcodec_target)
  37. unset(vcpkg_no_avutil_target)