diff options
author | kushi.p@gmail.com <kushi.p@gmail.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-28 05:17:48 +0000 |
---|---|---|
committer | kushi.p@gmail.com <kushi.p@gmail.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-28 05:17:48 +0000 |
commit | 3eda89f734a06b1de1d85d615b8ace04341c4ad2 (patch) | |
tree | 867f2eb1f08048b93f7f665074b9f41e55d1ac1b /third_party | |
parent | da1a469fe3a4b506df79ab57eb7670048905cadd (diff) | |
download | chromium_src-3eda89f734a06b1de1d85d615b8ace04341c4ad2.zip chromium_src-3eda89f734a06b1de1d85d615b8ace04341c4ad2.tar.gz chromium_src-3eda89f734a06b1de1d85d615b8ace04341c4ad2.tar.bz2 |
Remove hand-rolled protobufs generation; enable rel paths in protoc.gypi
protoc.gypi now accepts a relative path to handle the way that
protoc_out_dir is applied to build the generated path.
Remove the 'cacheinvalidation_proto_cpp' target and instead generate a
static_library to begin with. Simplify all steps by removing the actions
and including the protoc.gypi file.
BUG=113339
Review URL: http://codereview.chromium.org/9378041
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@123894 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'third_party')
-rw-r--r-- | third_party/cacheinvalidation/cacheinvalidation.gyp | 86 |
1 files changed, 14 insertions, 72 deletions
diff --git a/third_party/cacheinvalidation/cacheinvalidation.gyp b/third_party/cacheinvalidation/cacheinvalidation.gyp index dce6f6e..061c4cc 100644 --- a/third_party/cacheinvalidation/cacheinvalidation.gyp +++ b/third_party/cacheinvalidation/cacheinvalidation.gyp @@ -15,17 +15,13 @@ # we don't need this variable. # TODO(ghc): Remove v2/ dir and move all files up a level. 'proto_dir_relpath': 'google/cacheinvalidation/v2', - # Where files generated from proto files are put. - 'protoc_out_dir': '<(SHARED_INTERMEDIATE_DIR)/protoc_out', - # The path to the protoc executable. - 'protoc': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)protoc<(EXECUTABLE_SUFFIX)', }, 'targets': [ # The rule/action to generate files from the cacheinvalidation proto - # files. + # files and package them into a static library. { 'target_name': 'cacheinvalidation_proto', - 'type': 'none', + 'type': 'static_library', 'sources': [ '<(proto_dir_root)/<(proto_dir_relpath)/client.proto', '<(proto_dir_root)/<(proto_dir_relpath)/client_gateway.proto', @@ -33,68 +29,18 @@ '<(proto_dir_root)/<(proto_dir_relpath)/client_test_internal.proto', '<(proto_dir_root)/<(proto_dir_relpath)/types.proto', ], - # TODO(akalin): This block was copied from the sync_proto target - # from chrome.gyp. Decomp the shared blocks out somehow. - 'rules': [ - { - 'rule_name': 'genproto', - 'extension': 'proto', - 'inputs': [ - '<(protoc)', - ], - 'outputs': [ - '<(protoc_out_dir)/<(proto_dir_relpath)/<(RULE_INPUT_ROOT).pb.h', - '<(protoc_out_dir)/<(proto_dir_relpath)/<(RULE_INPUT_ROOT).pb.cc', - ], - 'action': [ - '<(protoc)', - '--proto_path=<(proto_dir_root)', - # This path needs to be prefixed by proto_path, so we can't - # use RULE_INPUT_PATH (which is an absolute path). - '<(proto_dir_root)/<(proto_dir_relpath)/<(RULE_INPUT_NAME)', - '--cpp_out=<(protoc_out_dir)', - ], - 'message': 'Generating C++ code from <(RULE_INPUT_PATH)', - }, - ], - 'dependencies': [ - '../../third_party/protobuf/protobuf.gyp:protoc#host', - ], - }, - # The C++ files generated from the cache invalidation protocol buffers. - { - 'target_name': 'cacheinvalidation_proto_cpp', - 'type': 'static_library', - 'sources': [ - '<(protoc_out_dir)/<(proto_dir_relpath)/client.pb.h', - '<(protoc_out_dir)/<(proto_dir_relpath)/client.pb.cc', - '<(protoc_out_dir)/<(proto_dir_relpath)/client_gateway.pb.h', - '<(protoc_out_dir)/<(proto_dir_relpath)/client_gateway.pb.cc', - '<(protoc_out_dir)/<(proto_dir_relpath)/client_protocol.pb.h', - '<(protoc_out_dir)/<(proto_dir_relpath)/client_protocol.pb.cc', - '<(protoc_out_dir)/<(proto_dir_relpath)/client_test_internal.pb.h', - '<(protoc_out_dir)/<(proto_dir_relpath)/client_test_internal.pb.cc', - '<(protoc_out_dir)/<(proto_dir_relpath)/types.pb.h', - '<(protoc_out_dir)/<(proto_dir_relpath)/types.pb.cc', - ], - 'dependencies': [ - '../../third_party/protobuf/protobuf.gyp:protobuf_lite', - 'cacheinvalidation_proto', - ], - 'include_dirs': [ - '<(protoc_out_dir)', - ], - 'direct_dependent_settings': { - 'include_dirs': [ - '<(protoc_out_dir)', - ], + 'variables': { + 'proto_in_dir': '<(proto_dir_root)', + 'proto_out_dir': '', + 'proto_relpath': '<(proto_dir_relpath)/', + # This is necessary because these protos import with + # qualified paths, such as: + # #import "google/cacheinvalidation/v2/client_protocol.proto" + # rather than the more common form of: + # #import "client_protocol.proto" + # NOTE: The trailing slash is required, see build/protoc.gypi }, - 'export_dependent_settings': [ - '../../third_party/protobuf/protobuf.gyp:protobuf_lite', - ], - # This target exports a hard dependency because it contains generated - # header files. - 'hard_dependency': 1, + 'includes': [ '../../build/protoc.gypi' ], }, # The main cache invalidation library. External clients should depend # only on this. @@ -170,11 +116,7 @@ 'dependencies': [ '../../base/base.gyp:base', 'cacheinvalidation_proto', - 'cacheinvalidation_proto_cpp', ], - # This target exports a hard dependency because its include files - # include generated header files from cache_invalidation_proto_cpp. - 'hard_dependency': 1, 'direct_dependent_settings': { 'include_dirs': [ './overrides', @@ -183,7 +125,7 @@ }, 'export_dependent_settings': [ '../../base/base.gyp:base', - 'cacheinvalidation_proto_cpp', + 'cacheinvalidation_proto', ], }, # Unittests for the cache invalidation library. |