aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmake/modules/FindDav1d.cmake107
-rw-r--r--cmake/modules/FindFFMPEG.cmake19
2 files changed, 67 insertions, 59 deletions
diff --git a/cmake/modules/FindDav1d.cmake b/cmake/modules/FindDav1d.cmake
index 9e91a61395..160a53226b 100644
--- a/cmake/modules/FindDav1d.cmake
+++ b/cmake/modules/FindDav1d.cmake
@@ -3,60 +3,67 @@
# --------
# Finds the dav1d library
#
-# This will define the following variables::
+# This will define the following target:
#
-# DAV1D_FOUND - system has dav1d
-# DAV1D_INCLUDE_DIRS - the dav1d include directories
-# DAV1D_LIBRARIES - the dav1d libraries
-
-if(ENABLE_INTERNAL_DAV1D)
- include(cmake/scripts/common/ModuleHelpers.cmake)
-
- set(MODULE_LC dav1d)
-
- SETUP_BUILD_VARS()
-
- set(DAV1D_VERSION ${${MODULE}_VER})
-
- find_program(NINJA_EXECUTABLE ninja REQUIRED)
- find_program(MESON_EXECUTABLE meson REQUIRED)
-
- set(CONFIGURE_COMMAND ${MESON_EXECUTABLE}
- --buildtype=release
- --default-library=static
- --prefix=${DEPENDS_PATH}
- --libdir=lib
- -Denable_asm=true
- -Denable_tools=false
- -Denable_examples=false
- -Denable_tests=false
- ../dav1d)
- set(BUILD_COMMAND ${NINJA_EXECUTABLE})
- set(INSTALL_COMMAND ${NINJA_EXECUTABLE} install)
-
- BUILD_DEP_TARGET()
-else()
- if(PKG_CONFIG_FOUND)
- pkg_check_modules(PC_DAV1D dav1d QUIET)
- endif()
+# dav1d::dav1d - The dav1d library
- find_library(DAV1D_LIBRARY NAMES dav1d libdav1d
- PATHS ${PC_DAV1D_LIBDIR})
+if(NOT TARGET dav1d::dav1d)
+ if(ENABLE_INTERNAL_DAV1D)
+ include(cmake/scripts/common/ModuleHelpers.cmake)
- find_path(DAV1D_INCLUDE_DIR NAMES dav1d/dav1d.h
- PATHS ${PC_DAV1D_INCLUDEDIR})
+ set(MODULE_LC dav1d)
- set(DAV1D_VERSION ${PC_DAV1D_VERSION})
-endif()
+ SETUP_BUILD_VARS()
-include(FindPackageHandleStandardArgs)
-find_package_handle_standard_args(Dav1d
- REQUIRED_VARS DAV1D_LIBRARY DAV1D_INCLUDE_DIR
- VERSION_VAR DAV1D_VERSION)
+ set(DAV1D_VERSION ${${MODULE}_VER})
-if(DAV1D_FOUND)
- set(DAV1D_INCLUDE_DIRS ${DAV1D_INCLUDE_DIR})
- set(DAV1D_LIBRARIES ${DAV1D_LIBRARY})
-endif()
+ find_program(NINJA_EXECUTABLE ninja REQUIRED)
+ find_program(MESON_EXECUTABLE meson REQUIRED)
+
+ set(CONFIGURE_COMMAND ${MESON_EXECUTABLE}
+ --buildtype=release
+ --default-library=static
+ --prefix=${DEPENDS_PATH}
+ --libdir=lib
+ -Denable_asm=true
+ -Denable_tools=false
+ -Denable_examples=false
+ -Denable_tests=false
+ ../dav1d)
+ set(BUILD_COMMAND ${NINJA_EXECUTABLE})
+ set(INSTALL_COMMAND ${NINJA_EXECUTABLE} install)
+
+ BUILD_DEP_TARGET()
+ else()
+ if(PKG_CONFIG_FOUND)
+ pkg_check_modules(PC_DAV1D dav1d QUIET)
+ endif()
+
+ find_library(DAV1D_LIBRARY NAMES dav1d libdav1d
+ PATHS ${PC_DAV1D_LIBDIR}
+ NO_CACHE)
+
+ find_path(DAV1D_INCLUDE_DIR NAMES dav1d/dav1d.h
+ PATHS ${PC_DAV1D_INCLUDEDIR}
+ NO_CACHE)
-mark_as_advanced(DAV1D_INCLUDE_DIR DAV1D_LIBRARY)
+ set(DAV1D_VERSION ${PC_DAV1D_VERSION})
+ endif()
+
+ include(FindPackageHandleStandardArgs)
+ find_package_handle_standard_args(Dav1d
+ REQUIRED_VARS DAV1D_LIBRARY DAV1D_INCLUDE_DIR
+ VERSION_VAR DAV1D_VERSION)
+
+ if(DAV1D_FOUND)
+ add_library(dav1d::dav1d UNKNOWN IMPORTED)
+ set_target_properties(dav1d::dav1d PROPERTIES
+ IMPORTED_LOCATION "${DAV1D_LIBRARY}"
+ INTERFACE_INCLUDE_DIRECTORIES "${DAV1D_INCLUDE_DIR}")
+ set_property(GLOBAL APPEND PROPERTY INTERNAL_DEPS_PROP dav1d::dav1d)
+
+ if(TARGET dav1d)
+ add_dependencies(dav1d::dav1d dav1d)
+ endif()
+ endif()
+endif()
diff --git a/cmake/modules/FindFFMPEG.cmake b/cmake/modules/FindFFMPEG.cmake
index 96d9533406..6cacc4aa1a 100644
--- a/cmake/modules/FindFFMPEG.cmake
+++ b/cmake/modules/FindFFMPEG.cmake
@@ -32,20 +32,21 @@ macro(buildFFMPEG)
# Check for dependencies - Must be done before SETUP_BUILD_VARS
get_libversion_data("dav1d" "target")
find_package(Dav1d ${LIB_DAV1D_VER} MODULE)
- if(NOT DAV1D_FOUND)
+ if(NOT TARGET dav1d::dav1d)
message(STATUS "dav1d not found, internal ffmpeg build will be missing AV1 support!")
+ else()
+ set(FFMPEG_OPTIONS -DENABLE_DAV1D=ON)
endif()
set(MODULE_LC ffmpeg)
SETUP_BUILD_VARS()
- set(FFMPEG_OPTIONS -DENABLE_CCACHE=${ENABLE_CCACHE}
- -DCCACHE_PROGRAM=${CCACHE_PROGRAM}
- -DENABLE_VAAPI=${ENABLE_VAAPI}
- -DENABLE_VDPAU=${ENABLE_VDPAU}
- -DENABLE_DAV1D=${DAV1D_FOUND}
- -DEXTRA_FLAGS=${FFMPEG_EXTRA_FLAGS})
+ list(APPEND FFMPEG_OPTIONS -DENABLE_CCACHE=${ENABLE_CCACHE}
+ -DCCACHE_PROGRAM=${CCACHE_PROGRAM}
+ -DENABLE_VAAPI=${ENABLE_VAAPI}
+ -DENABLE_VDPAU=${ENABLE_VDPAU}
+ -DEXTRA_FLAGS=${FFMPEG_EXTRA_FLAGS})
if(KODI_DEPENDSBUILD)
set(CROSS_ARGS -DDEPENDS_PATH=${DEPENDS_PATH}
@@ -87,8 +88,8 @@ macro(buildFFMPEG)
BUILD_DEP_TARGET()
- if(TARGET dav1d)
- add_dependencies(ffmpeg dav1d)
+ if(TARGET dav1d::dav1d)
+ add_dependencies(ffmpeg dav1d::dav1d)
endif()
find_program(BASH_COMMAND bash)