Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/videolan/dav1d.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2019-08-09 22:56:00 +0300
committerJames Almer <jamrial@gmail.com>2019-08-10 17:26:17 +0300
commit3a77c57b0ca06c613fea96afe63d2870f513e97f (patch)
tree63d8fcc401b56d488fd2c02102cc805f2e5105a6
parent42ea146f847d761b91d66d4db2c5a6341fefee75 (diff)
meson: move dav1dplay to a new examples section
dav1dplay shouldn't be built by default. And it's an example more than a tool.
-rw-r--r--examples/dav1dplay.c (renamed from tools/dav1dplay.c)3
-rw-r--r--examples/meson.build62
-rw-r--r--meson.build2
-rw-r--r--meson_options.txt5
-rw-r--r--tools/meson.build82
5 files changed, 107 insertions, 47 deletions
diff --git a/tools/dav1dplay.c b/examples/dav1dplay.c
index de1522d..7033e65 100644
--- a/tools/dav1dplay.c
+++ b/examples/dav1dplay.c
@@ -38,8 +38,7 @@
#include "dav1d/dav1d.h"
-#include "input/input.h"
-#include "dav1d_cli_parse.h"
+#include "tools/input/input.h"
/**
* Settings structure
diff --git a/examples/meson.build b/examples/meson.build
new file mode 100644
index 0000000..e2c9030
--- /dev/null
+++ b/examples/meson.build
@@ -0,0 +1,62 @@
+# Copyright © 2018, VideoLAN and dav1d authors
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this
+# list of conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following disclaimer in the documentation
+# and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#
+# Build definition for the dav1d examples
+#
+
+# Leave subdir if examples are disabled
+if not get_option('enable_examples')
+ subdir_done()
+endif
+
+
+# dav1d player sources
+dav1dplay_sources = files(
+ 'dav1dplay.c',
+)
+
+sdl2_dependency = dependency('sdl2', version: '>= 2.0.1', required: false)
+
+if sdl2_dependency.found()
+ placebo_dependency = dependency('libplacebo', version: '>= 1.18.0', required: false)
+ vulkan_dependency = dependency('vulkan', required: false)
+ sdl_has_vulkan = cc.has_header('SDL_vulkan.h', dependencies: [sdl2_dependency])
+ cflag_placebo = []
+ deps_placebo = []
+ if placebo_dependency.found() and vulkan_dependency.found() and sdl_has_vulkan
+ cflag_placebo += '-DHAVE_PLACEBO_VULKAN=1'
+ deps_placebo = [vulkan_dependency, placebo_dependency]
+ endif
+ dav1dplay = executable('dav1dplay',
+ dav1dplay_sources,
+ rev_target,
+
+ link_with : [libdav1d, dav1d_input_objs],
+ include_directories : [dav1d_inc_dirs],
+ dependencies : [getopt_dependency, sdl2_dependency, deps_placebo],
+ install : true,
+ c_args : cflag_placebo,
+ )
+endif
diff --git a/meson.build b/meson.build
index 21ad84e..2f74c75 100644
--- a/meson.build
+++ b/meson.build
@@ -394,4 +394,6 @@ subdir('src')
subdir('tools')
+subdir('examples')
+
subdir('tests')
diff --git a/meson_options.txt b/meson_options.txt
index 0a7beb5..cdd27c2 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -15,6 +15,11 @@ option('enable_tools',
value: true,
description: 'Build dav1d cli tools')
+option('enable_examples',
+ type: 'boolean',
+ value: false,
+ description: 'Build dav1d examples')
+
option('enable_tests',
type: 'boolean',
value: true,
diff --git a/tools/meson.build b/tools/meson.build
index bfe83fc..c7650c5 100644
--- a/tools/meson.build
+++ b/tools/meson.build
@@ -22,9 +22,38 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-# Build definition for the dav1d tools
-#
+# Common source files used by tools and examples
+
+dav1d_input_sources = files(
+ 'input/input.c',
+ 'input/annexb.c',
+ 'input/ivf.c',
+)
+
+dav1d_output_sources = files(
+ 'output/md5.c',
+ 'output/null.c',
+ 'output/output.c',
+ 'output/y4m2.c',
+ 'output/yuv.c',
+)
+
+dav1d_input_objs = static_library('dav1d_input',
+ dav1d_input_sources,
+
+ include_directories : dav1d_inc_dirs,
+ install : false,
+ build_by_default : false,
+)
+
+dav1d_output_objs = static_library('dav1d_output',
+ dav1d_output_sources,
+
+ include_directories : dav1d_inc_dirs,
+ install : false,
+ build_by_default : false,
+)
+
# Leave subdir if tools are disabled
if not get_option('enable_tools')
@@ -32,6 +61,10 @@ if not get_option('enable_tools')
endif
+#
+# Build definition for the dav1d tools
+#
+
# Configuratin data for cli_config.h
cli_cdata = configuration_data()
@@ -56,55 +89,14 @@ cli_config_h_target = configure_file(output: 'cli_config.h', configuration: cli_
dav1d_sources = files(
'dav1d.c',
'dav1d_cli_parse.c',
- 'input/input.c',
- 'input/annexb.c',
- 'input/ivf.c',
- 'output/md5.c',
- 'output/null.c',
- 'output/output.c',
- 'output/y4m2.c',
- 'output/yuv.c',
)
dav1d = executable('dav1d',
dav1d_sources,
rev_target, cli_config_h_target,
- link_with : libdav1d,
+ link_with : [libdav1d, dav1d_input_objs, dav1d_output_objs],
include_directories : [dav1d_inc_dirs],
dependencies : [getopt_dependency, thread_dependency, rt_dependency],
install : true,
)
-
-
-# dav1d player sources
-dav1dplay_sources = files(
- 'dav1dplay.c',
- 'input/input.c',
- 'input/annexb.c',
- 'input/ivf.c',
-)
-
-sdl2_dependency = dependency('sdl2', version: '>= 2.0.1', required: false)
-
-if sdl2_dependency.found()
- placebo_dependency = dependency('libplacebo', version: '>= 1.18.0', required: false)
- vulkan_dependency = dependency('vulkan', required: false)
- sdl_has_vulkan = cc.has_header('SDL_vulkan.h', dependencies: [sdl2_dependency])
- cflag_placebo = []
- deps_placebo = []
- if placebo_dependency.found() and vulkan_dependency.found() and sdl_has_vulkan
- cflag_placebo += '-DHAVE_PLACEBO_VULKAN=1'
- deps_placebo = [vulkan_dependency, placebo_dependency]
- endif
- dav1dplay = executable('dav1dplay',
- dav1dplay_sources,
- rev_target,
-
- link_with : libdav1d,
- include_directories : [dav1d_inc_dirs],
- dependencies : [getopt_dependency, sdl2_dependency, deps_placebo],
- install : true,
- c_args : cflag_placebo,
- )
-endif