44# SPDX-License-Identifier: Apache-2.0
55#
66
7- INCLUDE (ProcessorCount ) # require CMake 3.15+
8- PROCESSORCOUNT (_cpu_count )
9-
10- SET (_target
11- "RV_DEPS_DAV1D"
12- )
13-
14- SET (_version
15- ${RV_DEPS_DAV1D_VERSION}
16- )
7+ RV_CREATE_STANDARD_DEPS_VARIABLES ("RV_DEPS_DAV1D" "${RV_DEPS_DAV1D_VERSION} " "ninja" "meson" )
8+ RV_SHOW_STANDARD_DEPS_VARIABLES ()
179
1810SET (_download_url
1911 "https://github.com/videolan/dav1d/archive/refs/tags/${_version} .zip"
@@ -22,26 +14,15 @@ SET(_download_hash
2214 ${RV_DEPS_DAV1D_DOWNLOAD_HASH}
2315)
2416
25- SET (_install_dir
26- ${RV_DEPS_BASE_DIR} /${_target} /install
27- )
28- SET (_include_dir
29- ${_install_dir} /include
30- )
17+ # _lib_dir_name is needed for the meson --libdir option
3118IF (RHEL_VERBOSE)
3219 SET (_lib_dir_name
3320 lib64
3421 )
35- SET (_lib_dir
36- ${_install_dir} /lib64
37- )
3822ELSE ()
3923 SET (_lib_dir_name
4024 lib
4125 )
42- SET (_lib_dir
43- ${_install_dir} /lib
44- )
4526ENDIF ()
4627
4728SET (_david_lib_name
@@ -52,13 +33,6 @@ SET(_dav1d_lib
5233 ${_lib_dir} /${_david_lib_name}
5334)
5435
55- SET (_configure_command
56- meson
57- )
58- SET (_make_command
59- ninja
60- )
61-
6236IF (APPLE )
6337 # Cross-file must be specified because if Rosetta is used to compile for x86_64 from ARM64, Meson still detects ARM64 as the default architecture.
6438
@@ -92,7 +66,7 @@ EXTERNALPROJECT_ADD(
9266 DOWNLOAD_NAME ${_target} _${_version} .zip
9367 DOWNLOAD_DIR ${RV_DEPS_DOWNLOAD_DIR}
9468 DOWNLOAD_EXTRACT_TIMESTAMP TRUE
95- SOURCE_DIR ${RV_DEPS_BASE_DIR} / ${_target} /src
69+ SOURCE_DIR ${_source_dir}
9670 INSTALL_DIR ${_install_dir}
9771 URL ${_download_url}
9872 URL_MD5 ${_download_hash}
@@ -107,56 +81,26 @@ EXTERNALPROJECT_ADD(
10781 USES_TERMINAL_BUILD TRUE
10882)
10983
110- ADD_LIBRARY (dav1d::dav1d STATIC IMPORTED GLOBAL )
111- ADD_DEPENDENCIES (dav1d::dav1d ${_target} )
112- SET_PROPERTY (
113- TARGET dav1d::dav1d
114- PROPERTY IMPORTED_LOCATION ${_dav1d_lib}
115- )
116- SET_PROPERTY (
117- TARGET dav1d::dav1d
118- PROPERTY IMPORTED_SONAME ${_david_lib_name}
119- )
120-
121- FILE (MAKE_DIRECTORY ${_include_dir} )
122- TARGET_INCLUDE_DIRECTORIES (
84+ RV_ADD_IMPORTED_LIBRARY (
85+ NAME
12386 dav1d::dav1d
124- INTERFACE ${_include_dir}
87+ TYPE
88+ STATIC
89+ LOCATION
90+ ${_dav1d_lib}
91+ INCLUDE_DIRS
92+ ${_include_dir}
93+ DEPENDS
94+ ${_target}
95+ ADD_TO_DEPS_LIST
12596)
126- LIST (APPEND RV_DEPS_LIST dav1d::dav1d)
12797
12898IF (RV_TARGET_WINDOWS)
129- ADD_CUSTOM_COMMAND (
130- TARGET ${_target}
131- POST_BUILD
132- COMMENT "Installing ${_target} 's libs and bin into ${RV_STAGE_LIB_DIR} and ${RV_STAGE_BIN_DIR} "
133- COMMAND ${CMAKE_COMMAND} -E copy_directory ${_install_dir} /lib ${RV_STAGE_LIB_DIR}
134- COMMAND ${CMAKE_COMMAND} -E copy_directory ${_install_dir} /bin ${RV_STAGE_BIN_DIR}
135- )
136- ADD_CUSTOM_TARGET (
137- ${_target} -stage-target ALL
138- DEPENDS ${RV_STAGE_LIB_DIR} /${_david_lib_name}
139- )
99+ RV_STAGE_DEPENDENCY_LIBS (TARGET ${_target} BIN_DIR ${_install_dir} /bin OUTPUTS ${RV_STAGE_LIB_DIR} /${_david_lib_name} )
140100ELSE ()
141- ADD_CUSTOM_COMMAND (
142- COMMENT "Installing ${_target} 's libs into ${RV_STAGE_LIB_DIR} "
143- OUTPUT ${RV_STAGE_LIB_DIR} /${_david_lib_name}
144- COMMAND ${CMAKE_COMMAND} -E copy_directory ${_lib_dir} ${RV_STAGE_LIB_DIR}
145- DEPENDS ${_target}
146- )
147- ADD_CUSTOM_TARGET (
148- ${_target} -stage-target ALL
149- DEPENDS ${RV_STAGE_LIB_DIR} /${_david_lib_name}
150- )
101+ RV_STAGE_DEPENDENCY_LIBS (TARGET ${_target} OUTPUTS ${RV_STAGE_LIB_DIR} /${_david_lib_name} )
151102ENDIF ()
152103
153- ADD_DEPENDENCIES (dependencies ${_target} -stage-target )
154-
155- SET (RV_DEPS_DAV1D_VERSION
156- ${_version}
157- CACHE INTERNAL "" FORCE
158- )
159-
160104# FFmpeg customization adding dav1d codec support to FFmpeg
161105SET_PROPERTY (
162106 GLOBAL APPEND
0 commit comments