Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(122)

Side by Side Diff: third_party/protobuf/README.chromium

Issue 1842653006: Update //third_party/protobuf to version 3. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: merge Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « third_party/protobuf/Protobuf.podspec ('k') | third_party/protobuf/README.md » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 Name: Protocol Buffers 1 Name: Protocol Buffers
2 Short Name: protobuf 2 Short Name: protobuf
3 URL: http://protobuf.googlecode.com/svn/trunk 3 URL: https://github.com/google/protobuf
4 License: BSD 4 License: BSD
5 License File: COPYING.txt 5 License File: LICENSE
6 Version: unknown 6 Version: 3.0.0-beta-2
7 Revision: r476 7 Revision: d5fb408ddc281ffcadeb08699e65bb694656d0bd
8 Security Critical: yes 8 Security Critical: yes
9 9
10 Local files (not taken from upstream): 10 Steps used to create the current version:
11 README.chromium 11 1. Pull the release from https://github.com/google/protobuf/releases
12 config.h 12 2. Use the cleanup_release.sh script to remove unnecessary files.
13 descriptor2_pb.py 13 3. Add build files (BUILD.gn, proto_library.gni, protobuf.gyp,
14 protobuf_lite.gypi, protobuf_nacl.gyp).
14 15
15 A protobuf.gyp file has been added for building with Chromium. 16 Be sure to update the list of source files, as additional .cc files and
17 headers might have been added -- you need to find the transitive closure of
18 include files required by targets.
16 19
17 This code has been patched to support unknown field retention in protobuf-lite. 20 Other things to care about are defines required by protobuf on various
18 See r62331 for the patch. 21 platforms, warnings generated by compilers, and new dependencies introduced.
22 4. Get open-source library six.py from https://pypi.python.org/pypi/six/ and add
23 it to protobuf/third_party/six/six.py.
24 5. Apply patches in patches/ (see the description below):
19 25
20 This code has been patched to ensure that files in the target protobuf_lite 26 $ for patch in patches/*; do patch -s -p1 < $patch; done
21 do not include headers from protobuf_full. See r173228 for the patch.
22 27
23 This code has been patched to make the target protobuf_lite a component so that 28 For future releases, it will be worth looking into which patches still need
24 targets that depend on it can be componentized. See http://crbug.com/172800 for 29 to be applied.
25 details, and r179806 for the patch. 30 5. Generate descriptor_pb2.py using something like the following steps. Make
31 sure you've regenerated your buildfiles and will build protoc from the
32 newly-modified sources above.
26 33
27 Revision 504 was cherry-picked from upstream. 34 $ cd $SRC_DIR
28 Revision 512 was cherry-picked from upstream. 35 $ ninja -C out/Debug protoc
29 Revision 516 was cherry-picked from upstream. 36 $ cd third_party/protobuf/src
30 Revision 517 was cherry-picked from upstream. 37 $ ../../../out/Debug/protoc --python_out=../python google/protobuf/descriptor .proto
31 Revision 522 was cherry-picked from upstream.
32 Revision 523 was cherry-picked from upstream.
33 Revision 524 was cherry-picked from upstream.
34 Revision 573 was cherry-picked from upstream.
35 The `&file->options() != NULL &&` was removed from descriptor.cc
36 References to `vector` were changed to `std::vector` in extension_set.h
37 and unknown_field_set.h
38 38
39 GetEmptyString() and GoogleOnceInit() have been uninlined, for a large savings 39 6. Add an __init__.py to protobuf/ that adds third_party/six/ to Python path.
40 in binary size. 40 7. Update README.chromium.
41 41
42 A BUILD.gn file has been added for building with GN. 42 Description of the patches:
43 43
44 Cherry-pick pherl changes to make protobuf build on VS2015. 44 - 0001-ignore-option-retain-unknown-fields.patch
45 45
46 Cherry-pick c3cb53b (fix "sometimes-uninitialized" warning). 46 Previous versions of protobuf in Chromium carried a local patch that retained
47 unknown fields in protobuf_lite mode. It was enabled by setting option
48 retain_unknown_fields = true in .proto file. Now that it is enabled by
49 default, this option is no longer recognized by protobuf, and so I had to
50 patch it so that I don't have to fix all .proto files in Chromium in a single
51 CL.
47 52
48 Cherry-pick https://github.com/google/protobuf/commit/56a90a2081379a5 53 I plan to remove those occurences, and then this patch will no longer be
54 necessary.
49 55
50 Cherry-pick https://github.com/google/protobuf/commit/69d660b39ceabea 56 - 0003-remove-static-initializers.patch
51 57
52 Cherry-pick https://github.com/google/protobuf/commit/a74e912a8be1274 58 This patch removes all static initializers from Chromium. The change in Status
59 class is not completely compatible with upstream, but it's compatible enough
60 to work in Chromium, which doesn't use this functionality yet. The work on
61 upstreaming the removal of static initializers is in progress:
62 https://github.com/google/protobuf/issues/1404
63
64 - 0004-fix-integer-types-and-shared-library-exports.patch
65
66 This patch makes protobuf int64 to be int64_t (as opposed to long long in
67 upstream), and similarly for other integer types. It also allows exporting
68 protobuf symbols in Linux .so libraries, so that protobuf can be built as a
69 component (see http://crrev.com/179806).
70
71 - 0005-fix-no-threadlocal-on-mac.patch
72
73 Apple's Clang doesn't support thread-local variables on Mac.
74
75 - 0006-fix-clang-type-errors.patch
76
77 New versions of Clang have type checking semantics that check the conformance
78 with the C++ standard more thorougly, which makes them a bit more
79 restrictive. This cherry-picks upstream commits
80 3cc35adb6dca9057a790d253b9f5e2b9b000a106 and
81 58f07644eab25f68973ecab4bdc43fc318c26131.
82
83 - 0007-uninline_googleonce.patch
84 - 0008-uninline_get_empty_string.patch
85 - 0009-uninline-arenastring.patch
86 - 0010-uninline-generated-code.patch
87
88 These patches uninline some functions, resulting in a significant reduction
89 (somewhere between 500 KB and 1 MB) of binary size.
OLDNEW
« no previous file with comments | « third_party/protobuf/Protobuf.podspec ('k') | third_party/protobuf/README.md » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698