aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfuzzard <fuzzard@users.noreply.github.com>2023-09-12 10:16:44 +1000
committerGitHub <noreply@github.com>2023-09-12 10:16:44 +1000
commit498905259c54f0fe290043663490511de57ad544 (patch)
treec753354d32916095a3e16668bbd36ef56e4a5352
parent2121090d7cbb40c3777f0bdd89a9e3082d4a3105 (diff)
parent80b3624d24b6cd6905ec73d841e55f012858c279 (diff)
Merge pull request #23746 from fuzzard/cmake_fixdav1d
[Cmake] fix dav1d ENABLE_INTERNAL build
-rw-r--r--cmake/modules/FindDav1d.cmake107
-rw-r--r--cmake/modules/FindFFMPEG.cmake27
-rw-r--r--cmake/modules/FindFlatBuffers.cmake3
-rw-r--r--cmake/modules/FindRapidJSON.cmake1
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)