# Copyright 2015 Google Inc. All rights reserved. { 'variables': { 'cc_dir': '<(SHARED_INTERMEDIATE_DIR)/protoc_out', 'proto_in_dir%': '.', }, 'conditions': [ ['protobuf_config=="system"', { # protobuf_lib is a library setting. 'direct_dependent_settings': { 'libraries': [ '<(protobuf_lib)', ], }, }], ['protobuf_config=="target"', { # protobuf_lib is a gyp target. 'dependencies': [ '<(protobuf_lib_target)', '<(protoc_host_target)', ], 'export_dependent_settings': [ '<(protobuf_lib_target)', '<(protoc_host_target)', ], }], ['protobuf_config=="source"', { # protobuf_lib is a source folder. # We use the targets in protobuf.gypi. 'dependencies': [ 'protoc#host', 'protobuf_lite', ], 'export_dependent_settings': [ 'protobuf_lite', ], 'variables': { # Since we are building our own protoc, override protoc_bin. 'protoc_bin': '<(PRODUCT_DIR)/protoc', }, }], ], 'rules': [ { 'rule_name': 'genproto', 'extension': 'proto', 'outputs': [ '<(cc_dir)/<(RULE_INPUT_ROOT).pb.cc', '<(cc_dir)/<(RULE_INPUT_ROOT).pb.h', ], 'action': [ '<(protoc_bin)', '--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': [ '<(cc_dir)', ], 'direct_dependent_settings': { 'include_dirs': [ '<(cc_dir)', ] }, # This target exports a hard dependency because it generates header # files. 'hard_dependency': 1, }