diff options
-rw-r--r-- | cmake/modules/FindDav1d.cmake | 107 | ||||
-rw-r--r-- | cmake/modules/FindFFMPEG.cmake | 19 |
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) |