xref: /aosp_15_r20/external/cronet/build/config/ozone.gni (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker# Copyright 2020 The Chromium Authors
2*6777b538SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be
3*6777b538SAndroid Build Coastguard Worker# found in the LICENSE file.
4*6777b538SAndroid Build Coastguard Worker
5*6777b538SAndroid Build Coastguard Workerimport("//build/config/cast.gni")
6*6777b538SAndroid Build Coastguard Workerimport("//build/config/chromeos/ui_mode.gni")
7*6777b538SAndroid Build Coastguard Workerimport("//build/toolchain/toolchain.gni")
8*6777b538SAndroid Build Coastguard Worker
9*6777b538SAndroid Build Coastguard Workerdeclare_args() {
10*6777b538SAndroid Build Coastguard Worker  # Indicates if Ozone is enabled. Ozone is a low-level library layer for Linux
11*6777b538SAndroid Build Coastguard Worker  # that does not require X11.
12*6777b538SAndroid Build Coastguard Worker  use_ozone = is_chromeos || is_fuchsia || is_linux
13*6777b538SAndroid Build Coastguard Worker}
14*6777b538SAndroid Build Coastguard Worker
15*6777b538SAndroid Build Coastguard Workerdeclare_args() {
16*6777b538SAndroid Build Coastguard Worker  # Ozone extra platforms file path. Can be overridden to build out of
17*6777b538SAndroid Build Coastguard Worker  # tree ozone platforms.
18*6777b538SAndroid Build Coastguard Worker  ozone_extra_path = "//build/config/ozone_extra.gni"
19*6777b538SAndroid Build Coastguard Worker
20*6777b538SAndroid Build Coastguard Worker  # Select platforms automatically. Turn this off for manual control.
21*6777b538SAndroid Build Coastguard Worker  ozone_auto_platforms = use_ozone
22*6777b538SAndroid Build Coastguard Worker
23*6777b538SAndroid Build Coastguard Worker  # TODO(petermcneeley): Backwards compatiblity support for VM images.
24*6777b538SAndroid Build Coastguard Worker  # Remove when deprecated. (https://crbug.com/1122009)
25*6777b538SAndroid Build Coastguard Worker  ozone_platform_gbm = -1
26*6777b538SAndroid Build Coastguard Worker
27*6777b538SAndroid Build Coastguard Worker  # Enable explicit apitrace (https://apitrace.github.io) loading.
28*6777b538SAndroid Build Coastguard Worker  # This requires apitrace library with additional bindings.
29*6777b538SAndroid Build Coastguard Worker  # See ChromeOS package for details:
30*6777b538SAndroid Build Coastguard Worker  # https://chromium-review.googlesource.com/c/chromiumos/overlays/chromiumos-overlay/+/2659419
31*6777b538SAndroid Build Coastguard Worker  # Chrome will not start without an apitrace.so library.
32*6777b538SAndroid Build Coastguard Worker  # Trace will be saved to /tmp/gltrace.dat file by default. You can
33*6777b538SAndroid Build Coastguard Worker  # override it at run time with TRACE_FILE=<path> environment variable.
34*6777b538SAndroid Build Coastguard Worker  enable_opengl_apitrace = false
35*6777b538SAndroid Build Coastguard Worker}
36*6777b538SAndroid Build Coastguard Worker
37*6777b538SAndroid Build Coastguard Workerdeclare_args() {
38*6777b538SAndroid Build Coastguard Worker  # The platform that will used at runtime by default. This can be overridden
39*6777b538SAndroid Build Coastguard Worker  # with the command line flag --ozone-platform=<platform>.
40*6777b538SAndroid Build Coastguard Worker  ozone_platform = ""
41*6777b538SAndroid Build Coastguard Worker
42*6777b538SAndroid Build Coastguard Worker  # Compile the 'cast' platform.
43*6777b538SAndroid Build Coastguard Worker  ozone_platform_cast = false
44*6777b538SAndroid Build Coastguard Worker
45*6777b538SAndroid Build Coastguard Worker  # Compile the 'drm' platform.
46*6777b538SAndroid Build Coastguard Worker  ozone_platform_drm = false
47*6777b538SAndroid Build Coastguard Worker
48*6777b538SAndroid Build Coastguard Worker  # Compile the 'headless' platform.
49*6777b538SAndroid Build Coastguard Worker  ozone_platform_headless = false
50*6777b538SAndroid Build Coastguard Worker
51*6777b538SAndroid Build Coastguard Worker  # Compile the 'flatland' platform.
52*6777b538SAndroid Build Coastguard Worker  ozone_platform_flatland = false
53*6777b538SAndroid Build Coastguard Worker
54*6777b538SAndroid Build Coastguard Worker  # Compile the 'x11' platform.
55*6777b538SAndroid Build Coastguard Worker  ozone_platform_x11 = false
56*6777b538SAndroid Build Coastguard Worker
57*6777b538SAndroid Build Coastguard Worker  # Compile the 'wayland' platform.
58*6777b538SAndroid Build Coastguard Worker  ozone_platform_wayland = false
59*6777b538SAndroid Build Coastguard Worker
60*6777b538SAndroid Build Coastguard Worker  if (ozone_auto_platforms) {
61*6777b538SAndroid Build Coastguard Worker    # Use headless as the default platform unless modified below.
62*6777b538SAndroid Build Coastguard Worker    ozone_platform = "headless"
63*6777b538SAndroid Build Coastguard Worker    ozone_platform_headless = true
64*6777b538SAndroid Build Coastguard Worker
65*6777b538SAndroid Build Coastguard Worker    if (is_cast_audio_only) {
66*6777b538SAndroid Build Coastguard Worker      # Just use headless for audio-only Cast platforms.
67*6777b538SAndroid Build Coastguard Worker    } else if (is_castos) {
68*6777b538SAndroid Build Coastguard Worker      # Enable the Cast ozone platform on all video CastOS builds.
69*6777b538SAndroid Build Coastguard Worker      ozone_platform_cast = true
70*6777b538SAndroid Build Coastguard Worker
71*6777b538SAndroid Build Coastguard Worker      # For visual desktop Chromecast builds, override the default "headless"
72*6777b538SAndroid Build Coastguard Worker      # platform with --ozone-platform=x11.
73*6777b538SAndroid Build Coastguard Worker      # NOTE: The CQ is one such case.
74*6777b538SAndroid Build Coastguard Worker      if (target_os == "linux" &&
75*6777b538SAndroid Build Coastguard Worker          (target_cpu == "x86" || target_cpu == "x64")) {
76*6777b538SAndroid Build Coastguard Worker        ozone_platform_x11 = true
77*6777b538SAndroid Build Coastguard Worker      } else {
78*6777b538SAndroid Build Coastguard Worker        ozone_platform = "cast"
79*6777b538SAndroid Build Coastguard Worker      }
80*6777b538SAndroid Build Coastguard Worker    } else if (is_chromeos_ash) {
81*6777b538SAndroid Build Coastguard Worker      ozone_platform = "x11"
82*6777b538SAndroid Build Coastguard Worker      ozone_platform_drm = true
83*6777b538SAndroid Build Coastguard Worker      ozone_platform_x11 = true
84*6777b538SAndroid Build Coastguard Worker    } else if (is_chromeos_lacros) {
85*6777b538SAndroid Build Coastguard Worker      ozone_platform = "wayland"
86*6777b538SAndroid Build Coastguard Worker      ozone_platform_wayland = true
87*6777b538SAndroid Build Coastguard Worker    } else if (is_linux) {
88*6777b538SAndroid Build Coastguard Worker      ozone_platform = "x11"
89*6777b538SAndroid Build Coastguard Worker      ozone_platform_wayland = true
90*6777b538SAndroid Build Coastguard Worker      ozone_platform_x11 = true
91*6777b538SAndroid Build Coastguard Worker    } else if (is_fuchsia) {
92*6777b538SAndroid Build Coastguard Worker      ozone_platform = "flatland"
93*6777b538SAndroid Build Coastguard Worker      ozone_platform_flatland = true
94*6777b538SAndroid Build Coastguard Worker    }
95*6777b538SAndroid Build Coastguard Worker  }
96*6777b538SAndroid Build Coastguard Worker
97*6777b538SAndroid Build Coastguard Worker  # TODO(petermcneeley): Backwards compatiblity support for VM images.
98*6777b538SAndroid Build Coastguard Worker  # Remove when deprecated. (https://crbug.com/1122009)
99*6777b538SAndroid Build Coastguard Worker  if (ozone_platform_gbm != -1) {
100*6777b538SAndroid Build Coastguard Worker    ozone_platform_drm = ozone_platform_gbm
101*6777b538SAndroid Build Coastguard Worker  }
102*6777b538SAndroid Build Coastguard Worker}
103*6777b538SAndroid Build Coastguard Worker
104*6777b538SAndroid Build Coastguard Workerimport(ozone_extra_path)
105*6777b538SAndroid Build Coastguard Worker
106*6777b538SAndroid Build Coastguard Worker_ozone_extra_directory = get_path_info(ozone_extra_path, "dir")
107*6777b538SAndroid Build Coastguard Worker
108*6777b538SAndroid Build Coastguard Worker# Extra paths to add to targets visibility list.
109*6777b538SAndroid Build Coastguard Workerozone_external_platform_visibility = [ "$_ozone_extra_directory/*" ]
110*6777b538SAndroid Build Coastguard Worker
111*6777b538SAndroid Build Coastguard Workerif (is_a_target_toolchain) {
112*6777b538SAndroid Build Coastguard Worker  assert(
113*6777b538SAndroid Build Coastguard Worker      use_ozone || !(ozone_platform_cast || ozone_platform_drm ||
114*6777b538SAndroid Build Coastguard Worker                         ozone_platform_flatland || ozone_platform_headless ||
115*6777b538SAndroid Build Coastguard Worker                         ozone_platform_x11 || ozone_platform_wayland),
116*6777b538SAndroid Build Coastguard Worker      "Must set use_ozone to select ozone platforms")
117*6777b538SAndroid Build Coastguard Worker}
118*6777b538SAndroid Build Coastguard Worker
119*6777b538SAndroid Build Coastguard Worker# TODO(petermcneeley): Backwards compatiblity support for VM images.
120*6777b538SAndroid Build Coastguard Worker# Remove when deprecated. (https://crbug.com/1122009)
121*6777b538SAndroid Build Coastguard Worker
122*6777b538SAndroid Build Coastguard Workerassert(ozone_platform_gbm == -1 || ozone_platform_drm == ozone_platform_gbm)
123*6777b538SAndroid Build Coastguard Worker
124*6777b538SAndroid Build Coastguard Workerozone_platform_gbm = ozone_platform_drm
125*6777b538SAndroid Build Coastguard Worker
126*6777b538SAndroid Build Coastguard Workerif (ozone_platform == "gbm") {
127*6777b538SAndroid Build Coastguard Worker  ozone_platform = "drm"
128*6777b538SAndroid Build Coastguard Worker}
129