| # Copyright 2014 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/chromecast_build.gni") |
| import("//build/config/ui.gni") |
| |
| declare_args() { |
| # Ozone extra platforms file path. Can be overridden to build out of |
| # tree ozone platforms. |
| ozone_extra_path = "//ui/ozone/ozone_extra.gni" |
| |
| # Select platforms automatically. Turn this off for manual control. |
| ozone_auto_platforms = use_ozone |
| } |
| |
| declare_args() { |
| # The platform that will used at runtime by default. This can be overridden |
| # with the command line flag --ozone-platform=<platform>. |
| ozone_platform = "" |
| |
| # Compile the 'cast' platform. |
| ozone_platform_cast = false |
| |
| # Compile the 'gbm' platform. |
| ozone_platform_gbm = false |
| |
| # Compile the 'headless' platform. |
| ozone_platform_headless = false |
| |
| # Compile the 'scenic' platform. |
| ozone_platform_scenic = false |
| |
| # Compile the 'x11' platform. |
| ozone_platform_x11 = false |
| |
| # Compile the 'wayland' platform. |
| ozone_platform_wayland = false |
| |
| # Compile the 'windows' platform. |
| ozone_platform_windows = false |
| |
| # Compile the 'magma' platform. |
| ozone_platform_magma = false |
| |
| if (ozone_auto_platforms) { |
| # Use headless as the default platform unless modified below. |
| ozone_platform = "headless" |
| ozone_platform_headless = true |
| |
| if (is_cast_audio_only) { |
| # Just use headless for audio-only Cast platforms. |
| } else if (is_chromecast && !is_fuchsia) { |
| # Enable the Cast ozone platform on all A/V Cast builds except Fuchsia. |
| ozone_platform_cast = true |
| |
| # For visual desktop Chromecast builds, override the default "headless" |
| # platform with --ozone-platform=x11. |
| # TODO(halliwell): Create a libcast_graphics implementation for desktop |
| # using X11, and disable this platform. |
| if (is_cast_desktop_build && !is_cast_audio_only) { |
| ozone_platform_x11 = true |
| } else { |
| ozone_platform = "cast" |
| } |
| } else if (is_chromeos) { |
| ozone_platform = "x11" |
| ozone_platform_gbm = true |
| ozone_platform_x11 = true |
| ozone_platform_wayland = true |
| } else if (is_desktop_linux) { |
| ozone_platform = "x11" |
| ozone_platform_wayland = true |
| ozone_platform_x11 = true |
| } else if (is_win) { |
| ozone_platform = "windows" |
| ozone_platform_windows = true |
| } else if (is_fuchsia) { |
| ozone_platform = "scenic" |
| ozone_platform_scenic = true |
| ozone_platform_magma = true |
| } |
| } |
| } |
| |
| import(ozone_extra_path) |
| |
| _ozone_extra_directory = get_path_info(ozone_extra_path, "dir") |
| |
| # Extra paths to add to targets visibility list. |
| ozone_external_platform_visibility = [ "$_ozone_extra_directory/*" ] |
| |
| assert(use_ozone || !(ozone_platform_cast || ozone_platform_gbm || |
| ozone_platform_headless || ozone_platform_x11 || |
| ozone_platform_wayland || ozone_platform_windows || |
| ozone_platform_magma || ozone_platform_scenic), |
| "Must set use_ozone to select ozone platforms") |