summaryrefslogtreecommitdiffstats
path: root/cmake/modules/FindDav1d.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/modules/FindDav1d.cmake')
-rw-r--r--cmake/modules/FindDav1d.cmake82
1 files changed, 82 insertions, 0 deletions
diff --git a/cmake/modules/FindDav1d.cmake b/cmake/modules/FindDav1d.cmake
new file mode 100644
index 0000000..7625afa
--- /dev/null
+++ b/cmake/modules/FindDav1d.cmake
@@ -0,0 +1,82 @@
1#.rst:
2# FindDav1d
3# --------
4# Finds the dav1d library
5#
6# This will define the following variables::
7#
8# DAV1D_FOUND - system has dav1d
9# DAV1D_INCLUDE_DIRS - the dav1d include directories
10# DAV1D_LIBRARIES - the dav1d libraries
11
12if(PKG_CONFIG_FOUND)
13 pkg_check_modules(PC_DAV1D dav1d QUIET)
14endif()
15
16find_library(DAV1D_LIBRARY NAMES dav1d libdav1d
17 PATHS ${PC_DAV1D_LIBDIR})
18
19find_path(DAV1D_INCLUDE_DIR NAMES dav1d/dav1d.h
20 PATHS ${PC_DAV1D_INCLUDEDIR})
21
22set(DAV1D_VERSION ${PC_DAV1D_VERSION})
23
24if(ENABLE_INTERNAL_DAV1D)
25 include(ExternalProject)
26
27 # Extract version
28 file(STRINGS ${CMAKE_SOURCE_DIR}/tools/depends/target/dav1d/DAV1D-VERSION VER)
29
30 string(REGEX MATCH "VERSION=[^ ]*$.*" DAV1D_VER "${VER}")
31 list(GET DAV1D_VER 0 DAV1D_VER)
32 string(SUBSTRING "${DAV1D_VER}" 8 -1 DAV1D_VER)
33
34 # allow user to override the download URL with a local tarball
35 # needed for offline build envs
36 if(DAV1D_URL)
37 get_filename_component(DAV1D_URL "${DAV1D_URL}" ABSOLUTE)
38 else()
39 set(DAV1D_URL http://mirrors.kodi.tv/build-deps/sources/dav1d-${DAV1D_VER}.tar.gz)
40 endif()
41
42 if(VERBOSE)
43 message(STATUS "DAV1D_URL: ${DAV1D_URL}")
44 endif()
45
46 set(DAV1D_LIBRARY ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/lib/libdav1d.a)
47 set(DAV1D_INCLUDE_DIR ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/include)
48 set(DAV1D_VERSION ${DAV1D_VER})
49
50 externalproject_add(dav1d
51 URL ${DAV1D_URL}
52 DOWNLOAD_NAME dav1d-${DAV1D_VER}.tar.gz
53 DOWNLOAD_DIR ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/download
54 PREFIX ${CORE_BUILD_DIR}/dav1d
55 CONFIGURE_COMMAND meson
56 --buildtype=release
57 --default-library=static
58 --prefix=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}
59 --libdir=lib
60 -Denable_asm=true
61 -Denable_tools=false
62 -Denable_examples=false
63 -Denable_tests=false
64 ../dav1d
65 BUILD_COMMAND ninja
66 INSTALL_COMMAND ninja install
67 BUILD_BYPRODUCTS ${DAV1D_LIBRARY})
68
69 set_target_properties(dav1d PROPERTIES FOLDER "External Projects")
70endif()
71
72include(FindPackageHandleStandardArgs)
73find_package_handle_standard_args(Dav1d
74 REQUIRED_VARS DAV1D_LIBRARY DAV1D_INCLUDE_DIR
75 VERSION_VAR DAV1D_VERSION)
76
77if(DAV1D_FOUND)
78 set(DAV1D_INCLUDE_DIRS ${DAV1D_INCLUDE_DIR})
79 set(DAV1D_LIBRARIES ${DAV1D_LIBRARY})
80endif()
81
82mark_as_advanced(DAV1D_INCLUDE_DIR DAV1D_LIBRARY)