# Copyright 2019 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import("//build/buildflag_header.gni") import("//mojo/public/tools/bindings/mojom.gni") import("//testing/test.gni") import("//ui/base/ui_features.gni") source_set("color_headers") { sources = [ "color_id.h", "color_id_macros.inc", "color_id_map_macros.inc", "color_metrics.h", "color_mixer.h", "color_provider.h", "color_provider_manager.h", "color_provider_utils.h", "color_variant.h", ] public_deps = [ ":color_provider_key", ":mojom", "//base", "//skia", "//third_party/abseil-cpp:absl", "//ui/gfx:color_utils", ] } # Keep the deps on this target to a minimum so that chromeos can depend on it. component("color_provider_key") { sources = [ "color_provider_key.cc", "color_provider_key.h", "system_theme.h", ] defines = [ "IS_COLOR_PROVIDER_KEY_IMPL" ] deps = [ "//base", "//skia", "//third_party/abseil-cpp:absl", ] } component("color") { sources = [ "color_metrics.cc", "color_mixer.cc", "color_provider.cc", "color_provider_source.cc", "color_provider_source.h", "color_provider_source_observer.cc", "color_provider_source_observer.h", "color_provider_utils.cc", "color_provider_utils.h", "color_recipe.cc", "color_recipe.h", "color_transform.cc", "color_transform.h", "color_variant.cc", ] configs += [ "//build/config/compiler:prevent_unsafe_narrowing" ] defines = [ "IS_COLOR_IMPL" ] public_deps = [ ":color_headers", "//base", "//skia", "//ui/base:features", "//ui/gfx:color_utils", ] deps = [ "//third_party/abseil-cpp:absl" ] if (is_mac) { sources += [ "mac/native_color_transform.mm", "mac/system_color_utils.h", "mac/system_color_utils.mm", ] frameworks = [ "AppKit.framework" ] } if (is_android) { sources += [ "android/android_color_roles.h", "android/color_provider_bridge.cc", "android/color_provider_bridge.h", ] deps += [ ":ui_color_jni_headers" ] } } source_set("test_support") { testonly = true sources = [ "color_test_ids.h" ] deps = [ ":color_headers" ] } source_set("unit_tests") { testonly = true sources = [ "color_mixer_unittest.cc", "color_provider_key_unittest.cc", "color_provider_manager_unittest.cc", "color_provider_source_observer_unittest.cc", "color_provider_unittest.cc", "color_provider_utils_unittest.cc", "color_recipe_unittest.cc", "color_transform_unittest.cc", "sys_color_mixer_unittest.cc", ] deps = [ ":color", ":mixers", ":test_support", "//base/test:test_support", "//testing/gtest", "//ui/color/dynamic_color", ] } if (is_win) { component("accent_color_observer") { sources = [ "win/accent_color_observer.cc", "win/accent_color_observer.h", ] defines = [ "IS_COLOR_IMPL" ] public_deps = [ "//base", "//third_party/abseil-cpp:absl", ] deps = [ "//skia", "//ui/gfx:color_utils", ] } } component("mixers") { sources = [ "color_mixers.cc", "color_mixers.h", "color_provider_manager.cc", "color_provider_manager.h", "core_default_color_mixer.cc", "core_default_color_mixer.h", "css_system_color_mixer.cc", "css_system_color_mixer.h", "fluent_ui_color_mixer.cc", "fluent_ui_color_mixer.h", "material_ui_color_mixer.cc", "material_ui_color_mixer.h", "native_color_mixers.cc", "native_color_mixers.h", "ref_color_mixer.cc", "ref_color_mixer.h", "sys_color_mixer.cc", "sys_color_mixer.h", "ui_color_mixer.cc", "ui_color_mixer.h", ] defines = [ "IS_COLOR_IMPL" ] deps = [ ":color", ":color_headers", ":color_provider_key", "//skia", "//third_party/material_color_utilities", "//ui/base:features", "//ui/color/dynamic_color", "//ui/gfx:color_utils", "//ui/native_theme/features", "//ui/webui:buildflags", ] public_deps = [ "//base" ] if (is_chromeos) { sources += [ "chromeos/native_color_mixers_chromeos.cc" ] } else if (is_mac) { sources += [ "mac/css_system_color_mixer_mac.mm", "mac/native_color_mixers_mac.mm", ] frameworks = [ "AppKit.framework" ] } else if (is_win) { sources += [ "win/css_system_color_mixer_win.cc", "win/native_color_mixers_win.cc", "win/native_color_mixers_win.h", ] deps += [ ":accent_color_observer" ] } else if (is_android) { sources += [ "android/sys_color_mixer_android.cc", "android/sys_color_mixer_android.h", ] } } if (is_android) { import("//build/config/android/rules.gni") import("//third_party/jni_zero/jni_zero.gni") generate_jni("ui_color_jni_headers") { sources = [ "android/java/src/org/chromium/ui/color/ColorProviderBridgeFactory.java", ] } android_library("ui_color_android_java") { sources = [ "android/java/src/org/chromium/ui/color/ColorProviderBridge.java", "android/java/src/org/chromium/ui/color/ColorProviderBridgeFactory.java", ] deps = [ "//base:base_java", "//build/android:build_java", "//third_party/androidx:androidx_annotation_annotation_java", "//third_party/jni_zero:jni_zero_java", ] srcjar_deps = [ ":ui_color_android_java_enums", ":ui_color_jni_headers", ] } java_cpp_enum("ui_color_android_java_enums") { sources = [ "android/android_color_roles.h" ] } } mojom("mojom") { generate_java = true sources = [ "color_id.mojom", "scheme_variant.mojom", ] }