blob: d2cf60907434e1259bf09df6af6a5dd81887383f [file] [log] [blame]
# Copyright 2019 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//common-mk/deps.gni")
import("//common-mk/mojom_bindings_generator.gni")
import("//common-mk/pkg_config.gni")
group("all") {
deps = [
":libvda",
":libvda_gpu_unittest",
":libvda_pc",
]
if (use.test) {
deps += [ ":libvda_fake_unittest" ]
}
if (use.fuzzer) {
deps += [ ":libvda_fuzzer" ]
}
}
pkg_config("target_defaults") {
pkg_deps = [
"dbus-1",
"libchrome",
"libmojo",
"system_api",
]
}
generate_mojom_bindings("video_mojo_bindings") {
mojo_root = "${platform2_root}"
use_pic = true
pkg_deps = [
"libchrome",
"libmojo",
]
sources = [
"gpu/mojom/gfx.mojom",
"gpu/mojom/video.mojom",
"gpu/mojom/video_common.mojom",
"gpu/mojom/video_decode_accelerator.mojom",
"gpu/mojom/video_encode_accelerator.mojom",
"gpu/mojom/video_protected_buffer_allocator.mojom",
]
}
source_set("libvda_source_set") {
configs += [
":target_defaults",
"//common-mk:pic",
]
deps = [ ":video_mojo_bindings" ]
sources = [
"decode/fake/fake_vda_impl.cc",
"decode/gpu/gpu_vda_impl.cc",
"decode_wrapper.cc",
"encode/fake/fake_vea_impl.cc",
"encode/gpu/gpu_vea_impl.cc",
"encode_wrapper.cc",
"event_pipe.cc",
"gbm_util.cc",
"gpu/format_util.cc",
"gpu/vaf_connection.cc",
]
}
shared_library("libvda") {
output_name = "libvda"
sources = [ "at_exit_util.cc" ]
pkg_deps = [ "gbm" ]
deps = [ ":libvda_source_set" ]
}
generate_pkg_config("libvda_pc") {
deps = [ ":libvda" ]
output_name = "libvda"
description = "CrOS VDA Connection Library"
version = "0.1"
libs = [ "-lvda" ]
requires_private = [
"libchrome",
"libmojo",
]
}
if (use.test) {
# Unit tests for the fake VDA impl.
executable("libvda_fake_unittest") {
sources = [
"decode/test/decode_unittest_common.cc",
"decode_fake_test.cc",
"encode/test/encode_unittest_common.cc",
"encode_fake_test.cc",
]
configs += [ "//common-mk:test" ]
pkg_deps = [
"gbm",
"libchrome-test",
]
deps = [
":libvda_source_set",
"//common-mk/testrunner",
]
}
}
# Unit tests for the GPU VDA impl, to be executed by tast tests.
executable("libvda_gpu_unittest") {
sources = [
"decode/test/decode_event_thread.cc",
"decode/test/decode_unittest_common.cc",
"decode/test/encoded_data_helper.cc",
"decode_gpu_test.cc",
]
# Need to define UNIT_TEST for ShadowingAtExitManager.
defines = [ "UNIT_TEST" ]
ldflags = [ "-pthread" ]
configs += [ "//common-mk:test" ]
libs = [ "pthread" ]
pkg_deps = [
"gbm",
"libchrome-test",
]
deps = [ ":libvda_source_set" ]
}
if (use.fuzzer) {
executable("libvda_fuzzer") {
sources = [
"at_exit_util.cc",
"decode/test/decode_unittest_common.cc",
"decode_fuzzer.cc",
]
configs += [ "//common-mk/common_fuzzer" ]
configs -= [ "//common-mk:no_exceptions" ]
pkg_deps = [ "gbm" ]
deps = [ ":libvda_source_set" ]
}
}