diff --git a/cmake/FindFFmpeg.cmake b/cmake/FindFFmpeg.cmake index 47d8769..46a5c9b 100644 --- a/cmake/FindFFmpeg.cmake +++ b/cmake/FindFFmpeg.cmake @@ -215,7 +215,7 @@ foreach (_component ${FFmpeg_FIND_COMPONENTS}) find_component(${_component} "lib${library}" ${library} "lib${library}/${library}.h") if (${_component}_FOUND) - list(APPEND FFMPEG_LIBRARIES ${${_component}_LIBRARY_NAME}) + list(APPEND FFMPEG_LIBRARIES ${${_component}_LIBRARY}) list(APPEND FFMPEG_DEFINITIONS ${${_component}_DEFINITIONS}) list(APPEND FFMPEG_INCLUDE_DIRS ${${_component}_INCLUDE_DIR}) list(APPEND FFMPEG_LIBRARY_DIRS ${${_component}_LIBRARY_DIR}) @@ -306,18 +306,19 @@ endfunction() string(TOLOWER ${_component} _lowerComponent) if (NOT TARGET FFmpeg::${_lowerComponent}) - add_library(FFmpeg::${_lowerComponent} INTERFACE IMPORTED) + add_library(FFmpeg::${_lowerComponent} UNKNOWN IMPORTED) set_target_properties(FFmpeg::${_lowerComponent} PROPERTIES INTERFACE_COMPILE_OPTIONS "${${_component}_DEFINITIONS}" INTERFACE_INCLUDE_DIRECTORIES ${${_component}_INCLUDE_DIR} - INTERFACE_LINK_LIBRARIES "${${_component}_LIBRARY_NAME}" - INTERFACE_LINK_DIRECTORIES "${${_component}_LIBRARY_DIR}" + IMPORTED_LOCATION "${${_component}_LIBRARY}" ) __ffmpeg_internal_set_dependencies(${_component}) - target_link_libraries(FFmpeg::${_lowerComponent} INTERFACE "${${_component}_LIBRARY_NAME}") + if(WIN32 AND _lowerComponent STREQUAL "avutil") + target_link_libraries(FFmpeg::${_lowerComponent} INTERFACE "Bcrypt.lib") + endif() if (UNIX AND NOT APPLE) target_link_options(FFmpeg::${_lowerComponent} INTERFACE "-Wl,--exclude-libs=lib${_lowerComponent}") endif () endif() endif() endforeach () @@ -361,14 +364,18 @@ if (shared_libs_desired AND NOT FFMPEG_SHARED_COMPONENTS) endif() if (NOT TARGET FFmpeg::FFmpeg) - add_library(FFmpeg INTERFACE) + add_library(FFmpeg INTERFACE IMPORTED) set_target_properties(FFmpeg PROPERTIES INTERFACE_COMPILE_OPTIONS "${FFMPEG_DEFINITIONS}" INTERFACE_INCLUDE_DIRECTORIES "${FFMPEG_INCLUDE_DIRS}" - INTERFACE_LINK_LIBRARIES "${FFMPEG_LIBRARIES}" INTERFACE_LINK_DIRECTORIES "${FFMPEG_LIBRARY_DIRS}" ) + target_link_libraries(FFmpeg INTERFACE ${FFMPEG_LIBRARIES}) - add_library(FFmpeg::FFmpeg ALIAS FFmpeg) + if(WIN32) + target_link_libraries(FFmpeg INTERFACE "Bcrypt.lib") + endif() + add_library(FFmpeg::FFmpeg INTERFACE IMPORTED) + target_link_libraries(FFmpeg::FFmpeg INTERFACE FFmpeg) endif() # Compile the list of required vars diff --git a/cmake/FindGObject.cmake b/cmake/FindGObject.cmake index 19a8a67..09e95d1 100644 --- a/cmake/FindGObject.cmake +++ b/cmake/FindGObject.cmake @@ -13,8 +13,8 @@ # ``GObject::GObject`` # The gobject-2.0 library -include(CMakeFindDependencyMacro) -find_dependency(GLIB2) +find_package(GLIB2) +find_package(libffi) qt_internal_disable_find_package_global_promotion(GLIB2::GLIB2) if(NOT TARGET GObject::GObject) @@ -40,6 +40,7 @@ if(NOT TARGET GObject::GObject) target_link_libraries(GObject::GObject INTERFACE ${GObject_LIBRARY} GLIB2::GLIB2 + libffi ) endif() include(FindPackageHandleStandardArgs) diff --git a/cmake/FindGStreamer.cmake b/cmake/FindGStreamer.cmake index c3becd7..895e1c8 100644 --- a/cmake/FindGStreamer.cmake +++ b/cmake/FindGStreamer.cmake @@ -19,8 +19,8 @@ # If the gstgl-1.0 library is available and target GStreamer::GStreamer exists # -include(CMakeFindDependencyMacro) -find_dependency(GObject) +find_package(GObject) +find_package(GLIB2) find_package(PkgConfig QUIET) function(find_gstreamer_component component prefix header library) @@ -74,7 +74,7 @@ find_gstreamer_component(Pbutils gstreamer-pbutils-1.0 gst/pbutils/pbutils.h gst find_gstreamer_component(Allocators gstreamer-allocators-1.0 gst/allocators/allocators.h gstallocators-1.0) if(TARGET GStreamer::Core) - target_link_libraries(GStreamer::Core INTERFACE GObject::GObject) + target_link_libraries(GStreamer::Core INTERFACE GObject::GObject GLIB2::GMODULE) endif() if(TARGET GStreamer::Base AND TARGET GStreamer::Core) target_link_libraries(GStreamer::Base INTERFACE GStreamer::Core) @@ -107,7 +107,11 @@ foreach(component ${GStreamer_FIND_COMPONENTS}) elseif(${component} STREQUAL "Gl") find_gstreamer_component(Gl gstreamer-gl-1.0 gst/gl/gl.h gstgl-1.0) if(TARGET GStreamer::Gl AND TARGET GStreamer::Video AND TARGET GStreamer::Allocators) - target_link_libraries(GStreamer::Gl INTERFACE GStreamer::Video GStreamer::Allocators) + find_package(OpenGL) + if(OpenGL_FOUND) + target_link_libraries(GStreamer::Gl INTERFACE OpenGL::GL) + endif() + target_link_libraries(GStreamer::Gl INTERFACE GStreamer::Video GStreamer::Allocators GLIB2::GMODULE) endif() else() message(WARNING "FindGStreamer.cmake: Invalid Gstreamer component \"${component}\" requested")