| # 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. |
| |
| import("//mojo/public/tools/bindings/mojom.gni") |
| |
| if (is_android) { |
| import("//build/config/android/rules.gni") |
| } |
| import("//build/buildflag_header.gni") |
| import("//components/optimization_guide/features.gni") |
| import("//third_party/mediapipe/features.gni") |
| import("//third_party/tflite/features.gni") |
| |
| static_library("bloomfilter") { |
| sources = [ |
| "bloom_filter.cc", |
| "bloom_filter.h", |
| ] |
| deps = [ |
| "//base", |
| "//third_party/smhasher:murmurhash3", |
| ] |
| configs += [ "//build/config/compiler:wexit_time_destructors" ] |
| } |
| |
| static_library("model_executor") { |
| sources = [ |
| "execution_status.cc", |
| "execution_status.h", |
| "model_enums.h", |
| "model_executor.h", |
| "model_info.cc", |
| "model_info.h", |
| "model_util.cc", |
| "model_util.h", |
| ] |
| if (build_with_tflite_lib) { |
| sources += [ |
| "base_model_executor.h", |
| "base_model_executor_helpers.h", |
| "bert_model_executor.cc", |
| "bert_model_executor.h", |
| "model_execution_timeout_watchdog.cc", |
| "model_execution_timeout_watchdog.h", |
| "signature_model_executor.h", |
| "tflite_model_executor.h", |
| ] |
| } |
| |
| if (build_with_mediapipe_lib) { |
| assert(build_with_tflite_lib) |
| |
| sources += [ |
| "mediapipe_text_model_executor.cc", |
| "mediapipe_text_model_executor.h", |
| ] |
| } |
| |
| public_deps = [ |
| "//components/optimization_guide:machine_learning_tflite_buildflags", |
| "//components/optimization_guide/proto:optimization_guide_proto", |
| "//third_party/re2", |
| ] |
| |
| deps = [ |
| ":features", |
| "//base", |
| "//net", |
| "//url", |
| ] |
| |
| configs += [ "//build/config/compiler:wexit_time_destructors" ] |
| |
| if (build_with_tflite_lib) { |
| public_deps += [ |
| "//components/optimization_guide/core:machine_learning", |
| "//third_party/abseil-cpp:absl", |
| "//third_party/tflite", |
| "//third_party/tflite:tflite_public_headers", |
| "//third_party/tflite_support", |
| "//third_party/tflite_support:tflite_support_proto", |
| ] |
| deps += [ ":machine_learning" ] |
| } |
| |
| if (build_with_mediapipe_lib) { |
| assert(build_with_tflite_lib) |
| |
| public_deps += [ "//third_party/mediapipe" ] |
| } |
| } |
| |
| mojom("interfaces") { |
| sources = [ "optimization_guide_common.mojom" ] |
| webui_module_path = "/" |
| public_deps = [ "//mojo/public/mojom/base" ] |
| } |
| |
| if (build_with_tflite_lib) { |
| static_library("machine_learning") { |
| sources = [ |
| "tflite_op_resolver.cc", |
| "tflite_op_resolver.h", |
| ] |
| deps = [ |
| ":features", |
| "//components/optimization_guide:machine_learning_tflite_buildflags", |
| "//third_party/tflite", |
| "//third_party/tflite:buildflags", |
| "//third_party/tflite:tflite_public_headers", |
| ] |
| configs += [ "//build/config/compiler:wexit_time_destructors" ] |
| } |
| } |
| |
| component("features") { |
| sources = [ |
| "feature_registry/enterprise_policy_registry.cc", |
| "feature_registry/enterprise_policy_registry.h", |
| "feature_registry/feature_registration.cc", |
| "feature_registry/feature_registration.h", |
| "feature_registry/mqls_feature_registry.cc", |
| "feature_registry/mqls_feature_registry.h", |
| "feature_registry/settings_ui_registry.cc", |
| "feature_registry/settings_ui_registry.h", |
| "insertion_ordered_set.h", |
| "model_execution/feature_keys.h", |
| "model_execution/model_execution_prefs.cc", |
| "model_execution/model_execution_prefs.h", |
| "model_quality/feature_type_map.h", |
| "optimization_guide_constants.cc", |
| "optimization_guide_constants.h", |
| "optimization_guide_enums.h", |
| "optimization_guide_features.cc", |
| "optimization_guide_features.h", |
| "optimization_guide_prefs.cc", |
| "optimization_guide_prefs.h", |
| "optimization_guide_switches.cc", |
| "optimization_guide_switches.h", |
| ] |
| public_deps = [ |
| "//base", |
| "//ui/accessibility", |
| ] |
| deps = [ |
| "//components/optimization_guide:machine_learning_tflite_buildflags", |
| "//components/optimization_guide/proto:optimization_guide_proto", |
| "//components/prefs", |
| "//components/variations", |
| "//google_apis", |
| "//net", |
| "//services/preferences/public/cpp", |
| "//third_party/metrics_proto:metrics_proto", |
| "//ui/base", |
| ] |
| configs += [ "//build/config/compiler:wexit_time_destructors" ] |
| defines = [ "IS_OPTIMIZATION_GUIDE_FEATURES_IMPL" ] |
| } |
| |
| output_proto_descriptors_cc_file = "$root_gen_dir/components/optimization_guide/core/model_execution/on_device_model_execution_proto_descriptors.cc" |
| |
| static_library("core") { |
| sources = [ |
| "access_token_helper.cc", |
| "access_token_helper.h", |
| "command_line_top_host_provider.cc", |
| "command_line_top_host_provider.h", |
| "hint_cache.cc", |
| "hint_cache.h", |
| "hints_component_info.h", |
| "hints_component_util.cc", |
| "hints_component_util.h", |
| "hints_fetcher.cc", |
| "hints_fetcher.h", |
| "hints_fetcher_factory.cc", |
| "hints_fetcher_factory.h", |
| "hints_manager.cc", |
| "hints_manager.h", |
| "hints_processing_util.cc", |
| "hints_processing_util.h", |
| "memory_hint.cc", |
| "memory_hint.h", |
| "model_execution/optimization_guide_model_execution_error.cc", |
| "model_execution/optimization_guide_model_execution_error.h", |
| "model_execution/performance_class.cc", |
| "model_execution/performance_class.h", |
| "model_handler.h", |
| "model_quality/model_execution_logging_wrappers.h", |
| "model_quality/model_quality_log_entry.cc", |
| "model_quality/model_quality_log_entry.h", |
| "model_quality/model_quality_logs_uploader_service.cc", |
| "model_quality/model_quality_logs_uploader_service.h", |
| "model_quality/model_quality_util.cc", |
| "model_quality/model_quality_util.h", |
| "noisy_metrics_recorder.cc", |
| "noisy_metrics_recorder.h", |
| "optimization_filter.cc", |
| "optimization_filter.h", |
| "optimization_guide_decider.h", |
| "optimization_guide_decision.h", |
| "optimization_guide_logger.cc", |
| "optimization_guide_logger.h", |
| "optimization_guide_model_executor.cc", |
| "optimization_guide_model_executor.h", |
| "optimization_guide_model_provider.h", |
| "optimization_guide_navigation_data.cc", |
| "optimization_guide_navigation_data.h", |
| "optimization_guide_permissions_util.cc", |
| "optimization_guide_permissions_util.h", |
| "optimization_guide_proto_util.cc", |
| "optimization_guide_proto_util.h", |
| "optimization_guide_store.cc", |
| "optimization_guide_store.h", |
| "optimization_guide_util.cc", |
| "optimization_guide_util.h", |
| "optimization_hints_component_observer.h", |
| "optimization_hints_component_update_listener.cc", |
| "optimization_hints_component_update_listener.h", |
| "optimization_metadata.cc", |
| "optimization_metadata.h", |
| "optimization_target_model_observer.h", |
| "prediction_model_fetcher.h", |
| "prediction_model_fetcher_impl.cc", |
| "prediction_model_fetcher_impl.h", |
| "push_notification_manager.cc", |
| "push_notification_manager.h", |
| "store_update_data.cc", |
| "store_update_data.h", |
| "tab_url_provider.h", |
| "top_host_provider.h", |
| "url_pattern_with_wildcards.cc", |
| "url_pattern_with_wildcards.h", |
| ] |
| if (!is_fuchsia || !optimize_for_size) { |
| sources += [ |
| "model_execution/aqa_response_parser.cc", |
| "model_execution/aqa_response_parser.h", |
| "model_execution/json_response_parser.cc", |
| "model_execution/json_response_parser.h", |
| "model_execution/model_execution_features.cc", |
| "model_execution/model_execution_features.h", |
| "model_execution/model_execution_features_controller.cc", |
| "model_execution/model_execution_features_controller.h", |
| "model_execution/model_execution_fetcher.cc", |
| "model_execution/model_execution_fetcher.h", |
| "model_execution/model_execution_manager.cc", |
| "model_execution/model_execution_manager.h", |
| "model_execution/model_execution_util.cc", |
| "model_execution/model_execution_util.h", |
| "model_execution/on_device_model_access_controller.cc", |
| "model_execution/on_device_model_access_controller.h", |
| "model_execution/on_device_model_adaptation_controller.cc", |
| "model_execution/on_device_model_adaptation_controller.h", |
| "model_execution/on_device_model_adaptation_loader.cc", |
| "model_execution/on_device_model_adaptation_loader.h", |
| "model_execution/on_device_model_component.cc", |
| "model_execution/on_device_model_component.h", |
| "model_execution/on_device_model_execution_proto_descriptors.h", |
| "model_execution/on_device_model_execution_proto_value_utils.cc", |
| "model_execution/on_device_model_execution_proto_value_utils.h", |
| "model_execution/on_device_model_feature_adapter.cc", |
| "model_execution/on_device_model_feature_adapter.h", |
| "model_execution/on_device_model_metadata.cc", |
| "model_execution/on_device_model_metadata.h", |
| "model_execution/on_device_model_service_controller.cc", |
| "model_execution/on_device_model_service_controller.h", |
| "model_execution/on_device_model_validator.cc", |
| "model_execution/on_device_model_validator.h", |
| "model_execution/redactor.cc", |
| "model_execution/redactor.h", |
| "model_execution/repetition_checker.cc", |
| "model_execution/repetition_checker.h", |
| "model_execution/response_parser.cc", |
| "model_execution/response_parser.h", |
| "model_execution/response_parser_registry.cc", |
| "model_execution/response_parser_registry.h", |
| "model_execution/safety_checker.cc", |
| "model_execution/safety_checker.h", |
| "model_execution/safety_client.cc", |
| "model_execution/safety_client.h", |
| "model_execution/safety_config.cc", |
| "model_execution/safety_config.h", |
| "model_execution/safety_model_info.cc", |
| "model_execution/safety_model_info.h", |
| "model_execution/session_impl.cc", |
| "model_execution/session_impl.h", |
| "model_execution/settings_enabled_observer.cc", |
| "model_execution/settings_enabled_observer.h", |
| "model_execution/simple_response_parser.cc", |
| "model_execution/simple_response_parser.h", |
| "model_execution/substitution.cc", |
| "model_execution/substitution.h", |
| output_proto_descriptors_cc_file, |
| ] |
| } |
| if (build_with_tflite_lib) { |
| sources += [ |
| "bert_model_handler.cc", |
| "bert_model_handler.h", |
| "model_validator.cc", |
| "model_validator.h", |
| ] |
| } |
| |
| public_deps = [ |
| ":features", |
| ":model_executor", |
| "//components/autofill/core/common", |
| "//components/leveldb_proto", |
| "//components/optimization_guide:machine_learning_tflite_buildflags", |
| "//components/optimization_guide/core:interfaces", |
| "//components/optimization_guide/proto:optimization_guide_proto", |
| "//third_party/re2", |
| ] |
| if (build_with_tflite_lib) { |
| public_deps += [ |
| "//components/optimization_guide/core:machine_learning", |
| "//third_party/abseil-cpp:absl", |
| "//third_party/tflite", |
| "//third_party/tflite:tflite_public_headers", |
| "//third_party/tflite_support", |
| "//third_party/tflite_support:tflite_support_proto", |
| "//third_party/zlib/google:compression_utils", |
| ] |
| } |
| |
| deps = [ |
| ":bloomfilter", |
| "//base", |
| "//components/optimization_guide/optimization_guide_internals/webui:mojo_bindings", |
| "//components/prefs", |
| "//components/signin/public/identity_manager:identity_manager", |
| "//components/unified_consent", |
| "//components/variations", |
| "//components/variations/net", |
| "//google_apis", |
| "//google_apis/common:request_util", |
| "//services/metrics/public/cpp:metrics_cpp", |
| "//services/metrics/public/cpp:ukm_builders", |
| "//services/network/public/cpp", |
| "//services/on_device_model/public/cpp", |
| "//services/on_device_model/public/mojom", |
| "//third_party/tflite:buildflags", |
| "//url:url", |
| ] |
| |
| if (!is_fuchsia || !optimize_for_size) { |
| deps += [ |
| ":on_device_model_execution_proto_generator", |
| "//components/component_updater", |
| "//components/version_info", |
| "//services/data_decoder/public/cpp", |
| "//third_party/re2", |
| ] |
| } |
| |
| configs += [ "//build/config/compiler:wexit_time_destructors" ] |
| } |
| |
| static_library("prediction") { |
| sources = [ |
| "model_store_metadata_entry.cc", |
| "model_store_metadata_entry.h", |
| "prediction_manager.cc", |
| "prediction_manager.h", |
| "prediction_model_download_manager.cc", |
| "prediction_model_download_manager.h", |
| "prediction_model_download_observer.h", |
| "prediction_model_fetch_timer.cc", |
| "prediction_model_fetch_timer.h", |
| "prediction_model_override.cc", |
| "prediction_model_override.h", |
| "prediction_model_store.cc", |
| "prediction_model_store.h", |
| ] |
| deps = [ |
| "//components/crx_file", |
| "//components/download/public/background_service:public", |
| "//components/optimization_guide/core", |
| "//components/optimization_guide/optimization_guide_internals/webui:mojo_bindings", |
| "//components/optimization_guide/proto:optimization_guide_proto", |
| "//components/prefs", |
| "//components/services/unzip/public/cpp", |
| "//crypto", |
| "//google_apis", |
| "//google_apis/common:request_util", |
| "//net/traffic_annotation", |
| "//services/network/public/cpp", |
| ] |
| configs += [ "//build/config/compiler:wexit_time_destructors" ] |
| if (is_ios) { |
| deps += [ "//components/services/unzip:in_process" ] |
| } else { |
| deps += [ "//components/services/unzip/content" ] |
| } |
| } |
| |
| static_library("test_support") { |
| testonly = true |
| sources = [ |
| "mock_optimization_guide_decider.cc", |
| "mock_optimization_guide_decider.h", |
| "mock_optimization_guide_model_executor.cc", |
| "mock_optimization_guide_model_executor.h", |
| "mock_push_notification_manager.cc", |
| "mock_push_notification_manager.h", |
| "model_quality/test_model_quality_logs_uploader_service.cc", |
| "model_quality/test_model_quality_logs_uploader_service.h", |
| "optimization_guide_test_util.cc", |
| "optimization_guide_test_util.h", |
| "proto_database_provider_test_base.cc", |
| "proto_database_provider_test_base.h", |
| "test_hints_component_creator.cc", |
| "test_hints_component_creator.h", |
| "test_model_executor.cc", |
| "test_model_executor.h", |
| "test_model_handler.h", |
| "test_model_info_builder.cc", |
| "test_model_info_builder.h", |
| "test_optimization_guide_decider.cc", |
| "test_optimization_guide_decider.h", |
| "test_optimization_guide_model_provider.cc", |
| "test_optimization_guide_model_provider.h", |
| ] |
| if (build_with_tflite_lib) { |
| sources += [ |
| "test_tflite_model_executor.cc", |
| "test_tflite_model_executor.h", |
| "test_tflite_model_handler.h", |
| ] |
| } |
| |
| deps = [ |
| ":bloomfilter", |
| ":core", |
| "//base", |
| "//components/leveldb_proto", |
| "//components/optimization_guide/proto:optimization_guide_proto", |
| "//services/network/public/cpp", |
| "//testing/gmock", |
| "//testing/gtest", |
| "//url", |
| ] |
| if (build_with_tflite_lib) { |
| deps += [ "//third_party/abseil-cpp:absl" ] |
| } |
| } |
| |
| if (is_ios) { |
| source_set("eg_test_support+eg2") { |
| testonly = true |
| sources = [ |
| "optimization_guide_constants.cc", |
| "optimization_guide_constants.h", |
| "optimization_guide_enums.h", |
| "optimization_guide_switches.cc", |
| "optimization_guide_switches.h", |
| "optimization_guide_test_util.cc", |
| "optimization_guide_test_util.h", |
| ] |
| deps = [ |
| "//base", |
| "//components/optimization_guide/proto:optimization_guide_proto", |
| "//google_apis", |
| "//url", |
| ] |
| } |
| } |
| |
| source_set("unit_tests") { |
| testonly = true |
| sources = [ |
| "bloom_filter_unittest.cc", |
| "command_line_top_host_provider_unittest.cc", |
| "feature_registry/enterprise_policy_registry_unittest.cc", |
| "feature_registry/mqls_feature_registry_unittest.cc", |
| "feature_registry/settings_ui_registry_unittest.cc", |
| "hint_cache_unittest.cc", |
| "hints_component_util_unittest.cc", |
| "hints_fetcher_unittest.cc", |
| "hints_manager_unittest.cc", |
| "hints_processing_util_unittest.cc", |
| "insertion_ordered_set_unittest.cc", |
| "model_execution/performance_class_unittest.cc", |
| "model_handler_unittest.cc", |
| "model_quality/model_execution_logging_wrappers_unittest.cc", |
| "model_quality/model_quality_log_entry_unittest.cc", |
| "model_quality/model_quality_logs_uploader_service_unittest.cc", |
| "model_quality/model_quality_util_unittest.cc", |
| "model_store_metadata_entry_unittest.cc", |
| "model_util_unittest.cc", |
| "noisy_metrics_recorder_unittest.cc", |
| "optimization_filter_unittest.cc", |
| "optimization_guide_features_unittest.cc", |
| "optimization_guide_navigation_data_unittest.cc", |
| "optimization_guide_permissions_util_unittest.cc", |
| "optimization_guide_proto_util_unittest.cc", |
| "optimization_guide_store_unittest.cc", |
| "optimization_guide_switches_unittest.cc", |
| "optimization_guide_util_unittest.cc", |
| "optimization_hints_component_update_listener_unittest.cc", |
| "optimization_metadata_unittest.cc", |
| "prediction_manager_unittest.cc", |
| "prediction_model_download_manager_unittest.cc", |
| "prediction_model_fetch_timer_unittest.cc", |
| "prediction_model_fetcher_unittest.cc", |
| "prediction_model_override_unittest.cc", |
| "prediction_model_store_unittest.cc", |
| "push_notification_manager_unittest.cc", |
| "store_update_data_unittest.cc", |
| "url_pattern_with_wildcards_unittest.cc", |
| ] |
| |
| if (!is_fuchsia || !optimize_for_size) { |
| sources += [ |
| "model_execution/aqa_response_parser_unittest.cc", |
| "model_execution/json_response_parser_unittest.cc", |
| "model_execution/model_execution_features_controller_unittest.cc", |
| "model_execution/model_execution_features_unittest.cc", |
| "model_execution/model_execution_fetcher_unittest.cc", |
| "model_execution/model_execution_manager_unittest.cc", |
| "model_execution/on_device_model_adaptation_loader_unittest.cc", |
| "model_execution/on_device_model_component_unittest.cc", |
| "model_execution/on_device_model_execution_proto_value_utils_unittest.cc", |
| "model_execution/on_device_model_feature_adapter_unittest.cc", |
| "model_execution/on_device_model_metadata_unittest.cc", |
| "model_execution/on_device_model_service_controller_unittest.cc", |
| "model_execution/on_device_model_validator_unittest.cc", |
| "model_execution/optimization_guide_model_execution_error_unittest.cc", |
| "model_execution/redactor_unittest.cc", |
| "model_execution/repetition_checker_unittest.cc", |
| "model_execution/safety_checker_unittest.cc", |
| "model_execution/simple_response_parser_unittest.cc", |
| "model_execution/substitution_unittest.cc", |
| "model_execution/test/fake_model_assets.cc", |
| "model_execution/test/fake_model_assets.h", |
| "model_execution/test/feature_config_builder.cc", |
| "model_execution/test/feature_config_builder.h", |
| "model_execution/test/request_builder.cc", |
| "model_execution/test/request_builder.h", |
| "model_execution/test/response_holder.cc", |
| "model_execution/test/response_holder.h", |
| "model_execution/test/test_on_device_model_component_state_manager.cc", |
| "model_execution/test/test_on_device_model_component_state_manager.h", |
| ] |
| } |
| if (build_with_tflite_lib) { |
| sources += [ |
| "bert_model_executor_unittest.cc", |
| "model_validator_unittest.cc", |
| "tflite_model_executor_unittest.cc", |
| ] |
| } |
| |
| if (build_with_mediapipe_lib) { |
| assert(build_with_tflite_lib) |
| |
| sources += [ "mediapipe_text_model_executor_unittest.cc" ] |
| } |
| |
| deps = [ |
| ":bloomfilter", |
| ":core", |
| ":features", |
| ":prediction", |
| ":test_support", |
| ":unit_tests_bundle_data", |
| "//base", |
| "//base/test:test_proto", |
| "//base/test:test_support", |
| "//build:chromeos_buildflags", |
| "//components/download/public/background_service/test:test_support", |
| "//components/leveldb_proto:test_support", |
| "//components/optimization_guide/proto:optimization_guide_proto", |
| "//components/prefs:test_support", |
| "//components/services/unzip:in_process", |
| "//components/signin/public/identity_manager:test_support", |
| "//components/sync_preferences:test_support", |
| "//components/ukm:test_support", |
| "//components/unified_consent", |
| "//components/variations:test_support", |
| "//net:test_support", |
| "//services/data_decoder/public/cpp:test_support", |
| "//services/network:network_service", |
| "//services/network:test_support", |
| "//services/on_device_model/public/cpp", |
| "//services/on_device_model/public/cpp/test_support", |
| "//testing/gmock", |
| "//testing/gtest", |
| "//third_party/tflite:buildflags", |
| "//third_party/zlib/google:zip", |
| "//ui/base", |
| "//url:url", |
| ] |
| if (!is_ios) { |
| deps += [ "//components/services/unzip/content" ] |
| } |
| |
| if (!is_fuchsia || !optimize_for_size) { |
| deps += [ "//components/component_updater" ] |
| } |
| |
| if (build_with_tflite_lib) { |
| deps += [ |
| "//third_party/abseil-cpp:absl", |
| "//third_party/tflite", |
| "//third_party/tflite:tflite_public_headers", |
| "//third_party/tflite_support", |
| "//third_party/tflite_support:tflite_support_proto", |
| ] |
| } |
| |
| if (build_with_mediapipe_lib) { |
| assert(build_with_tflite_lib) |
| |
| deps += [ "//third_party/mediapipe" ] |
| } |
| } |
| |
| bundle_data("unit_tests_bundle_data") { |
| visibility = [ ":unit_tests" ] |
| testonly = true |
| sources = [ |
| "//components/test/data/optimization_guide/bert_page_topics_model.tflite", |
| "//components/test/data/optimization_guide/invalid_model.crx3", |
| "//components/test/data/optimization_guide/simple_test.tflite", |
| ] |
| outputs = [ "{{bundle_resources_dir}}/" + |
| "{{source_root_relative_dir}}/{{source_file_part}}" ] |
| } |
| |
| if (is_android) { |
| java_cpp_enum("optimization_guide_generated_enums") { |
| sources = [ "optimization_guide_decision.h" ] |
| visibility = [ "//chrome/browser/optimization_guide/android:*" ] |
| } |
| } |
| |
| if (is_mac && build_with_internal_optimization_guide) { |
| # We need to copy the optimization guide shared library so that the |
| # bundle_data dependencies have a "copy" target type.Otherwise for |
| # "shared_library" target types it will try to link things into |
| # Chromium Framework when we want to keep it separate instead. |
| copy("optimization_guide_internal_library_copy") { |
| sources = [ "$root_out_dir/liboptimization_guide_internal.dylib" ] |
| outputs = [ "$root_out_dir/og_intermediates/{{source_file_part}}" ] |
| deps = [ |
| "//components/optimization_guide/internal:optimization_guide_internal", |
| ] |
| } |
| } |
| |
| action("on_device_model_execution_proto_generator") { |
| script = |
| "//components/optimization_guide/tools/gen_on_device_proto_descriptors.py" |
| |
| inputs = [ "$root_gen_dir/components/optimization_guide/proto/optimization_guide_proto.descriptor" ] |
| outputs = [ output_proto_descriptors_cc_file ] |
| |
| args = [ "--output_cc=" + |
| rebase_path(output_proto_descriptors_cc_file, root_build_dir) ] |
| foreach(file, inputs) { |
| args += [ |
| "--input_file", |
| rebase_path(file, root_build_dir), |
| ] |
| } |
| |
| deps = [ |
| "//components/optimization_guide/proto:optimization_guide_proto_descriptors", |
| "//third_party/protobuf:py_proto_runtime", |
| ] |
| } |