diff options
author | fuzzard <fuzzard@users.noreply.github.com> | 2023-09-12 10:16:44 +1000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-12 10:16:44 +1000 |
commit | 498905259c54f0fe290043663490511de57ad544 (patch) | |
tree | c753354d32916095a3e16668bbd36ef56e4a5352 | |
parent | 2121090d7cbb40c3777f0bdd89a9e3082d4a3105 (diff) | |
parent | 80b3624d24b6cd6905ec73d841e55f012858c279 (diff) |
Merge pull request #23746 from fuzzard/cmake_fixdav1d
[Cmake] fix dav1d ENABLE_INTERNAL build
-rw-r--r-- | cmake/modules/FindDav1d.cmake | 107 | ||||
-rw-r--r-- | cmake/modules/FindFFMPEG.cmake | 27 | ||||
-rw-r--r-- | cmake/modules/FindFlatBuffers.cmake | 3 | ||||
-rw-r--r-- | cmake/modules/FindRapidJSON.cmake | 1 |
4 files changed, 68 insertions, 70 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..d3291743f7 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) @@ -126,37 +127,30 @@ fi") add_library(ffmpeg::libavcodec INTERFACE IMPORTED) set_target_properties(ffmpeg::libavcodec PROPERTIES - FOLDER "FFMPEG - External Projects" INTERFACE_INCLUDE_DIRECTORIES "${FFMPEG_INCLUDE_DIR}") add_library(ffmpeg::libavfilter INTERFACE IMPORTED) set_target_properties(ffmpeg::libavfilter PROPERTIES - FOLDER "FFMPEG - External Projects" INTERFACE_INCLUDE_DIRECTORIES "${FFMPEG_INCLUDE_DIR}") add_library(ffmpeg::libavformat INTERFACE IMPORTED) set_target_properties(ffmpeg::libavformat PROPERTIES - FOLDER "FFMPEG - External Projects" INTERFACE_INCLUDE_DIRECTORIES "${FFMPEG_INCLUDE_DIR}") add_library(ffmpeg::libavutil INTERFACE IMPORTED) set_target_properties(ffmpeg::libavutil PROPERTIES - FOLDER "FFMPEG - External Projects" INTERFACE_INCLUDE_DIRECTORIES "${FFMPEG_INCLUDE_DIR}") add_library(ffmpeg::libswscale INTERFACE IMPORTED) set_target_properties(ffmpeg::libswscale PROPERTIES - FOLDER "FFMPEG - External Projects" INTERFACE_INCLUDE_DIRECTORIES "${FFMPEG_INCLUDE_DIR}") add_library(ffmpeg::libswresample INTERFACE IMPORTED) set_target_properties(ffmpeg::libswresample PROPERTIES - FOLDER "FFMPEG - External Projects" INTERFACE_INCLUDE_DIRECTORIES "${FFMPEG_INCLUDE_DIR}") add_library(ffmpeg::libpostproc INTERFACE IMPORTED) set_target_properties(ffmpeg::libpostproc PROPERTIES - FOLDER "FFMPEG - External Projects" INTERFACE_INCLUDE_DIRECTORIES "${FFMPEG_INCLUDE_DIR}") endmacro() @@ -395,7 +389,6 @@ if(FFMPEG_FOUND) if(NOT TARGET ffmpeg::ffmpeg) add_library(ffmpeg::ffmpeg INTERFACE IMPORTED) set_target_properties(ffmpeg::ffmpeg PROPERTIES - FOLDER "External Projects" INTERFACE_INCLUDE_DIRECTORIES "${FFMPEG_INCLUDE_DIRS}" INTERFACE_COMPILE_DEFINITIONS "${_ffmpeg_definitions}") endif() diff --git a/cmake/modules/FindFlatBuffers.cmake b/cmake/modules/FindFlatBuffers.cmake index 0553c976ce..924bcd28c1 100644 --- a/cmake/modules/FindFlatBuffers.cmake +++ b/cmake/modules/FindFlatBuffers.cmake @@ -44,8 +44,7 @@ if(NOT TARGET flatbuffers::flatbuffers) add_library(flatbuffers::flatbuffers INTERFACE IMPORTED) set_target_properties(flatbuffers::flatbuffers PROPERTIES - FOLDER "External Projects" - INTERFACE_INCLUDE_DIRECTORIES "${FLATBUFFERS_INCLUDE_DIR}") + INTERFACE_INCLUDE_DIRECTORIES "${FLATBUFFERS_INCLUDE_DIR}") add_dependencies(flatbuffers::flatbuffers flatbuffers::flatc) diff --git a/cmake/modules/FindRapidJSON.cmake b/cmake/modules/FindRapidJSON.cmake index 5f6b290879..bfa8af00c4 100644 --- a/cmake/modules/FindRapidJSON.cmake +++ b/cmake/modules/FindRapidJSON.cmake @@ -64,7 +64,6 @@ if(NOT TARGET RapidJSON::RapidJSON) if(RAPIDJSON_FOUND) add_library(RapidJSON::RapidJSON INTERFACE IMPORTED) set_target_properties(RapidJSON::RapidJSON PROPERTIES - FOLDER "External Projects" INTERFACE_INCLUDE_DIRECTORIES "${RAPIDJSON_INCLUDE_DIRS}") if(TARGET rapidjson) add_dependencies(RapidJSON::RapidJSON rapidjson) |