123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- # Copyright 2019 The Chromium 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("//build/config/arm.gni")
- import("//third_party/libgav1/libgav1_srcs.gni")
- import("//third_party/libgav1/options.gni")
- config("public_libgav1_config") {
- include_dirs = [
- "src",
- "src/src",
- ]
- defines = [
- "LIBGAV1_MAX_BITDEPTH=10",
- "LIBGAV1_THREADPOOL_USE_STD_MUTEX", # to avoid abseil dependency.
- "LIBGAV1_ENABLE_LOGGING=0", # to avoid debug log of libgav1 in chromium
- # debug build.
- # Don't let libgav1 export any symbols. Otherwise the verify_order step on
- # macOS can fail since these exports end up in the final Chromium binary.
- "LIBGAV1_PUBLIC=",
- ]
- }
- config("private_libgav1_config") {
- configs = []
- # dsp intrinsics will generate much better code when optimized for speed
- # rather than size.
- if (!is_debug) {
- configs += [ "//build/config/compiler:optimize_max" ]
- }
- if (current_cpu == "arm64" ||
- (current_cpu == "arm" && arm_version >= 7 && arm_use_neon)) {
- # The default thumb mode will impact performance of dsp intrinsics.
- configs += [ "//build/config/compiler:compiler_arm" ]
- }
- }
- if (enable_libgav1_decoder || use_libgav1_parser) {
- # Separate from libgav1 because utils/constants.cc and dsp/constants.cc
- # generate the same object file, constants.o.
- source_set("libgav1_utils") {
- configs -= [ "//build/config/compiler:chromium_code" ]
- configs += [ "//build/config/compiler:no_chromium_code" ]
- configs += [ ":private_libgav1_config" ]
- public_configs = [ ":public_libgav1_config" ]
- sources = gav1_utils_sources
- }
- # Separate from libgav1 because film_grain.cc and dsp/film_grain.cc
- # generate the same object file, film_grain.o.
- source_set("libgav1_dsp") {
- configs -= [ "//build/config/compiler:chromium_code" ]
- configs += [ "//build/config/compiler:no_chromium_code" ]
- configs += [ ":private_libgav1_config" ]
- deps = [
- ":libgav1_dsp_sse4",
- ":libgav1_utils",
- ]
- public_configs = [ ":public_libgav1_config" ]
- sources = gav1_dsp_sources + gav1_dsp_headers_sources
- sources += gav1_dsp_avx2_sources + gav1_dsp_avx2_headers_sources
- }
- # SSE4 sources are split to their own target as Chrome is currently built
- # with -msse3.
- source_set("libgav1_dsp_sse4") {
- configs -= [ "//build/config/compiler:chromium_code" ]
- configs += [ "//build/config/compiler:no_chromium_code" ]
- configs += [ ":private_libgav1_config" ]
- deps = [ ":libgav1_utils" ]
- public_configs = [ ":public_libgav1_config" ]
- if (current_cpu == "x86" || current_cpu == "x64") {
- cflags = [ "-msse4.1" ]
- }
- sources = gav1_dsp_sse4_sources + gav1_dsp_sse4_headers_sources +
- gav1_dsp_headers_sources + gav1_dsp_avx2_headers_sources
- }
- static_library("libgav1") {
- configs -= [ "//build/config/compiler:chromium_code" ]
- configs += [ "//build/config/compiler:no_chromium_code" ]
- configs += [ ":private_libgav1_config" ]
- public_configs = [ ":public_libgav1_config" ]
- public_deps = [
- ":libgav1_dsp",
- ":libgav1_utils",
- ]
- sources = gav1_common_sources
- sources += gav1_gav1_sources
- sources += gav1_post_filter_sources
- sources += gav1_tile_sources
- }
- }
|