# Copyright 2017 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
if (is_chromeos) {
import("//build/config/chromeos/ui_mode.gni")
}
if (is_android) {
import("//build/config/android/config.gni")
import("//build/config/android/rules.gni")
import("//third_party/jni_zero/jni_zero.gni")
}
source_set("public") {
sources = [
"configuration.cc",
"configuration.h",
"configuration_provider.cc",
"configuration_provider.h",
"default_session_controller.cc",
"default_session_controller.h",
"event_constants.cc",
"event_constants.h",
"feature_configurations.cc",
"feature_configurations.h",
"feature_constants.cc",
"feature_constants.h",
"feature_list.cc",
"feature_list.h",
"field_trial_configuration_provider.cc",
"field_trial_configuration_provider.h",
"field_trial_utils.cc",
"field_trial_utils.h",
"group_configurations.cc",
"group_configurations.h",
"group_constants.cc",
"group_constants.h",
"group_list.cc",
"group_list.h",
"local_configuration_provider.cc",
"local_configuration_provider.h",
"session_controller.h",
"stats.cc",
"stats.h",
"tracker.cc",
"tracker.h",
]
public_deps = [ "//base" ]
deps = [
"//build:branding_buildflags",
"//components/feed:feature_list",
"//components/flags_ui",
"//components/keyed_service/core",
"//extensions/buildflags",
]
configs += [ "//build/config/compiler:wexit_time_destructors" ]
if (is_android) {
sources += [
"android/wrapping_test_tracker.cc",
"android/wrapping_test_tracker.h",
]
deps += [ "//components/feature_engagement/public:jni_headers" ]
}
if (is_ios) {
sources += [
"ios_promo_feature_configuration.cc",
"ios_promo_feature_configuration.h",
]
}
if (is_chromeos && is_chromeos_ash) {
sources += [
"scalable_iph_feature_configurations.cc",
"scalable_iph_feature_configurations.h",
]
deps += [
"//ash/constants",
"//chromeos/ash/components/scalable_iph:constants",
]
}
}
source_set("unit_tests") {
testonly = true
visibility = [ "//components/feature_engagement:unit_tests" ]
# IMPORTANT NOTE: When adding new tests, also remember to update the list of
# tests in //components/feature_engagement/components_unittests.filter
sources = [
"configuration_unittest.cc",
"feature_list_unittest.cc",
]
deps = [
":public",
"//testing/gtest",
]
}
if (is_android) {
android_library("public_java") {
sources = [
"android/java/src/org/chromium/components/feature_engagement/CppWrappedTestTracker.java",
"android/java/src/org/chromium/components/feature_engagement/EventConstants.java",
"android/java/src/org/chromium/components/feature_engagement/FeatureConstants.java",
"android/java/src/org/chromium/components/feature_engagement/Tracker.java",
"android/java/src/org/chromium/components/feature_engagement/TriggerDetails.java",
]
deps = [
":jni_headers",
"//base:base_java",
"//third_party/androidx:androidx_annotation_annotation_java",
"//third_party/jni_zero:jni_zero_java",
]
srcjar_deps = [
":jni_headers",
":public_java_enums_srcjar",
]
}
java_cpp_enum("public_java_enums_srcjar") {
visibility = [ ":*" ]
sources = [ "tracker.h" ]
}
generate_jni("jni_headers") {
sources = [ "android/java/src/org/chromium/components/feature_engagement/CppWrappedTestTracker.java" ]
}
}