1*6dbdd20aSAndroid Build Coastguard Worker# Copyright (C) 2017 The Android Open Source Project 2*6dbdd20aSAndroid Build Coastguard Worker# 3*6dbdd20aSAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License"); 4*6dbdd20aSAndroid Build Coastguard Worker# you may not use this file except in compliance with the License. 5*6dbdd20aSAndroid Build Coastguard Worker# You may obtain a copy of the License at 6*6dbdd20aSAndroid Build Coastguard Worker# 7*6dbdd20aSAndroid Build Coastguard Worker# http://www.apache.org/licenses/LICENSE-2.0 8*6dbdd20aSAndroid Build Coastguard Worker# 9*6dbdd20aSAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software 10*6dbdd20aSAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS, 11*6dbdd20aSAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*6dbdd20aSAndroid Build Coastguard Worker# See the License for the specific language governing permissions and 13*6dbdd20aSAndroid Build Coastguard Worker# limitations under the License. 14*6dbdd20aSAndroid Build Coastguard Worker 15*6dbdd20aSAndroid Build Coastguard Workerimport("../perfetto.gni") 16*6dbdd20aSAndroid Build Coastguard Worker 17*6dbdd20aSAndroid Build Coastguard Workerif (host_os == "win") { 18*6dbdd20aSAndroid Build Coastguard Worker _host_executable_suffix = ".exe" 19*6dbdd20aSAndroid Build Coastguard Worker} else { 20*6dbdd20aSAndroid Build Coastguard Worker _host_executable_suffix = "" 21*6dbdd20aSAndroid Build Coastguard Worker} 22*6dbdd20aSAndroid Build Coastguard Worker 23*6dbdd20aSAndroid Build Coastguard Workertemplate("proto_library") { 24*6dbdd20aSAndroid Build Coastguard Worker assert(defined(invoker.sources)) 25*6dbdd20aSAndroid Build Coastguard Worker 26*6dbdd20aSAndroid Build Coastguard Worker # This is used in chromium build. 27*6dbdd20aSAndroid Build Coastguard Worker not_needed(invoker, [ "proto_deps" ]) 28*6dbdd20aSAndroid Build Coastguard Worker 29*6dbdd20aSAndroid Build Coastguard Worker proto_sources = invoker.sources 30*6dbdd20aSAndroid Build Coastguard Worker 31*6dbdd20aSAndroid Build Coastguard Worker # All the proto imports should be relative to the project root. 32*6dbdd20aSAndroid Build Coastguard Worker proto_in_dir = "//" 33*6dbdd20aSAndroid Build Coastguard Worker if (defined(invoker.proto_in_dir)) { 34*6dbdd20aSAndroid Build Coastguard Worker proto_in_dir = invoker.proto_in_dir 35*6dbdd20aSAndroid Build Coastguard Worker } 36*6dbdd20aSAndroid Build Coastguard Worker assert(defined(invoker.proto_out_dir), 37*6dbdd20aSAndroid Build Coastguard Worker "proto_out_dir must be explicitly defined") 38*6dbdd20aSAndroid Build Coastguard Worker proto_out_dir = invoker.proto_out_dir 39*6dbdd20aSAndroid Build Coastguard Worker 40*6dbdd20aSAndroid Build Coastguard Worker # We don't support generate_python in the standalone build, but still must 41*6dbdd20aSAndroid Build Coastguard Worker # check that the caller sets this to false. This is because when building in 42*6dbdd20aSAndroid Build Coastguard Worker # the chromium tree, chromium's proto_library.gni in chrome (!= this) defaults 43*6dbdd20aSAndroid Build Coastguard Worker # generate_python = true. 44*6dbdd20aSAndroid Build Coastguard Worker assert(defined(invoker.generate_python) && !invoker.generate_python) 45*6dbdd20aSAndroid Build Coastguard Worker 46*6dbdd20aSAndroid Build Coastguard Worker import_dirs = [] 47*6dbdd20aSAndroid Build Coastguard Worker if (defined(invoker.import_dirs)) { 48*6dbdd20aSAndroid Build Coastguard Worker import_dirs = invoker.import_dirs 49*6dbdd20aSAndroid Build Coastguard Worker } 50*6dbdd20aSAndroid Build Coastguard Worker 51*6dbdd20aSAndroid Build Coastguard Worker # If false will not generate the default .pb.{cc,h} files. Used for custom 52*6dbdd20aSAndroid Build Coastguard Worker # codegen plugins. 53*6dbdd20aSAndroid Build Coastguard Worker generate_cc = true 54*6dbdd20aSAndroid Build Coastguard Worker if (defined(invoker.generate_cc)) { 55*6dbdd20aSAndroid Build Coastguard Worker generate_cc = invoker.generate_cc 56*6dbdd20aSAndroid Build Coastguard Worker } 57*6dbdd20aSAndroid Build Coastguard Worker 58*6dbdd20aSAndroid Build Coastguard Worker generate_descriptor = "" 59*6dbdd20aSAndroid Build Coastguard Worker if (defined(invoker.generate_descriptor)) { 60*6dbdd20aSAndroid Build Coastguard Worker generate_descriptor = invoker.generate_descriptor 61*6dbdd20aSAndroid Build Coastguard Worker 62*6dbdd20aSAndroid Build Coastguard Worker # Include imports to descriptor by default, but use exclude_imports to omit 63*6dbdd20aSAndroid Build Coastguard Worker # them if needed. 64*6dbdd20aSAndroid Build Coastguard Worker if (defined(invoker.exclude_imports)) { 65*6dbdd20aSAndroid Build Coastguard Worker exclude_imports = invoker.exclude_imports 66*6dbdd20aSAndroid Build Coastguard Worker } else { 67*6dbdd20aSAndroid Build Coastguard Worker exclude_imports = false 68*6dbdd20aSAndroid Build Coastguard Worker } 69*6dbdd20aSAndroid Build Coastguard Worker } 70*6dbdd20aSAndroid Build Coastguard Worker 71*6dbdd20aSAndroid Build Coastguard Worker if (defined(invoker.generator_plugin_label)) { 72*6dbdd20aSAndroid Build Coastguard Worker plugin_host_label = invoker.generator_plugin_label + "($host_toolchain)" 73*6dbdd20aSAndroid Build Coastguard Worker plugin_path = 74*6dbdd20aSAndroid Build Coastguard Worker get_label_info(plugin_host_label, "root_out_dir") + "/" + 75*6dbdd20aSAndroid Build Coastguard Worker get_label_info(plugin_host_label, "name") + _host_executable_suffix 76*6dbdd20aSAndroid Build Coastguard Worker generate_with_plugin = true 77*6dbdd20aSAndroid Build Coastguard Worker } else if (defined(invoker.generator_plugin_script)) { 78*6dbdd20aSAndroid Build Coastguard Worker plugin_path = invoker.generator_plugin_script 79*6dbdd20aSAndroid Build Coastguard Worker generate_with_plugin = true 80*6dbdd20aSAndroid Build Coastguard Worker } else { 81*6dbdd20aSAndroid Build Coastguard Worker generate_with_plugin = false 82*6dbdd20aSAndroid Build Coastguard Worker } 83*6dbdd20aSAndroid Build Coastguard Worker 84*6dbdd20aSAndroid Build Coastguard Worker if (generate_with_plugin) { 85*6dbdd20aSAndroid Build Coastguard Worker if (defined(invoker.generator_plugin_suffix)) { 86*6dbdd20aSAndroid Build Coastguard Worker generator_plugin_suffixes = [ 87*6dbdd20aSAndroid Build Coastguard Worker "${invoker.generator_plugin_suffix}.h", 88*6dbdd20aSAndroid Build Coastguard Worker "${invoker.generator_plugin_suffix}.cc", 89*6dbdd20aSAndroid Build Coastguard Worker ] 90*6dbdd20aSAndroid Build Coastguard Worker } else { 91*6dbdd20aSAndroid Build Coastguard Worker generator_plugin_suffixes = invoker.generator_plugin_suffixes 92*6dbdd20aSAndroid Build Coastguard Worker } 93*6dbdd20aSAndroid Build Coastguard Worker } 94*6dbdd20aSAndroid Build Coastguard Worker 95*6dbdd20aSAndroid Build Coastguard Worker out_dir = "$root_gen_dir/" + proto_out_dir 96*6dbdd20aSAndroid Build Coastguard Worker rel_out_dir = rebase_path(out_dir, root_build_dir) 97*6dbdd20aSAndroid Build Coastguard Worker 98*6dbdd20aSAndroid Build Coastguard Worker # Prevent unused errors when generating descriptor only. 99*6dbdd20aSAndroid Build Coastguard Worker if (generate_descriptor != "") { 100*6dbdd20aSAndroid Build Coastguard Worker not_needed([ "rel_out_dir" ]) 101*6dbdd20aSAndroid Build Coastguard Worker } 102*6dbdd20aSAndroid Build Coastguard Worker 103*6dbdd20aSAndroid Build Coastguard Worker protos = rebase_path(proto_sources, proto_in_dir) 104*6dbdd20aSAndroid Build Coastguard Worker protogens = [] 105*6dbdd20aSAndroid Build Coastguard Worker 106*6dbdd20aSAndroid Build Coastguard Worker if (generate_descriptor != "") { 107*6dbdd20aSAndroid Build Coastguard Worker protogens += [ "$out_dir/${generate_descriptor}" ] 108*6dbdd20aSAndroid Build Coastguard Worker } 109*6dbdd20aSAndroid Build Coastguard Worker 110*6dbdd20aSAndroid Build Coastguard Worker foreach(proto, protos) { 111*6dbdd20aSAndroid Build Coastguard Worker proto_dir = get_path_info(proto, "dir") 112*6dbdd20aSAndroid Build Coastguard Worker proto_name = get_path_info(proto, "name") 113*6dbdd20aSAndroid Build Coastguard Worker proto_path = proto_dir + "/" + proto_name 114*6dbdd20aSAndroid Build Coastguard Worker 115*6dbdd20aSAndroid Build Coastguard Worker # Prevent unused errors when generating descriptor only. 116*6dbdd20aSAndroid Build Coastguard Worker if (generate_descriptor != "") { 117*6dbdd20aSAndroid Build Coastguard Worker not_needed([ "proto_path" ]) 118*6dbdd20aSAndroid Build Coastguard Worker } 119*6dbdd20aSAndroid Build Coastguard Worker 120*6dbdd20aSAndroid Build Coastguard Worker if (generate_cc) { 121*6dbdd20aSAndroid Build Coastguard Worker protogens += [ 122*6dbdd20aSAndroid Build Coastguard Worker "$out_dir/$proto_path.pb.h", 123*6dbdd20aSAndroid Build Coastguard Worker "$out_dir/$proto_path.pb.cc", 124*6dbdd20aSAndroid Build Coastguard Worker ] 125*6dbdd20aSAndroid Build Coastguard Worker } 126*6dbdd20aSAndroid Build Coastguard Worker if (generate_with_plugin) { 127*6dbdd20aSAndroid Build Coastguard Worker foreach(suffix, generator_plugin_suffixes) { 128*6dbdd20aSAndroid Build Coastguard Worker protogens += [ "$out_dir/${proto_path}${suffix}" ] 129*6dbdd20aSAndroid Build Coastguard Worker } 130*6dbdd20aSAndroid Build Coastguard Worker } 131*6dbdd20aSAndroid Build Coastguard Worker } 132*6dbdd20aSAndroid Build Coastguard Worker 133*6dbdd20aSAndroid Build Coastguard Worker config_name = "${target_name}_config" 134*6dbdd20aSAndroid Build Coastguard Worker if (generate_descriptor == "") { 135*6dbdd20aSAndroid Build Coastguard Worker action_name = "${target_name}_gen" 136*6dbdd20aSAndroid Build Coastguard Worker source_set_name = target_name 137*6dbdd20aSAndroid Build Coastguard Worker } else { 138*6dbdd20aSAndroid Build Coastguard Worker action_name = target_name 139*6dbdd20aSAndroid Build Coastguard Worker } 140*6dbdd20aSAndroid Build Coastguard Worker 141*6dbdd20aSAndroid Build Coastguard Worker config(config_name) { 142*6dbdd20aSAndroid Build Coastguard Worker include_dirs = [ out_dir ] 143*6dbdd20aSAndroid Build Coastguard Worker } 144*6dbdd20aSAndroid Build Coastguard Worker 145*6dbdd20aSAndroid Build Coastguard Worker # The XXX_gen action that generates the .pb.{cc,h} files. 146*6dbdd20aSAndroid Build Coastguard Worker action(action_name) { 147*6dbdd20aSAndroid Build Coastguard Worker if (generate_descriptor == "") { 148*6dbdd20aSAndroid Build Coastguard Worker visibility = [ ":$source_set_name" ] 149*6dbdd20aSAndroid Build Coastguard Worker } 150*6dbdd20aSAndroid Build Coastguard Worker sources = proto_sources 151*6dbdd20aSAndroid Build Coastguard Worker outputs = get_path_info(protogens, "abspath") 152*6dbdd20aSAndroid Build Coastguard Worker 153*6dbdd20aSAndroid Build Coastguard Worker if (perfetto_use_system_protobuf) { 154*6dbdd20aSAndroid Build Coastguard Worker protoc_rebased_path = "protoc" + _host_executable_suffix # from PATH 155*6dbdd20aSAndroid Build Coastguard Worker } else { 156*6dbdd20aSAndroid Build Coastguard Worker protoc_label = "//gn:protoc($host_toolchain)" 157*6dbdd20aSAndroid Build Coastguard Worker protoc_path = get_label_info(protoc_label, "root_out_dir") + "/protoc" + 158*6dbdd20aSAndroid Build Coastguard Worker _host_executable_suffix 159*6dbdd20aSAndroid Build Coastguard Worker protoc_rebased_path = "./" + rebase_path(protoc_path, root_build_dir) 160*6dbdd20aSAndroid Build Coastguard Worker } 161*6dbdd20aSAndroid Build Coastguard Worker script = "//gn/standalone/protoc.py" 162*6dbdd20aSAndroid Build Coastguard Worker args = [ 163*6dbdd20aSAndroid Build Coastguard Worker # Path should be rebased because |root_build_dir| for current toolchain 164*6dbdd20aSAndroid Build Coastguard Worker # may be different from |root_out_dir| of protoc built on host toolchain. 165*6dbdd20aSAndroid Build Coastguard Worker protoc_rebased_path, 166*6dbdd20aSAndroid Build Coastguard Worker "--proto_path", 167*6dbdd20aSAndroid Build Coastguard Worker rebase_path(proto_in_dir, root_build_dir), 168*6dbdd20aSAndroid Build Coastguard Worker ] 169*6dbdd20aSAndroid Build Coastguard Worker 170*6dbdd20aSAndroid Build Coastguard Worker foreach(path, import_dirs) { 171*6dbdd20aSAndroid Build Coastguard Worker args += [ 172*6dbdd20aSAndroid Build Coastguard Worker "--proto_path", 173*6dbdd20aSAndroid Build Coastguard Worker rebase_path(path, root_build_dir), 174*6dbdd20aSAndroid Build Coastguard Worker ] 175*6dbdd20aSAndroid Build Coastguard Worker } 176*6dbdd20aSAndroid Build Coastguard Worker 177*6dbdd20aSAndroid Build Coastguard Worker metadata = { 178*6dbdd20aSAndroid Build Coastguard Worker proto_import_dirs = import_dirs 179*6dbdd20aSAndroid Build Coastguard Worker } 180*6dbdd20aSAndroid Build Coastguard Worker 181*6dbdd20aSAndroid Build Coastguard Worker if (generate_cc) { 182*6dbdd20aSAndroid Build Coastguard Worker cc_generator_options_ = "" 183*6dbdd20aSAndroid Build Coastguard Worker if (defined(invoker.cc_generator_options)) { 184*6dbdd20aSAndroid Build Coastguard Worker cc_generator_options_ = invoker.cc_generator_options 185*6dbdd20aSAndroid Build Coastguard Worker } 186*6dbdd20aSAndroid Build Coastguard Worker args += [ 187*6dbdd20aSAndroid Build Coastguard Worker "--cpp_out", 188*6dbdd20aSAndroid Build Coastguard Worker cc_generator_options_ + rel_out_dir, 189*6dbdd20aSAndroid Build Coastguard Worker ] 190*6dbdd20aSAndroid Build Coastguard Worker } 191*6dbdd20aSAndroid Build Coastguard Worker if (generate_descriptor != "") { 192*6dbdd20aSAndroid Build Coastguard Worker depfile = "$root_gen_dir/$generate_descriptor.d" 193*6dbdd20aSAndroid Build Coastguard Worker 194*6dbdd20aSAndroid Build Coastguard Worker if (!exclude_imports) { 195*6dbdd20aSAndroid Build Coastguard Worker args += [ "--include_imports" ] 196*6dbdd20aSAndroid Build Coastguard Worker } 197*6dbdd20aSAndroid Build Coastguard Worker args += [ 198*6dbdd20aSAndroid Build Coastguard Worker "--descriptor_set_out", 199*6dbdd20aSAndroid Build Coastguard Worker rebase_path("$root_gen_dir/$generate_descriptor", root_build_dir), 200*6dbdd20aSAndroid Build Coastguard Worker "--dependency_out", 201*6dbdd20aSAndroid Build Coastguard Worker rebase_path(depfile, root_build_dir), 202*6dbdd20aSAndroid Build Coastguard Worker ] 203*6dbdd20aSAndroid Build Coastguard Worker } 204*6dbdd20aSAndroid Build Coastguard Worker 205*6dbdd20aSAndroid Build Coastguard Worker if (generate_with_plugin) { 206*6dbdd20aSAndroid Build Coastguard Worker plugin_path_rebased = rebase_path(plugin_path, root_build_dir) 207*6dbdd20aSAndroid Build Coastguard Worker plugin_out_args = "" 208*6dbdd20aSAndroid Build Coastguard Worker if (defined(invoker.generator_plugin_options)) { 209*6dbdd20aSAndroid Build Coastguard Worker plugin_out_args += invoker.generator_plugin_options 210*6dbdd20aSAndroid Build Coastguard Worker } 211*6dbdd20aSAndroid Build Coastguard Worker plugin_out_args += ":$rel_out_dir" 212*6dbdd20aSAndroid Build Coastguard Worker 213*6dbdd20aSAndroid Build Coastguard Worker args += [ 214*6dbdd20aSAndroid Build Coastguard Worker "--plugin=protoc-gen-plugin=$plugin_path_rebased", 215*6dbdd20aSAndroid Build Coastguard Worker "--plugin_out=$plugin_out_args", 216*6dbdd20aSAndroid Build Coastguard Worker ] 217*6dbdd20aSAndroid Build Coastguard Worker } 218*6dbdd20aSAndroid Build Coastguard Worker 219*6dbdd20aSAndroid Build Coastguard Worker args += rebase_path(proto_sources, root_build_dir) 220*6dbdd20aSAndroid Build Coastguard Worker 221*6dbdd20aSAndroid Build Coastguard Worker if (!perfetto_use_system_protobuf) { 222*6dbdd20aSAndroid Build Coastguard Worker inputs = [ protoc_path ] 223*6dbdd20aSAndroid Build Coastguard Worker deps = [ protoc_label ] 224*6dbdd20aSAndroid Build Coastguard Worker } else { 225*6dbdd20aSAndroid Build Coastguard Worker inputs = [] 226*6dbdd20aSAndroid Build Coastguard Worker deps = [] 227*6dbdd20aSAndroid Build Coastguard Worker } 228*6dbdd20aSAndroid Build Coastguard Worker 229*6dbdd20aSAndroid Build Coastguard Worker if (generate_with_plugin) { 230*6dbdd20aSAndroid Build Coastguard Worker inputs += [ plugin_path ] 231*6dbdd20aSAndroid Build Coastguard Worker if (defined(plugin_host_label)) { 232*6dbdd20aSAndroid Build Coastguard Worker # Action depends on native generator plugin but for host toolchain only. 233*6dbdd20aSAndroid Build Coastguard Worker deps += [ plugin_host_label ] 234*6dbdd20aSAndroid Build Coastguard Worker } 235*6dbdd20aSAndroid Build Coastguard Worker } 236*6dbdd20aSAndroid Build Coastguard Worker 237*6dbdd20aSAndroid Build Coastguard Worker if (generate_descriptor != "") { 238*6dbdd20aSAndroid Build Coastguard Worker deps += invoker.deps 239*6dbdd20aSAndroid Build Coastguard Worker } 240*6dbdd20aSAndroid Build Coastguard Worker if (defined(invoker.link_deps)) { 241*6dbdd20aSAndroid Build Coastguard Worker deps += invoker.link_deps 242*6dbdd20aSAndroid Build Coastguard Worker } 243*6dbdd20aSAndroid Build Coastguard Worker } # action(action_name) 244*6dbdd20aSAndroid Build Coastguard Worker 245*6dbdd20aSAndroid Build Coastguard Worker # The source_set that builds the generated .pb.cc files. 246*6dbdd20aSAndroid Build Coastguard Worker if (generate_descriptor == "") { 247*6dbdd20aSAndroid Build Coastguard Worker source_set(source_set_name) { 248*6dbdd20aSAndroid Build Coastguard Worker forward_variables_from(invoker, 249*6dbdd20aSAndroid Build Coastguard Worker [ 250*6dbdd20aSAndroid Build Coastguard Worker "defines", 251*6dbdd20aSAndroid Build Coastguard Worker "include_dirs", 252*6dbdd20aSAndroid Build Coastguard Worker "public_configs", 253*6dbdd20aSAndroid Build Coastguard Worker "testonly", 254*6dbdd20aSAndroid Build Coastguard Worker "visibility", 255*6dbdd20aSAndroid Build Coastguard Worker ]) 256*6dbdd20aSAndroid Build Coastguard Worker 257*6dbdd20aSAndroid Build Coastguard Worker sources = get_target_outputs(":$action_name") 258*6dbdd20aSAndroid Build Coastguard Worker 259*6dbdd20aSAndroid Build Coastguard Worker configs -= [ "//gn/standalone:extra_warnings" ] 260*6dbdd20aSAndroid Build Coastguard Worker if (defined(invoker.extra_configs)) { 261*6dbdd20aSAndroid Build Coastguard Worker configs += invoker.extra_configs 262*6dbdd20aSAndroid Build Coastguard Worker } 263*6dbdd20aSAndroid Build Coastguard Worker 264*6dbdd20aSAndroid Build Coastguard Worker if (!defined(invoker.public_configs)) { 265*6dbdd20aSAndroid Build Coastguard Worker public_configs = [] 266*6dbdd20aSAndroid Build Coastguard Worker } 267*6dbdd20aSAndroid Build Coastguard Worker 268*6dbdd20aSAndroid Build Coastguard Worker public_configs += [ ":$config_name" ] 269*6dbdd20aSAndroid Build Coastguard Worker 270*6dbdd20aSAndroid Build Coastguard Worker # Only include the protobuf_gen_config when generating .pb.cc files. 271*6dbdd20aSAndroid Build Coastguard Worker # Note that |generate_cc| is false for .{pbzero,ipc,gen etc.}.cc 272*6dbdd20aSAndroid Build Coastguard Worker if (generate_cc) { 273*6dbdd20aSAndroid Build Coastguard Worker public_configs += [ "//gn:protobuf_gen_config" ] 274*6dbdd20aSAndroid Build Coastguard Worker } 275*6dbdd20aSAndroid Build Coastguard Worker 276*6dbdd20aSAndroid Build Coastguard Worker # By default, propagate the config for |include_dirs| to dependent 277*6dbdd20aSAndroid Build Coastguard Worker # targets, so that public imports can be resolved to corresponding header 278*6dbdd20aSAndroid Build Coastguard Worker # files. In some cases, the embedder target handles include directory 279*6dbdd20aSAndroid Build Coastguard Worker # propagation itself, e.g. via a common config. 280*6dbdd20aSAndroid Build Coastguard Worker propagate_imports_configs = !defined(invoker.propagate_imports_configs) || 281*6dbdd20aSAndroid Build Coastguard Worker invoker.propagate_imports_configs 282*6dbdd20aSAndroid Build Coastguard Worker if (propagate_imports_configs) { 283*6dbdd20aSAndroid Build Coastguard Worker public_configs += [ ":$config_name" ] 284*6dbdd20aSAndroid Build Coastguard Worker } else { 285*6dbdd20aSAndroid Build Coastguard Worker configs += [ ":$config_name" ] 286*6dbdd20aSAndroid Build Coastguard Worker } 287*6dbdd20aSAndroid Build Coastguard Worker 288*6dbdd20aSAndroid Build Coastguard Worker # Use protobuf_full only for tests. 289*6dbdd20aSAndroid Build Coastguard Worker if (defined(invoker.use_protobuf_full) && 290*6dbdd20aSAndroid Build Coastguard Worker invoker.use_protobuf_full == true) { 291*6dbdd20aSAndroid Build Coastguard Worker deps = [ "//gn:protobuf_full" ] 292*6dbdd20aSAndroid Build Coastguard Worker } else if (generate_cc) { 293*6dbdd20aSAndroid Build Coastguard Worker deps = [ "//gn:protobuf_lite" ] 294*6dbdd20aSAndroid Build Coastguard Worker } else { 295*6dbdd20aSAndroid Build Coastguard Worker deps = [] 296*6dbdd20aSAndroid Build Coastguard Worker } 297*6dbdd20aSAndroid Build Coastguard Worker 298*6dbdd20aSAndroid Build Coastguard Worker deps += [ ":$action_name" ] 299*6dbdd20aSAndroid Build Coastguard Worker if (defined(invoker.deps)) { 300*6dbdd20aSAndroid Build Coastguard Worker deps += invoker.deps 301*6dbdd20aSAndroid Build Coastguard Worker } 302*6dbdd20aSAndroid Build Coastguard Worker if (defined(invoker.link_deps)) { 303*6dbdd20aSAndroid Build Coastguard Worker deps += invoker.link_deps 304*6dbdd20aSAndroid Build Coastguard Worker } 305*6dbdd20aSAndroid Build Coastguard Worker } # source_set(source_set_name) 306*6dbdd20aSAndroid Build Coastguard Worker } 307*6dbdd20aSAndroid Build Coastguard Worker} # template 308