# 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. { 'targets': [ { # GN version: //components/metrics 'target_name': 'metrics', 'type': 'static_library', 'include_dirs': [ '..', ], 'dependencies': [ '../base/base.gyp:base', '../third_party/zlib/google/zip.gyp:compression_utils', 'component_metrics_proto', 'prefs/prefs.gyp:prefs', 'variations', ], 'export_dependent_settings': [ 'component_metrics_proto', ], 'sources': [ 'metrics/call_stack_profile_metrics_provider.cc', 'metrics/call_stack_profile_metrics_provider.h', 'metrics/clean_exit_beacon.cc', 'metrics/clean_exit_beacon.h', 'metrics/client_info.cc', 'metrics/client_info.h', 'metrics/cloned_install_detector.cc', 'metrics/cloned_install_detector.h', 'metrics/daily_event.cc', 'metrics/daily_event.h', 'metrics/drive_metrics_provider.cc', 'metrics/drive_metrics_provider.h', 'metrics/drive_metrics_provider_android.cc', 'metrics/drive_metrics_provider_ios.mm', 'metrics/drive_metrics_provider_linux.cc', 'metrics/drive_metrics_provider_mac.mm', 'metrics/drive_metrics_provider_win.cc', 'metrics/file_metrics_provider.cc', 'metrics/file_metrics_provider.h', 'metrics/histogram_encoder.cc', 'metrics/histogram_encoder.h', 'metrics/machine_id_provider.h', 'metrics/machine_id_provider_stub.cc', 'metrics/machine_id_provider_win.cc', 'metrics/metrics_log.cc', 'metrics/metrics_log.h', 'metrics/metrics_log_manager.cc', 'metrics/metrics_log_manager.h', 'metrics/metrics_log_uploader.cc', 'metrics/metrics_log_uploader.h', 'metrics/metrics_pref_names.cc', 'metrics/metrics_pref_names.h', 'metrics/metrics_provider.cc', 'metrics/metrics_provider.h', 'metrics/metrics_reporting_scheduler.cc', 'metrics/metrics_reporting_scheduler.h', 'metrics/metrics_service.cc', 'metrics/metrics_service.h', 'metrics/metrics_service_accessor.cc', 'metrics/metrics_service_accessor.h', 'metrics/metrics_service_client.cc', 'metrics/metrics_service_client.h', 'metrics/metrics_state_manager.cc', 'metrics/metrics_state_manager.h', 'metrics/metrics_switches.cc', 'metrics/metrics_switches.h', 'metrics/persisted_logs.cc', 'metrics/persisted_logs.h', 'metrics/stability_metrics_helper.cc', 'metrics/stability_metrics_helper.h', 'metrics/system_memory_stats_recorder.h', 'metrics/system_memory_stats_recorder_linux.cc', 'metrics/system_memory_stats_recorder_win.cc', 'metrics/url_constants.cc', 'metrics/url_constants.h', ], 'conditions': [ ['chromeos==1', { 'dependencies': [ 'metrics_serialization', ], }], ['OS == "mac"', { 'link_settings': { 'libraries': [ # The below are all needed for drive_metrics_provider_mac.mm. '$(SDKROOT)/System/Library/Frameworks/CoreFoundation.framework', '$(SDKROOT)/System/Library/Frameworks/DiskArbitration.framework', '$(SDKROOT)/System/Library/Frameworks/Foundation.framework', '$(SDKROOT)/System/Library/Frameworks/IOKit.framework', ], }, }], ['OS=="win"', { 'sources!': [ 'metrics/machine_id_provider_stub.cc', ], }], ], }, { # GN version: //components/metrics:net 'target_name': 'metrics_net', 'type': 'static_library', 'include_dirs': [ '..', ], 'dependencies': [ '../base/base.gyp:base', '../net/net.gyp:net', '../url/url.gyp:url_lib', 'component_metrics_proto', 'data_use_measurement_core', 'metrics', 'version_info', ], 'sources': [ 'metrics/net/net_metrics_log_uploader.cc', 'metrics/net/net_metrics_log_uploader.h', 'metrics/net/network_metrics_provider.cc', 'metrics/net/network_metrics_provider.h', 'metrics/net/version_utils.cc', 'metrics/net/version_utils.h', 'metrics/net/wifi_access_point_info_provider.cc', 'metrics/net/wifi_access_point_info_provider.h', 'metrics/net/wifi_access_point_info_provider_chromeos.cc', 'metrics/net/wifi_access_point_info_provider_chromeos.h', ], }, { # GN version: //components/metrics:ui 'target_name': 'metrics_ui', 'type': 'static_library', 'include_dirs': [ '..', ], 'dependencies': [ '../base/base.gyp:base', '../ui/gfx/gfx.gyp:gfx', 'metrics', ], 'sources': [ 'metrics/ui/screen_info_metrics_provider.cc', 'metrics/ui/screen_info_metrics_provider.h', ], }, { # Protobuf compiler / generator for UMA (User Metrics Analysis). # # GN version: //components/metrics/proto:proto 'target_name': 'component_metrics_proto', 'type': 'static_library', 'sources': [ 'metrics/proto/call_stack_profile.proto', 'metrics/proto/cast_logs.proto', 'metrics/proto/chrome_user_metrics_extension.proto', 'metrics/proto/histogram_event.proto', 'metrics/proto/memory_leak_report.proto', 'metrics/proto/omnibox_event.proto', 'metrics/proto/omnibox_input_type.proto', 'metrics/proto/perf_data.proto', 'metrics/proto/perf_stat.proto', 'metrics/proto/profiler_event.proto', 'metrics/proto/sampled_profile.proto', 'metrics/proto/system_profile.proto', 'metrics/proto/user_action_event.proto', ], 'variables': { 'proto_in_dir': 'metrics/proto', 'proto_out_dir': 'components/metrics/proto', }, 'includes': [ '../build/protoc.gypi' ], }, { # TODO(isherman): Remove all //chrome dependencies on this target, and # merge the files in this target with components_unittests. # GN version: //components/metrics:test_support 'target_name': 'metrics_test_support', 'type': 'static_library', 'include_dirs': [ '..', ], 'dependencies': [ 'component_metrics_proto', 'metrics', ], 'export_dependent_settings': [ 'component_metrics_proto', ], 'sources': [ 'metrics/test_metrics_provider.cc', 'metrics/test_metrics_provider.h', 'metrics/test_metrics_service_client.cc', 'metrics/test_metrics_service_client.h', ], }, { # GN version: //components/metrics:profiler 'target_name': 'metrics_profiler', 'type': 'static_library', 'include_dirs': [ '..', ], 'dependencies': [ 'component_metrics_proto', 'metrics', 'variations', ], 'export_dependent_settings': [ 'component_metrics_proto', ], 'sources': [ 'metrics/profiler/profiler_metrics_provider.cc', 'metrics/profiler/profiler_metrics_provider.h', 'metrics/profiler/tracking_synchronizer.cc', 'metrics/profiler/tracking_synchronizer.h', 'metrics/profiler/tracking_synchronizer_delegate.h', 'metrics/profiler/tracking_synchronizer_observer.cc', 'metrics/profiler/tracking_synchronizer_observer.h', ], }, ], 'conditions': [ ['OS=="linux"', { 'targets': [ { 'target_name': 'metrics_serialization', 'type': 'static_library', 'sources': [ 'metrics/serialization/metric_sample.cc', 'metrics/serialization/metric_sample.h', 'metrics/serialization/serialization_utils.cc', 'metrics/serialization/serialization_utils.h', ], 'dependencies': [ '../base/base.gyp:base', ], }, ], }], ['chromeos==1', { 'targets': [ { # GN version: //components/metrics:leak_detector 'target_name': 'metrics_leak_detector', 'type': 'static_library', 'dependencies': [ '../base/base.gyp:base', ], 'sources': [ 'metrics/leak_detector/call_stack_manager.cc', 'metrics/leak_detector/call_stack_manager.h', 'metrics/leak_detector/call_stack_table.cc', 'metrics/leak_detector/call_stack_table.h', 'metrics/leak_detector/custom_allocator.cc', 'metrics/leak_detector/custom_allocator.h', 'metrics/leak_detector/leak_analyzer.cc', 'metrics/leak_detector/leak_analyzer.h', 'metrics/leak_detector/leak_detector.cc', 'metrics/leak_detector/leak_detector.h', 'metrics/leak_detector/leak_detector_impl.cc', 'metrics/leak_detector/leak_detector_impl.h', 'metrics/leak_detector/leak_detector_value_type.cc', 'metrics/leak_detector/leak_detector_value_type.h', 'metrics/leak_detector/ranked_set.cc', 'metrics/leak_detector/ranked_set.h', ], }, ], }], ['OS!="ios"', { 'targets': [ { # GN version: //components/metrics:gpu 'target_name': 'metrics_gpu', 'type': 'static_library', 'include_dirs': [ '..', ], 'dependencies': [ '../base/base.gyp:base', '../content/content.gyp:content_browser', 'component_metrics_proto', 'metrics', ], 'sources': [ 'metrics/gpu/gpu_metrics_provider.cc', 'metrics/gpu/gpu_metrics_provider.h', ], }, { # GN version: //components/metrics:profiler_content 'target_name': 'metrics_profiler_content', 'type': 'static_library', 'include_dirs': [ '..', ], 'dependencies': [ '../base/base.gyp:base', '../content/content.gyp:content_browser', '../content/content.gyp:content_common', 'metrics_profiler', ], 'sources': [ 'metrics/profiler/content/content_tracking_synchronizer_delegate.cc', 'metrics/profiler/content/content_tracking_synchronizer_delegate.h', ], }, ], }, { # OS==ios 'targets': [ { # GN version: //components/metrics:profiler_ios 'target_name': 'metrics_profiler_ios', 'type': 'static_library', 'include_dirs': [ '..', ], 'dependencies': [ '../base/base.gyp:base', 'metrics_profiler', ], 'sources': [ 'metrics/profiler/ios/ios_tracking_synchronizer_delegate.cc', 'metrics/profiler/ios/ios_tracking_synchronizer_delegate.h', ], }, ], }], ], }