| # Copyright 2019 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/chrome_build.gni") |
| import("//build/config/sanitizers/sanitizers.gni") |
| import("//build/util/process_version.gni") |
| import("//chrome/updater/branding.gni") |
| import("//testing/test.gni") |
| |
| # Run 'gn check out\Default --check-generated //chrome/updater/*' every time |
| # dependencies are modified until a presubmit is written to automatically |
| # check that the C++ includes match the build dependency graph. |
| |
| # TODO(sorin): make the code build on Linux. https://crbug.com/1014320 |
| group("updater") { |
| if (is_win) { |
| deps = [ "//chrome/updater/win" ] |
| } |
| if (is_mac) { |
| deps = [ "//chrome/updater/mac" ] |
| } |
| if (is_win || is_mac) { |
| deps += [ "//chrome/updater/tools:tools" ] |
| } |
| } |
| |
| group("all") { |
| testonly = true |
| |
| if (is_win || is_mac) { |
| deps = [ |
| ":updater", |
| ":updater_tests", |
| ":updater_tests_system", |
| "//chrome/updater/test/test_app", |
| ] |
| } |
| } |
| |
| # Conditional build is needed, otherwise the analyze script on Linux |
| # requires all targets and it is going to include the targets below. |
| if (is_win || is_mac) { |
| # This target must only have platform-neutral sources. Generally speaking, |
| # these sources are related to common, cross-platfrom aspects of the code, |
| # such as crash handling, or interfaces to cross platform dependencies from |
| # Chromium. If the sources are in platform-specific directories or their |
| # names contain platform-specific suffixes, they must go into the :lib |
| # target, or to targets in their platform directories. |
| source_set("base") { |
| sources = [ |
| "action_handler.h", |
| "constants.cc", |
| "constants.h", |
| "crash_client.cc", |
| "crash_client.h", |
| "crash_reporter.cc", |
| "crash_reporter.h", |
| "enum_traits.h", |
| "persisted_data.cc", |
| "persisted_data.h", |
| "policy_manager.cc", |
| "policy_manager.h", |
| "registration_data.cc", |
| "registration_data.h", |
| "splash_screen.h", |
| "update_service.cc", |
| "update_service.h", |
| "update_service_internal.h", |
| "updater_scope.h", |
| "util.cc", |
| "util.h", |
| ] |
| |
| deps = [ |
| ":branding_header", |
| ":version_header", |
| "//base", |
| "//components/crash/core/common:crash_key_lib", |
| "//components/prefs", |
| "//components/update_client", |
| "//third_party/crashpad/crashpad/client", |
| "//third_party/crashpad/crashpad/handler", |
| "//url", |
| ] |
| |
| if (is_mac) { |
| sources += [ |
| "mac/mac_util.h", |
| "mac/mac_util.mm", |
| ] |
| |
| deps += [ "//chrome/common/mac:launchd" ] |
| |
| frameworks = [ "Foundation.framework" ] |
| } |
| } |
| |
| # Use this source set for code which has platform-specific modules. |
| source_set("lib") { |
| sources = [ |
| "activity.cc", |
| "activity.h", |
| "activity_impl.h", |
| "app/app.cc", |
| "app/app.h", |
| "app/app_install.cc", |
| "app/app_install.h", |
| "app/app_server.cc", |
| "app/app_server.h", |
| "app/app_uninstall.cc", |
| "app/app_uninstall.h", |
| "app/app_update.cc", |
| "app/app_update.h", |
| "app/app_wake.cc", |
| "app/app_wake.h", |
| "check_for_updates_task.cc", |
| "check_for_updates_task.h", |
| "configurator.cc", |
| "configurator.h", |
| "crx_downloader_factory.h", |
| "external_constants.cc", |
| "external_constants.h", |
| "external_constants_builder.cc", |
| "external_constants_builder.h", |
| "external_constants_override.cc", |
| "external_constants_override.h", |
| "installer.cc", |
| "installer.h", |
| "lib_util.h", |
| "policy_service.cc", |
| "policy_service.h", |
| "prefs.cc", |
| "prefs.h", |
| "prefs_impl.h", |
| "setup.h", |
| "tag.cc", |
| "tag.h", |
| "update_service_impl.cc", |
| "update_service_impl.h", |
| "update_service_impl_inactive.cc", |
| "update_service_impl_inactive.h", |
| "update_service_internal_impl.cc", |
| "update_service_internal_impl.h", |
| "update_service_internal_impl_inactive.cc", |
| "update_service_internal_impl_inactive.h", |
| "updater.cc", |
| "updater.h", |
| ] |
| |
| if (is_mac) { |
| sources += [ |
| "activity_impl_mac.cc", |
| "app/app_install_mac.mm", |
| "app/server/mac/app_server.h", |
| "app/server/mac/server.h", |
| "app/server/mac/server.mm", |
| "app/server/mac/service_delegate.h", |
| "app/server/mac/service_delegate.mm", |
| "app/server/mac/service_protocol.mm", |
| "app/server/mac/update_service_wrappers.h", |
| "app/server/mac/update_service_wrappers.mm", |
| "installer_mac.cc", |
| "launchd_util.cc", |
| "launchd_util.h", |
| "lib_util_mac.mm", |
| "mac/update_service_internal_proxy.h", |
| "mac/update_service_internal_proxy.mm", |
| "mac/update_service_proxy.h", |
| "mac/update_service_proxy.mm", |
| "prefs_mac.mm", |
| "service_factory_mac.mm", |
| "setup_mac.mm", |
| ] |
| } |
| |
| if (is_win) { |
| sources += [ |
| "activity_impl_win.cc", |
| "app/app_install_win.cc", |
| "app/server/win/com_classes.cc", |
| "app/server/win/com_classes.h", |
| "app/server/win/com_classes_legacy.cc", |
| "app/server/win/com_classes_legacy.h", |
| "app/server/win/server.cc", |
| "app/server/win/server.h", |
| "app/server/win/service_main.cc", |
| "app/server/win/service_main.h", |
| "lib_util_win.cc", |
| "prefs_win.cc", |
| "service_factory_win.cc", |
| "setup_win.cc", |
| "win/wrl_module.h", |
| ] |
| } |
| |
| deps = [ |
| ":base", |
| ":branding_header", |
| ":version_header", |
| "//base", |
| "//base:i18n", |
| "//components/crash/core/common:crash_key", |
| "//components/crx_file:crx_file", |
| "//components/prefs", |
| "//components/update_client", |
| "//components/update_client:in_process_patcher", |
| "//components/update_client:in_process_unzipper", |
| "//components/version_info", |
| "//third_party/boringssl", |
| "//url", |
| ] |
| |
| if (is_win) { |
| # //chrome/updater:lib and //chrome/updater/win:lib behave as one unit |
| # for linking purposes. Targets depending on the latter must use |
| # the former as a dependency. |
| allow_circular_includes_from = [ "//chrome/updater/win:lib" ] |
| deps += [ |
| "//chrome/installer/util:with_no_strings", |
| "//chrome/updater/app/server/win:updater_idl_idl", |
| "//chrome/updater/app/server/win:updater_internal_idl_idl", |
| "//chrome/updater/app/server/win:updater_legacy_idl_idl", |
| "//chrome/updater/win:constants", |
| ] |
| public_deps = [ "//chrome/updater/win:lib" ] |
| } |
| |
| if (is_mac) { |
| deps += [ |
| "//chrome/updater/app/server/mac:protocol", |
| "//chrome/updater/mac:enterprise", |
| "//chrome/updater/mac:installer_sources", |
| "//chrome/updater/mac:network_fetcher_sources", |
| "//chrome/updater/mac:updater_setup_sources", |
| "//chrome/updater/mac:xpc_names", |
| ] |
| } |
| |
| if (is_mac) { |
| frameworks = [ "Foundation.framework" ] |
| } |
| |
| if (is_win) { |
| configs -= [ "//build/config/win:winver" ] |
| configs += [ |
| "//chrome/updater/app/server/win:winver", |
| "//chrome/updater/win:wrl_strict", |
| ] |
| } |
| } |
| |
| process_version("version_header") { |
| sources = [ "//chrome/VERSION" ] |
| |
| template_file = "updater_version.h.in" |
| output = "$target_gen_dir/updater_version.h" |
| } |
| |
| process_version("branding_header") { |
| extra_args = [ |
| "-e", |
| "COMPANY_FULLNAME=\"$updater_company_full_name\"", |
| "-e", |
| "COMPANY_SHORTNAME=\"$updater_company_short_name\"", |
| "-e", |
| "PRODUCT_FULLNAME=\"$updater_product_full_name\"", |
| "-e", |
| "COPYRIGHT=\"updater_copyright\"", |
| "-e", |
| "MAC_BUNDLE_IDENTIFIER=\"$mac_updater_bundle_identifier\"", |
| "-e", |
| "BROWSER_NAME=\"$browser_name\"", |
| "-e", |
| "MAC_BROWSER_BUNDLE_IDENTIFIER=\"$mac_browser_bundle_identifier\"", |
| "-e", |
| "UPDATE_CHECK_URL=\"$update_check_url\"", |
| "-e", |
| "CRASH_UPLOAD_URL=\"$crash_upload_url\"", |
| "-e", |
| "CRASH_STAGING_UPLOAD_URL=\"$crash_staging_upload_url\"", |
| "-e", |
| "DEVICE_MANAGEMENT_SERVER_URL=\"$device_management_server_url\"", |
| ] |
| |
| template_file = "updater_branding.h.in" |
| output = "$target_gen_dir/updater_branding.h" |
| } |
| |
| source_set("updater_tests_support") { |
| testonly = true |
| |
| sources = [ |
| "unittest_util.cc", |
| "unittest_util.h", |
| ] |
| |
| deps = [ |
| ":base", |
| ":lib", |
| "//base", |
| ] |
| } |
| |
| source_set("browser_sources") { |
| sources = [ |
| "//chrome/updater/constants.cc", |
| "//chrome/updater/constants.h", |
| "//chrome/updater/enum_traits.h", |
| "//chrome/updater/registration_data.cc", |
| "//chrome/updater/registration_data.h", |
| "//chrome/updater/update_service.cc", |
| "//chrome/updater/update_service.h", |
| ] |
| |
| deps = [ |
| ":branding_header", |
| "//base", |
| "//components/update_client", |
| ] |
| |
| if (is_mac) { |
| sources += [ |
| "//chrome/updater/app/server/mac/service_protocol.h", |
| "//chrome/updater/app/server/mac/service_protocol.mm", |
| "//chrome/updater/app/server/mac/update_service_wrappers.h", |
| "//chrome/updater/app/server/mac/update_service_wrappers.mm", |
| ] |
| } |
| |
| visibility = [ |
| "//chrome/browser/ui:ui", |
| "//chrome/browser/updater:*", |
| ] |
| } |
| |
| source_set("updater_test_sources") { |
| testonly = true |
| sources = [ |
| "app/app_server_unittest.cc", |
| "enum_traits_unittest.cc", |
| "external_constants_builder_unittest.cc", |
| "external_constants_override_unittest.cc", |
| "lib_util_unittest.cc", |
| "persisted_data_unittest.cc", |
| "policy_manager_unittest.cc", |
| "policy_service_unittest.cc", |
| "prefs_unittest.cc", |
| "tag_unittest.cc", |
| "test/integration_test_commands.h", |
| "test/integration_test_commands_system.cc", |
| "test/integration_test_commands_user.cc", |
| "test/integration_tests.cc", |
| "test/integration_tests_impl.cc", |
| "test/integration_tests_impl.h", |
| "test/server.cc", |
| "test/server.h", |
| "unittest_util_unittest.cc", |
| "update_service_unittest.cc", |
| "updater_scope_unittest.cc", |
| "updater_unittest.cc", |
| ] |
| |
| deps = [ |
| ":base", |
| ":branding_header", |
| ":lib", |
| ":updater", |
| ":updater_tests_support", |
| ":version_header", |
| "//base", |
| "//base/test:test_support", |
| "//chrome/common:constants", |
| "//chrome/updater/device_management:unittest", |
| "//chrome/updater/test/test_app:constants", |
| "//chrome/updater/test/test_app:version_header", |
| "//chrome/updater/tools:unittest", |
| "//components/prefs:test_support", |
| "//components/update_client", |
| "//net:test_support", |
| "//testing/gtest", |
| "//third_party/re2", |
| "//url", |
| ] |
| |
| if (is_win) { |
| sources += [ "test/integration_tests_win.cc" ] |
| |
| deps += [ |
| "//chrome/updater/app/server/win:updater_idl_idl", |
| "//chrome/updater/app/server/win:updater_internal_idl_idl", |
| "//chrome/updater/app/server/win:updater_legacy_idl_idl", |
| "//chrome/updater/win:constants", |
| "//chrome/updater/win:updater_tests", |
| ] |
| |
| data_deps = [ |
| "//chrome/updater/win:updater", |
| "//chrome/updater/win/installer", |
| ] |
| } |
| |
| if (is_mac) { |
| sources += [ |
| "mac/scoped_xpc_service_mock.h", |
| "mac/scoped_xpc_service_mock.mm", |
| "mac/update_service_proxy_test.mm", |
| "test/integration_tests_mac.mm", |
| ] |
| |
| deps += [ |
| "//chrome/common/mac:launchd", |
| "//chrome/updater/app/server/mac:protocol", |
| "//chrome/updater/mac:enterprise_tests", |
| "//chrome/updater/mac:network_fetcher_sources", |
| "//chrome/updater/mac:updater_bundle", |
| "//chrome/updater/mac:updater_setup_tests", |
| "//chrome/updater/mac:updater_tests", |
| "//chrome/updater/mac:xpc_names", |
| "//third_party/ocmock", |
| ] |
| |
| data_deps = [ |
| "//chrome/updater/mac:updater_bundle", |
| "//chrome/updater/test/test_app", |
| ] |
| } |
| } |
| |
| # These tests are run serially since they mutate system state. |
| test("updater_tests") { |
| testonly = true |
| |
| sources = [ |
| "run_all_unittests.cc", |
| "test/integration_test_commands_factory_user.cc", |
| ] |
| |
| deps = [ |
| ":updater_test_sources", |
| "//base/test:test_support", |
| "//chrome/common:constants", |
| "//testing/gtest", |
| ] |
| if (is_win) { |
| deps += [ "//chrome/updater/win:updater_tests" ] |
| } |
| |
| data_deps = [ "//chrome/updater/test/test_app" ] |
| if (is_mac) { |
| data_deps += [ "//chrome/updater/mac:updater_bundle" ] |
| } |
| } |
| |
| test("updater_tests_system") { |
| testonly = true |
| |
| sources = [ |
| "run_all_unittests.cc", |
| "test/integration_test_commands_factory_system.cc", |
| ] |
| |
| deps = [ |
| ":updater_test_sources", |
| "//base/test:test_support", |
| "//chrome/common:constants", |
| "//testing/gtest", |
| ] |
| if (is_win) { |
| deps += [ "//chrome/updater/win:updater_tests" ] |
| } |
| |
| data_deps = [ ":updater_integration_tests_helper" ] |
| if (is_mac) { |
| data_deps += [ |
| "//chrome/updater/mac:updater_bundle", |
| "//chrome/updater/test/test_app", |
| ] |
| } |
| } |
| |
| executable("updater_integration_tests_helper") { |
| testonly = true |
| |
| sources = [ |
| "test/integration_test_commands_factory_system.cc", |
| "test/integration_tests_helper.cc", |
| ] |
| |
| deps = [ |
| ":base", |
| ":lib", |
| ":updater_test_sources", |
| "//base", |
| "//url", |
| ] |
| } |
| } |