Chromium Code Reviews| 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 config("protobuf_config") { | 5 config("protobuf_config") { |
| 6 include_dirs = [ "src" ] | 6 include_dirs = [ "src" ] |
| 7 defines = [ | 7 defines = [ |
| 8 "GOOGLE_PROTOBUF_NO_RTTI", | 8 "GOOGLE_PROTOBUF_NO_RTTI", |
| 9 "GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER", | 9 "GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER", |
| 10 ] | 10 ] |
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 129 "/wd4244", # implicit conversion, possible loss of data | 129 "/wd4244", # implicit conversion, possible loss of data |
| 130 "/wd4267", # size_t to int truncation | 130 "/wd4267", # size_t to int truncation |
| 131 "/wd4291", # no matching operator delete for a placement new. | 131 "/wd4291", # no matching operator delete for a placement new. |
| 132 "/wd4305", # double to float truncation | 132 "/wd4305", # double to float truncation |
| 133 "/wd4355", # 'this' used in base member initializer list | 133 "/wd4355", # 'this' used in base member initializer list |
| 134 "/wd4506", # no definition for inline function (protobuf issue #240) | 134 "/wd4506", # no definition for inline function (protobuf issue #240) |
| 135 "/wd4715", # not all control paths return a value (fixed in trunk) | 135 "/wd4715", # not all control paths return a value (fixed in trunk) |
| 136 ] | 136 ] |
| 137 } | 137 } |
| 138 | 138 |
| 139 component("protobuf_lite") { | 139 # Do not allow libprotobuf_lite to be dynamically linked on Linux. Later |
| 140 # versions of Ubuntu like Xenial and Yakkety link in the system | |
| 141 # libprotobuf_lite by the following dependency chain: chrome -> gtk -> | |
| 142 # libmirclient -> libmirprotobuf -> libprotobuf-lite. Trying to load | |
| 143 # the system libprotobuf-lite after already having loaded the libprotobuf_lite | |
| 144 # component will result in an immediate crash. (crbug.com/700120) | |
| 145 if (is_linux && !is_chromeos) { | |
| 146 link_target_type = "static_library" | |
| 147 } else { | |
| 148 link_target_type = "component" | |
| 149 } | |
| 150 | |
| 151 if (is_component_build && is_linux && !is_chromeos) { | |
|
Peter Kasting
2017/03/15 21:53:52
Nit: This deserves a comment about what it's doing
Tom (Use chromium acct)
2017/03/19 07:19:11
Done.
| |
| 152 component("protobuf_globals") { | |
| 153 configs += [ | |
| 154 ":protobuf_config", | |
| 155 ":protobuf_use_dlls", | |
| 156 ] | |
| 157 defines = [ "LIBPROTOBUF_EXPORTS" ] | |
| 158 sources = [ | |
| 159 "src/google/protobuf/globals.cc", | |
| 160 ] | |
| 161 } | |
| 162 } | |
| 163 | |
| 164 target(link_target_type, "protobuf_lite") { | |
| 140 sources = protobuf_lite_sources | 165 sources = protobuf_lite_sources |
| 141 | 166 |
| 142 configs -= [ "//build/config/compiler:chromium_code" ] | 167 configs -= [ "//build/config/compiler:chromium_code" ] |
| 143 configs += [ | 168 configs += [ |
| 144 "//build/config/compiler:no_chromium_code", | 169 "//build/config/compiler:no_chromium_code", |
| 145 | 170 |
| 146 # Must be after no_chromium_code for warning flags to be ordered | 171 # Must be after no_chromium_code for warning flags to be ordered |
| 147 # correctly. | 172 # correctly. |
| 148 ":protobuf_warnings", | 173 ":protobuf_warnings", |
| 149 ] | 174 ] |
| 150 | 175 |
| 151 if (is_win) { | 176 if (is_win) { |
| 152 configs -= [ "//build/config/win:lean_and_mean" ] | 177 configs -= [ "//build/config/win:lean_and_mean" ] |
| 153 } | 178 } |
| 154 | 179 |
| 155 public_configs = [ | 180 public_configs = [ |
| 156 ":protobuf_config", | 181 ":protobuf_config", |
| 157 | 182 |
| 158 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. | 183 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. |
| 159 "//build/config/compiler:no_size_t_to_int_warning", | 184 "//build/config/compiler:no_size_t_to_int_warning", |
| 160 ] | 185 ] |
| 161 | 186 |
| 162 deps = [ | 187 deps = [ |
| 163 "//build/config/sanitizers:deps", | 188 "//build/config/sanitizers:deps", |
| 164 ] | 189 ] |
| 165 | 190 |
| 166 cflags = protobuf_lite_cflags | 191 cflags = protobuf_lite_cflags |
| 167 | 192 |
| 193 if (is_component_build && is_linux && !is_chromeos) { | |
| 194 deps += [ ":protobuf_globals" ] | |
| 195 } else { | |
| 196 sources += [ "src/google/protobuf/globals.cc" ] | |
| 197 } | |
| 198 | |
| 168 # Required for component builds. See http://crbug.com/172800. | 199 # Required for component builds. See http://crbug.com/172800. |
| 169 if (is_component_build) { | 200 if (is_component_build && (!is_linux || is_chromeos)) { |
| 170 public_configs += [ ":protobuf_use_dlls" ] | 201 public_configs += [ ":protobuf_use_dlls" ] |
| 171 defines = [ "LIBPROTOBUF_EXPORTS" ] | 202 defines = [ "LIBPROTOBUF_EXPORTS" ] |
| 172 } | 203 } |
| 173 } | 204 } |
| 174 | 205 |
| 175 # This is the full, heavy protobuf lib that's needed for c++ .protos that don't | 206 # This is the full, heavy protobuf lib that's needed for c++ .protos that don't |
| 176 # specify the LITE_RUNTIME option. The protocol compiler itself (protoc) falls | 207 # specify the LITE_RUNTIME option. The protocol compiler itself (protoc) falls |
| 177 # into that category. Do not use in Chrome code. | 208 # into that category. Do not use in Chrome code. |
| 178 static_library("protobuf_full") { | 209 static_library("protobuf_full") { |
| 179 # Prevent people from depending on this outside our file. | 210 # Prevent people from depending on this outside our file. |
| (...skipping 28 matching lines...) Expand all Loading... | |
| 208 "src/google/protobuf/dynamic_message.h", | 239 "src/google/protobuf/dynamic_message.h", |
| 209 "src/google/protobuf/empty.pb.cc", | 240 "src/google/protobuf/empty.pb.cc", |
| 210 "src/google/protobuf/empty.pb.h", | 241 "src/google/protobuf/empty.pb.h", |
| 211 "src/google/protobuf/extension_set_heavy.cc", | 242 "src/google/protobuf/extension_set_heavy.cc", |
| 212 "src/google/protobuf/field_mask.pb.cc", | 243 "src/google/protobuf/field_mask.pb.cc", |
| 213 "src/google/protobuf/field_mask.pb.h", | 244 "src/google/protobuf/field_mask.pb.h", |
| 214 "src/google/protobuf/generated_enum_reflection.h", | 245 "src/google/protobuf/generated_enum_reflection.h", |
| 215 "src/google/protobuf/generated_enum_util.h", | 246 "src/google/protobuf/generated_enum_util.h", |
| 216 "src/google/protobuf/generated_message_reflection.cc", | 247 "src/google/protobuf/generated_message_reflection.cc", |
| 217 "src/google/protobuf/generated_message_reflection.h", | 248 "src/google/protobuf/generated_message_reflection.h", |
| 249 "src/google/protobuf/globals.cc", | |
| 218 | 250 |
| 219 # gzip_stream.cc pulls in zlib, but it's not actually used by protoc, just | 251 # gzip_stream.cc pulls in zlib, but it's not actually used by protoc, just |
| 220 # by test code, so instead of compiling zlib for the host, let's just | 252 # by test code, so instead of compiling zlib for the host, let's just |
| 221 # exclude this. | 253 # exclude this. |
| 222 # "src/google/protobuf/io/gzip_stream.cc", | 254 # "src/google/protobuf/io/gzip_stream.cc", |
| 223 # "src/google/protobuf/io/gzip_stream.h", | 255 # "src/google/protobuf/io/gzip_stream.h", |
| 224 | 256 |
| 225 "src/google/protobuf/io/printer.cc", | 257 "src/google/protobuf/io/printer.cc", |
| 226 "src/google/protobuf/io/printer.h", | 258 "src/google/protobuf/io/printer.h", |
| 227 "src/google/protobuf/io/strtod.cc", | 259 "src/google/protobuf/io/strtod.cc", |
| (...skipping 420 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 648 ":copy_google_protobuf_internal", | 680 ":copy_google_protobuf_internal", |
| 649 ":copy_six", | 681 ":copy_six", |
| 650 ] | 682 ] |
| 651 | 683 |
| 652 # Targets that depend on this should depend on the copied data files. | 684 # Targets that depend on this should depend on the copied data files. |
| 653 data = get_target_outputs(":copy_google") | 685 data = get_target_outputs(":copy_google") |
| 654 data += get_target_outputs(":copy_six") | 686 data += get_target_outputs(":copy_six") |
| 655 data += get_target_outputs(":copy_google_protobuf") | 687 data += get_target_outputs(":copy_google_protobuf") |
| 656 data += get_target_outputs(":copy_google_protobuf_internal") | 688 data += get_target_outputs(":copy_google_protobuf_internal") |
| 657 } | 689 } |
| OLD | NEW |