OLD | NEW |
1 # Copyright 2014 The Chromium Authors. All rights reserved. | 1 # Copyright 2014 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 # Compile a protocol buffer. | 5 # Compile a protocol buffer. |
6 # | 6 # |
7 # Protobuf parameters: | 7 # Protobuf parameters: |
8 # | 8 # |
9 # proto_out_dir (optional) | 9 # proto_out_dir (optional) |
10 # Specifies the path suffix that output files are generated under. This | 10 # Specifies the path suffix that output files are generated under. This |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
77 } | 77 } |
78 | 78 |
79 outputs = [ | 79 outputs = [ |
80 "$out_dir/{{source_name_part}}_pb2.py", | 80 "$out_dir/{{source_name_part}}_pb2.py", |
81 "$out_dir/{{source_name_part}}.pb.cc", | 81 "$out_dir/{{source_name_part}}.pb.cc", |
82 "$out_dir/{{source_name_part}}.pb.h", | 82 "$out_dir/{{source_name_part}}.pb.h", |
83 ] | 83 ] |
84 | 84 |
85 args = [] | 85 args = [] |
86 if (defined(invoker.cc_include)) { | 86 if (defined(invoker.cc_include)) { |
87 args += [ "--include", invoker.cc_include ] | 87 args += [ |
| 88 "--include", |
| 89 invoker.cc_include, |
| 90 ] |
88 } | 91 } |
89 | 92 |
90 args += [ | 93 args += [ |
91 "--protobuf", "$rel_out_dir/{{source_name_part}}.pb.h", | 94 "--protobuf", |
92 "--proto-in-dir", "{{source_dir}}", | 95 "$rel_out_dir/{{source_name_part}}.pb.h", |
93 "--proto-in-file", "{{source_file_part}}", | 96 "--proto-in-dir", |
| 97 "{{source_dir}}", |
| 98 "--proto-in-file", |
| 99 "{{source_file_part}}", |
| 100 |
94 # TODO(brettw) support system protobuf compiler. | 101 # TODO(brettw) support system protobuf compiler. |
95 "--use-system-protobuf=0", | 102 "--use-system-protobuf=0", |
96 ] | 103 ] |
97 | 104 |
98 protoc_label = "//third_party/protobuf:protoc($host_toolchain)" | 105 protoc_label = "//third_party/protobuf:protoc($host_toolchain)" |
99 args += [ | 106 args += [ |
100 "--", | 107 "--", |
| 108 |
101 # Prepend with "./" so this will never pick up the system one (normally | 109 # Prepend with "./" so this will never pick up the system one (normally |
102 # when not cross-compiling, protoc's output directory will be the same | 110 # when not cross-compiling, protoc's output directory will be the same |
103 # as the build dir, so the relative location will be empty). | 111 # as the build dir, so the relative location will be empty). |
104 "./" + rebase_path(get_label_info(protoc_label, "root_out_dir") + | 112 "./" + |
105 "/protoc", root_build_dir), | 113 rebase_path(get_label_info(protoc_label, "root_out_dir") + "/protoc", |
| 114 root_build_dir), |
106 ] | 115 ] |
107 | 116 |
108 # If passed cc_generator_options should end in a colon, which will separate | 117 # If passed cc_generator_options should end in a colon, which will separate |
109 # it from the directory when we concatenate them. The proto compiler | 118 # it from the directory when we concatenate them. The proto compiler |
110 # understands this syntax. | 119 # understands this syntax. |
111 if (defined(invoker.cc_generator_options)) { | 120 if (defined(invoker.cc_generator_options)) { |
112 cc_generator_options = invoker.cc_generator_options | 121 cc_generator_options = invoker.cc_generator_options |
113 } else { | 122 } else { |
114 cc_generator_options = "" | 123 cc_generator_options = "" |
115 } | 124 } |
116 args += [ | 125 args += [ |
117 # cc_generator_options is supposed to end in a colon if it's nonempty. | 126 # cc_generator_options is supposed to end in a colon if it's nonempty. |
118 "--cpp_out", "$cc_generator_options$rel_out_dir", | 127 "--cpp_out", |
119 "--python_out", rel_out_dir, | 128 "$cc_generator_options$rel_out_dir", |
| 129 "--python_out", |
| 130 rel_out_dir, |
120 ] | 131 ] |
121 | 132 |
122 deps = [ protoc_label ] | 133 deps = [ |
| 134 protoc_label, |
| 135 ] |
123 | 136 |
124 if (defined(invoker.deps)) { | 137 if (defined(invoker.deps)) { |
125 deps += invoker.deps | 138 deps += invoker.deps |
126 } | 139 } |
127 } | 140 } |
128 | 141 |
129 source_set(target_name) { | 142 source_set(target_name) { |
130 if (defined(invoker.visibility)) { | 143 if (defined(invoker.visibility)) { |
131 visibility = invoker.visibility | 144 visibility = invoker.visibility |
132 } | 145 } |
(...skipping 12 matching lines...) Expand all Loading... |
145 public_deps = [ | 158 public_deps = [ |
146 # The generated headers reference headers within protobuf_lite, so | 159 # The generated headers reference headers within protobuf_lite, so |
147 # dependencies must be able to find those headers too. | 160 # dependencies must be able to find those headers too. |
148 "//third_party/protobuf:protobuf_lite", | 161 "//third_party/protobuf:protobuf_lite", |
149 ] | 162 ] |
150 deps = [ | 163 deps = [ |
151 ":$action_name", | 164 ":$action_name", |
152 ] | 165 ] |
153 } | 166 } |
154 } | 167 } |
OLD | NEW |