xref: /aosp_15_r20/external/libyuv/build_overrides/build.gni (revision 4e366538070a3a6c5c163c31b791eab742e1657a)
1*4e366538SXin Li# Copyright 2016 The LibYuv Project Authors. All rights reserved.
2*4e366538SXin Li#
3*4e366538SXin Li# Use of this source code is governed by a BSD-style license
4*4e366538SXin Li# that can be found in the LICENSE file in the root of the source
5*4e366538SXin Li# tree. An additional intellectual property rights grant can be found
6*4e366538SXin Li# in the file PATENTS. All contributing project authors may
7*4e366538SXin Li# be found in the AUTHORS file in the root of the source tree.
8*4e366538SXin Li
9*4e366538SXin Li# Variable that can be used to support multiple build scenarios, like having
10*4e366538SXin Li# Chromium specific targets in a client project's GN file etc.
11*4e366538SXin Libuild_with_chromium = false
12*4e366538SXin Li
13*4e366538SXin Li# Some non-Chromium builds don't support building java targets.
14*4e366538SXin Lienable_java_templates = true
15*4e366538SXin Li
16*4e366538SXin Li# Enables assertions on safety checks in libc++.
17*4e366538SXin Lienable_safe_libcxx = true
18*4e366538SXin Li
19*4e366538SXin Li# Allow using custom suppressions files (currently not used by libyuv).
20*4e366538SXin Liasan_suppressions_file = "//build/sanitizers/asan_suppressions.cc"
21*4e366538SXin Lilsan_suppressions_file = "//build/sanitizers/lsan_suppressions.cc"
22*4e366538SXin Litsan_suppressions_file = "//build/sanitizers/tsan_suppressions.cc"
23*4e366538SXin Li
24*4e366538SXin Limsan_blacklist_path =
25*4e366538SXin Li    rebase_path("//tools_libyuv/msan/blacklist.txt", root_build_dir)
26*4e366538SXin Liubsan_blacklist_path =
27*4e366538SXin Li    rebase_path("//tools_libyuv/ubsan/blacklist.txt", root_build_dir)
28*4e366538SXin Liubsan_vptr_blacklist_path =
29*4e366538SXin Li    rebase_path("//tools_libyuv/ubsan/vptr_blacklist.txt", root_build_dir)
30*4e366538SXin Li
31*4e366538SXin Li# For Chromium, Android 32-bit non-component, non-clang builds hit a 4GiB size
32*4e366538SXin Li# limit, making them requiring symbol_level=2. WebRTC doesn't hit that problem
33*4e366538SXin Li# so we just ignore that assert. See https://crbug.com/648948 for more info.
34*4e366538SXin Liignore_elf32_limitations = true
35*4e366538SXin Li
36*4e366538SXin Li# Use bundled hermetic Xcode installation maintained by Chromium,
37*4e366538SXin Li# except for local iOS builds where it is unsupported.
38*4e366538SXin Liif (host_os == "mac") {
39*4e366538SXin Li  _result = exec_script("//build/mac/should_use_hermetic_xcode.py",
40*4e366538SXin Li                        [ target_os ],
41*4e366538SXin Li                        "value")
42*4e366538SXin Li  assert(_result != 2,
43*4e366538SXin Li         "Do not allow building targets with the default" +
44*4e366538SXin Li             "hermetic toolchain if the minimum OS version is not met.")
45*4e366538SXin Li  use_system_xcode = _result == 0
46*4e366538SXin Li}
47*4e366538SXin Li
48*4e366538SXin Lideclare_args() {
49*4e366538SXin Li  # Tracing support requires //third_party/perfetto.
50*4e366538SXin Li  enable_base_tracing = false
51*4e366538SXin Li  use_perfetto_client_library = false
52*4e366538SXin Li
53*4e366538SXin Li  # Limits the defined //third_party/android_deps targets to only "buildCompile"
54*4e366538SXin Li  # and "buildCompileNoDeps" targets. This is useful for third-party
55*4e366538SXin Li  # repositories which do not use JUnit tests. For instance,
56*4e366538SXin Li  # limit_android_deps == true removes "gn gen" requirement for
57*4e366538SXin Li  # //third_party/robolectric .
58*4e366538SXin Li  limit_android_deps = false
59*4e366538SXin Li
60*4e366538SXin Li  # Allows googletest to pretty-print various absl types.
61*4e366538SXin Li  # Defined here rather than in gtest.gni to match chromium.
62*4e366538SXin Li  gtest_enable_absl_printers = true
63*4e366538SXin Li}
64