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