# Copyright 2014 Google Inc. All rights reserved. { 'variables': { 'cc_dir': '<(SHARED_INTERMEDIATE_DIR)/protoc_out/<(proto_out_dir)', 'proto_in_dir%': '.', }, 'conditions': [ ['use_system_protobuf=="false"', { 'variables': { 'protoc_dir': '<(PRODUCT_DIR)', }, 'dependencies': [ '<(protobuf_gyp):protoc#host', '<(protobuf_gyp):protobuf_lite', ], 'export_dependent_settings': [ # Direct dependents of protobuf_lite have the correct protobuf include # path, so export this as a dep to anyone who depends on the sources # generated by this target. '<(protobuf_gyp):protobuf_lite', ], }], ], 'rules': [ { 'rule_name': 'genproto', 'extension': 'proto', 'outputs': [ '<(cc_dir)/<(RULE_INPUT_ROOT).pb.cc', '<(cc_dir)/<(RULE_INPUT_ROOT).pb.h', ], 'action': [ '<(protoc_dir)/protoc', '--proto_path=<(proto_in_dir)', # Naively you'd use <(RULE_INPUT_PATH) here, but protoc requires # --proto_path is a strict prefix of the path given as an argument. '<(proto_in_dir)/<(RULE_INPUT_ROOT)<(RULE_INPUT_EXT)', '--cpp_out=<(cc_dir)', ], 'message': 'Generating C++ code from <(RULE_INPUT_PATH) ccdir=<(cc_dir)', 'process_outputs_as_sources': 1, }, ], 'include_dirs': [ '<(SHARED_INTERMEDIATE_DIR)/protoc_out', '<(proto_out_dir)', ], 'direct_dependent_settings': { 'include_dirs': [ '<(SHARED_INTERMEDIATE_DIR)/protoc_out', '<(cc_dir)', ] }, # This target exports a hard dependency because it generates header # files. 'hard_dependency': 1, }