# 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.

# This file contains UI-related build flags. It should theoretically be in the
# src/ui directory and only things that depend on the ui module should get the
# definitions.
#
# However, today we have many "bad" dependencies on some of these flags from,
# e.g. base, so they need to be global.
#
# See also build/config/features.gni

# Additional dependent variables -----------------------------------------------
#
# These variables depend on other variables and can't be set externally.

# Use GPU accelerated cross process image transport by default on linux builds
# with the Aura window manager.
ui_compositor_image_transport = is_linux

# Indicates if the UI toolkit depends on X11.
use_x11 = is_linux

use_glib = is_linux

use_athena = false

enable_hidpi = is_mac || is_chromeos || is_win
