From 21196caad6c4e216534585135c9473fc08db0f92 Mon Sep 17 00:00:00 2001 From: Claudio DeSouza Date: Tue, 11 Mar 2025 12:59:52 +0000 Subject: [PATCH] [cr136] Fix `feature.cc` duplicate from `brave_stats` At some point this failure started happening with M136 ``` > gn gen /home/redacted/dev/brave-dev/src/out/redirect_cc ERROR at //build/config/BUILDCONFIG.gn:547:5: Duplicate object file target(_target_type, target_name) { ^---------------------------------- The target //chrome/browser:browser generates two object files with the same name: obj/chrome/browser/browser/features.o It could be you accidentally have a file listed twice in the sources. Or, depending on how your toolchain maps sources to object files, two source files with the same name in different directories could map to the same object file. In the latter case, either rename one of the files or move one of the sources to a separate source_set to avoid them both being in the same target. null ``` It was not possible to determine what exactly in chromium changed to trigger this against brave's codebase, however the fix was to rename `browser/brave_stats/features.h` to something more unique. --- browser/brave_ads/BUILD.gn | 1 + browser/brave_stats/BUILD.gn | 78 +++++++++++++++++++++++++++++++++ browser/brave_stats/sources.gni | 38 ---------------- browser/sources.gni | 5 +-- test/BUILD.gn | 5 +-- 5 files changed, 83 insertions(+), 44 deletions(-) delete mode 100644 browser/brave_stats/sources.gni diff --git a/browser/brave_ads/BUILD.gn b/browser/brave_ads/BUILD.gn index 87b450bdd78..31aedccb273 100644 --- a/browser/brave_ads/BUILD.gn +++ b/browser/brave_ads/BUILD.gn @@ -58,6 +58,7 @@ source_set("impl") { "//brave/browser/brave_ads/tooltips", "//brave/browser/brave_rewards", "//brave/browser/brave_rewards:util", + "//brave/browser/brave_stats", "//brave/browser/ui/brave_ads", "//brave/components/brave_adaptive_captcha", "//brave/components/brave_ads/browser/application_state", diff --git a/browser/brave_stats/BUILD.gn b/browser/brave_stats/BUILD.gn index 80a6a55d5ec..d8ab61c59d5 100644 --- a/browser/brave_stats/BUILD.gn +++ b/browser/brave_stats/BUILD.gn @@ -10,3 +10,81 @@ buildflag_header("buildflags") { header = "buildflags.h" flags = [ "BRAVE_USAGE_SERVER=\"$brave_stats_updater_url\"" ] } + +source_set("brave_stats") { + sources = [ + "//brave/browser/brave_stats/brave_stats_updater.cc", + "//brave/browser/brave_stats/brave_stats_updater.h", + "//brave/browser/brave_stats/brave_stats_updater_params.cc", + "//brave/browser/brave_stats/brave_stats_updater_params.h", + "//brave/browser/brave_stats/features.cc", + "//brave/browser/brave_stats/features.h", + "//brave/browser/brave_stats/first_run_util.cc", + "//brave/browser/brave_stats/first_run_util.h", + "//brave/browser/brave_stats/switches.h", + ] + + deps = [ + "//base", + "//brave/browser:browser_process", + "//brave/browser/brave_stats:buildflags", + "//brave/common", + "//brave/components/brave_ads/core", + "//brave/components/brave_referrals/common", + "//brave/components/brave_stats/browser", + "//brave/components/brave_wallet/browser", + "//brave/components/brave_wallet/browser:pref_names", + "//brave/components/constants", + "//brave/components/misc_metrics", + "//brave/components/rpill/common", + "//brave/components/version_info", + "//chrome/browser:browser_process", + "//chrome/browser/headless", + "//chrome/browser/profiles:profile", + "//chrome/browser/ui", + "//chrome/common", + "//components/prefs", + "//net", + "//services/network/public/cpp", + ] +} + +source_set("browser_tests") { + testonly = true + + sources = [ "//brave/browser/brave_stats/brave_stats_updater_browsertest.cc" ] + + deps = [ + "//brave/browser/brave_stats", + "//brave/components/brave_referrals/browser", + "//chrome/browser", + "//chrome/test:test_support", + ] + + defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ] +} + +source_set("unit_tests") { + testonly = true + + sources = [ + "//brave/browser/brave_stats/brave_stats_updater_unittest.cc", + "//brave/browser/brave_stats/first_run_util_unittest.cc", + ] + + deps = [ + "//brave/browser/brave_ads", + "//brave/browser/brave_stats", + "//brave/components/brave_ads/core", + "//brave/components/brave_referrals/browser", + "//brave/components/brave_rewards/content", + "//brave/components/brave_stats/browser", + "//brave/components/brave_wallet/browser", + "//brave/components/brave_wallet/browser:pref_names", + "//brave/components/misc_metrics", + "//chrome/browser", + "//chrome/browser/prefs", + "//chrome/test:test_support", + "//components/prefs", + ] +} diff --git a/browser/brave_stats/sources.gni b/browser/brave_stats/sources.gni deleted file mode 100644 index 9d0563a0c13..00000000000 --- a/browser/brave_stats/sources.gni +++ /dev/null @@ -1,38 +0,0 @@ -# Copyright (c) 2021 The Brave Authors. All rights reserved. -# This Source Code Form is subject to the terms of the Mozilla Public -# License, v. 2.0. If a copy of the MPL was not distributed with this file, -# You can obtain one at http://mozilla.org/MPL/2.0/. */ - -brave_browser_brave_stats_updater_sources = [ - "//brave/browser/brave_stats/brave_stats_updater.cc", - "//brave/browser/brave_stats/brave_stats_updater.h", - "//brave/browser/brave_stats/brave_stats_updater_params.cc", - "//brave/browser/brave_stats/brave_stats_updater_params.h", - "//brave/browser/brave_stats/features.cc", - "//brave/browser/brave_stats/features.h", - "//brave/browser/brave_stats/first_run_util.cc", - "//brave/browser/brave_stats/first_run_util.h", - "//brave/browser/brave_stats/switches.h", -] - -brave_browser_brave_stats_updater_deps = [ - "//base", - "//brave/browser:browser_process", - "//brave/browser/brave_stats:buildflags", - "//brave/common", - "//brave/components/brave_ads/core", - "//brave/components/brave_referrals/common", - "//brave/components/brave_stats/browser", - "//brave/components/brave_wallet/browser", - "//brave/components/constants", - "//brave/components/rpill/common", - "//brave/components/version_info", - "//chrome/browser:browser_process", - "//chrome/browser/headless", - "//chrome/browser/profiles:profile", - "//chrome/browser/ui", - "//chrome/common", - "//components/prefs", - "//net", - "//services/network/public/cpp", -] diff --git a/browser/sources.gni b/browser/sources.gni index 14fd8251919..a73af52f61d 100644 --- a/browser/sources.gni +++ b/browser/sources.gni @@ -9,7 +9,6 @@ import("//brave/browser/brave_news/sources.gni") import("//brave/browser/brave_referrals/sources.gni") import("//brave/browser/brave_rewards/android/sources.gni") import("//brave/browser/brave_shields/sources.gni") -import("//brave/browser/brave_stats/sources.gni") import("//brave/browser/brave_vpn/sources.gni") import("//brave/browser/brave_wallet/android/sources.gni") import("//brave/browser/brave_wallet/notifications/sources.gni") @@ -126,6 +125,7 @@ brave_chrome_browser_deps = [ "//brave/browser/brave_rewards:brave_rewards_impl", "//brave/browser/brave_rewards:util", "//brave/browser/brave_search", + "//brave/browser/brave_stats", "//brave/browser/brave_wallet", "//brave/browser/brave_wallet:brave_wallet_delegate", "//brave/browser/brave_wallet:tab_helper", @@ -540,7 +540,6 @@ brave_chrome_browser_sources += brave_browser_autocomplete_sources brave_chrome_browser_sources += brave_browser_brave_news_sources brave_chrome_browser_sources += brave_browser_brave_referrals_sources brave_chrome_browser_sources += brave_browser_brave_shields_sources -brave_chrome_browser_sources += brave_browser_brave_stats_updater_sources brave_chrome_browser_sources += brave_browser_brave_vpn_sources brave_chrome_browser_sources += brave_browser_brave_wallet_sources brave_chrome_browser_sources += brave_browser_browsing_data_sources @@ -571,7 +570,6 @@ brave_chrome_browser_deps += brave_browser_autocomplete_deps brave_chrome_browser_deps += brave_browser_brave_news_deps brave_chrome_browser_deps += brave_browser_brave_referrals_deps brave_chrome_browser_deps += brave_browser_brave_shields_deps -brave_chrome_browser_deps += brave_browser_brave_stats_updater_deps brave_chrome_browser_deps += brave_browser_brave_vpn_deps brave_chrome_browser_deps += brave_browser_brave_wallet_deps brave_chrome_browser_deps += brave_browser_browsing_data_deps @@ -608,6 +606,7 @@ brave_chrome_browser_allow_circular_includes_from = [ "//brave/browser/ui", "//brave/browser/brave_ads:impl", "//brave/browser/brave_ads/creatives/search_result_ad", + "//brave/browser/brave_stats", ] # https://github.com/brave/brave-browser/issues/41418 diff --git a/test/BUILD.gn b/test/BUILD.gn index 2d227649612..7e0fa9d24d9 100644 --- a/test/BUILD.gn +++ b/test/BUILD.gn @@ -98,8 +98,6 @@ test("brave_unit_tests") { sources = [ "//brave/base/trace_event/brave_process_memory_dump_unittest.cc", "//brave/browser/brave_content_browser_client_unittest.cc", - "//brave/browser/brave_stats/brave_stats_updater_unittest.cc", - "//brave/browser/brave_stats/first_run_util_unittest.cc", "//brave/browser/browsing_data/brave_browsing_data_remover_delegate_unittest.cc", "//brave/browser/download/brave_download_item_model_unittest.cc", "//brave/browser/profiles/profile_util_unittest.cc", @@ -165,6 +163,7 @@ test("brave_unit_tests") { "//brave/browser/autocomplete:unit_tests", "//brave/browser/brave_ads", "//brave/browser/brave_ads/device_id:unit_tests", + "//brave/browser/brave_stats:unit_tests", "//brave/browser/brave_wallet", "//brave/browser/brave_wallet:unit_tests", "//brave/browser/content_settings:unit_tests", @@ -769,7 +768,6 @@ test("brave_browser_tests") { "//brave/browser/brave_shields/eventsource_pool_limit_browsertest.cc", "//brave/browser/brave_shields/https_upgrade_browsertest.cc", "//brave/browser/brave_shields/websockets_pool_limit_browsertest.cc", - "//brave/browser/brave_stats/brave_stats_updater_browsertest.cc", "//brave/browser/brave_wallet/brave_wallet_ethereum_chain_browsertest.cc", "//brave/browser/brave_wallet/brave_wallet_event_emitter_browsertest.cc", "//brave/browser/brave_wallet/brave_wallet_service_browsertest.cc", @@ -843,6 +841,7 @@ test("brave_browser_tests") { "//brave/browser/brave_news:browser_tests", "//brave/browser/brave_rewards", "//brave/browser/brave_rewards/test:browser_tests", + "//brave/browser/brave_stats:browser_tests", "//brave/browser/brave_wallet", "//brave/browser/brave_wallet:browser_tests", "//brave/browser/brave_wallet:tab_helper",