Merge branch v3.0.0-alpha-1 into master.

Conflicts:
	configure.ac
pull/130/head
Feng Xiao 10 years ago
commit 52909485d1
  1. 104
      CHANGES.txt
  2. 1
      Makefile.am
  3. 4
      configure.ac
  4. 4
      java/pom.xml
  5. 2
      java/src/main/java/com/google/protobuf/MapFieldLite.java
  6. 7
      java/src/test/java/com/google/protobuf/MapTest.java
  7. 5
      java/src/test/java/com/google/protobuf/UnknownFieldSetLiteTest.java
  8. 24
      post_process_dist.sh
  9. 2
      python/setup.py
  10. 8
      src/Makefile.am
  11. 21
      src/google/protobuf/arena.cc
  12. 11
      src/google/protobuf/arena.h
  13. 12
      src/google/protobuf/arena_unittest.cc
  14. 3
      src/google/protobuf/arenastring.h
  15. 2
      src/google/protobuf/compiler/cpp/cpp_message.cc
  16. 2
      src/google/protobuf/compiler/cpp/cpp_unittest.cc
  17. 4
      src/google/protobuf/compiler/plugin.pb.h
  18. 5
      src/google/protobuf/descriptor.cc
  19. 4
      src/google/protobuf/descriptor.pb.h
  20. 6
      src/google/protobuf/map.h
  21. 13
      src/google/protobuf/map_entry.h
  22. 27
      src/google/protobuf/map_field.cc
  23. 2
      src/google/protobuf/map_field.h
  24. 35
      src/google/protobuf/map_field_test.cc
  25. 2
      src/google/protobuf/map_test.cc
  26. 34
      src/google/protobuf/map_test_util.cc
  27. 1
      src/google/protobuf/message.h
  28. 2
      src/google/protobuf/preserve_unknown_enum_test.cc
  29. 13
      src/google/protobuf/repeated_field.h
  30. 4
      src/google/protobuf/repeated_field_reflection.h
  31. 5
      src/google/protobuf/repeated_field_reflection_unittest.cc
  32. 4
      src/google/protobuf/repeated_field_unittest.cc
  33. 16
      src/google/protobuf/stubs/common.h
  34. 1
      src/google/protobuf/stubs/fastmem.h
  35. 11
      src/google/protobuf/stubs/type_traits.h
  36. 2
      src/google/protobuf/stubs/type_traits_unittest.cc
  37. 2
      src/google/protobuf/unknown_field_set_unittest.cc
  38. 78
      vsprojects/extract_includes.bat
  39. 34
      vsprojects/libprotobuf-lite.vcproj
  40. 90
      vsprojects/libprotobuf.vcproj
  41. 88
      vsprojects/libprotoc.vcproj
  42. 4
      vsprojects/lite-test.vcproj
  43. 4
      vsprojects/protoc.vcproj
  44. 4
      vsprojects/test_plugin.vcproj
  45. 540
      vsprojects/tests.vcproj

@ -1,3 +1,107 @@
2014-12-01 version 3.0.0-alpha-1 (C++/Java):
General
* Introduced Protocol Buffers language version 3 (aka proto3).
When protobuf was initially opensourced it implemented Protocol Buffers
language version 2 (aka proto2), which is why the version number
started from v2.0.0. From v3.0.0, a new language version (proto3) is
introduced while the old version (proto2) will continue to be supported.
The main intent of introducing proto3 is to clean up protobuf before
pushing the language as the foundation of Google's new API platform.
In proto3, the language is simplified, both for ease of use and to
make it available in a wider range of programming languages. At the
same time a few features are added to better support common idioms
found in APIs.
The following are the main new features in language version 3:
1. Removal of field presence logic for primitive value fields, removal
of required fields, and removal of default values. This makes proto3
significantly easier to implement with open struct representations,
as in languages like Android Java, Objective C, or Go.
2. Removal of unknown fields.
3. Removal of extensions, which are instead replaced by a new standard
type called Any.
4. Fix semantics for unknown enum values.
5. Addition of maps.
6. Addition of a small set of standard types for representation of time,
dynamic data, etc.
7. A well-defined encoding in JSON as an alternative to binary proto
encoding.
This release (v3.0.0-alpha-1) includes partial proto3 support for C++ and
Java. Items 6 (well-known types) and 7 (JSON format) in the above feature
list are not impelmented.
A new notion "syntax" is introduced to specify whether a .proto file
uses proto2 or proto3:
// foo.proto
syntax = "proto3";
message Bar {...}
If omitted, the protocol compiler will generate a warning and "proto2" will
be used as the default. This warning will be turned into an error in a
future release.
We recommend that new Protocol Buffers users use proto3. However, we do not
generally recommend that existing users migrate from proto2 from proto3 due
to API incompatibility, and we will continue to support proto2 for a long
time.
* Added support for map fields (implemented in C++/Java for both proto2 and
proto3).
Map fields can be declared using the following syntax:
message Foo {
map<string, string> values = 1;
}
Data of a map field will be stored in memory as an unordered map and it
can be accessed through generated accessors.
C++
* Added arena allocation support (for both proto2 and proto3).
Profiling shows memory allocation and deallocation constitutes a significant
fraction of CPU-time spent in protobuf code and arena allocation is a
technique introduced to reduce this cost. With arena allocation, new
objects will be allocated from a large piece of preallocated memory and
deallocation of these objects is almost free. Early adoption shows 20% to
50% improvement in some Google binaries.
To enable arena support, add the following option to your .proto file:
option cc_enable_arenas = true;
Protocol compiler will generate additional code to make the generated
message classes work with arenas. This does not change the existing API
of protobuf messages and does not affect wire format. Your existing code
should continue to work after adding this option. In the future we will
make this option enabled by default.
To actually take advantage of arena allocation, you need to use the arena
APIs when creating messages. A quick example of using the arena API:
{
google::protobuf::Arena arena;
// Allocate a protobuf message in the arena.
MyMessage* message = Arena::CreateMessage<MyMessage>(&arena);
// All submessages will be allocated in the same arena.
if (!message->ParseFromString(data)) {
// Deal with malformed input data.
}
// Must not delete the message here. It will be deleted automatically
// when the arena is destroyed.
}
Currently arena does not work with map fields. Enabling arena in a .proto
file containing map fields will result in compile errors in the generated
code. This will be addressed in a future release.
2014-10-20 version 2.6.1:
C++

@ -135,6 +135,7 @@ java_EXTRA_DIST= \
java/src/test/java/com/google/protobuf/field_presence_test.proto \
java/src/test/java/com/google/protobuf/lazy_fields_lite.proto \
java/src/test/java/com/google/protobuf/lite_equals_and_hash.proto \
java/src/test/java/com/google/protobuf/map_for_proto2_lite_test.proto \
java/src/test/java/com/google/protobuf/map_for_proto2_test.proto \
java/src/test/java/com/google/protobuf/map_test.proto \
java/src/test/java/com/google/protobuf/multiple_files_test.proto \

@ -12,7 +12,7 @@ AC_PREREQ(2.59)
# In the SVN trunk, the version should always be the next anticipated release
# version with the "-pre" suffix. (We used to use "-SNAPSHOT" but this pushed
# the size of one file name in the dist tarfile over the 99-char limit.)
AC_INIT([Protocol Buffers],[2.6.2-pre],[protobuf@googlegroups.com],[protobuf])
AC_INIT([Protocol Buffers],[3.0.0-alpha-1],[protobuf@googlegroups.com],[protobuf])
AM_MAINTAINER_MODE([enable])
@ -22,7 +22,7 @@ AC_CONFIG_MACRO_DIR([m4])
AC_ARG_VAR(DIST_LANG, [language to include in the distribution package (i.e., make dist)])
case "$DIST_LANG" in
"") DIST_LANG=cpp ;;
"") DIST_LANG=all ;;
all | cpp | java | python | javanano | ruby) ;;
*) AC_MSG_FAILURE([unknown language: $DIST_LANG]) ;;
esac

@ -10,7 +10,7 @@
</parent>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>2.6.2-pre</version>
<version>3.0.0-alpha-1</version>
<packaging>bundle</packaging>
<name>Protocol Buffer Java API</name>
<description>
@ -152,7 +152,7 @@
<instructions>
<Bundle-DocURL>https://developers.google.com/protocol-buffers/</Bundle-DocURL>
<Bundle-SymbolicName>com.google.protobuf</Bundle-SymbolicName>
<Export-Package>com.google.protobuf;version=2.6.2-pre</Export-Package>
<Export-Package>com.google.protobuf;version=3.0.0-alpha-1</Export-Package>
</instructions>
</configuration>
</plugin>

@ -97,7 +97,7 @@ public class MapFieldLite<K, V> {
if (a == b) {
return true;
}
if (a.size() != a.size()) {
if (a.size() != b.size()) {
return false;
}
for (Map.Entry<K, V> entry : a.entrySet()) {

@ -260,6 +260,13 @@ public class MapTest extends TestCase {
assertFalse(m1.equals(m2));
// Don't check m1.hashCode() != m2.hashCode() because it's not guaranteed
// to be different.
// Regression test for b/18549190: if a map is a subset of the other map,
// equals() should return false.
b2.getMutableInt32ToInt32Field().remove(1);
m2 = b2.build();
assertFalse(m1.equals(m2));
assertFalse(m2.equals(m1));
}

@ -38,7 +38,6 @@ import junit.framework.TestCase;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
/**
* Tests for {@link UnknownFieldSetLite}.
@ -228,9 +227,9 @@ public class UnknownFieldSetLiteTest extends TestCase {
assertEquals(foo, copyOfCopy);
}
public void testMalformedBytes() {
public void testMalformedBytes() throws Exception {
try {
Foo.parseFrom("this is a malformed protocol buffer".getBytes(StandardCharsets.UTF_8));
Foo.parseFrom("this is a malformed protocol buffer".getBytes("UTF-8"));
fail();
} catch (InvalidProtocolBufferException e) {
// Expected.

@ -16,7 +16,7 @@
# 5) Cleans up after itself.
if [ "$1" == "" ]; then
echo "USAGE: $1 DISTFILE" >&2
echo "USAGE: $0 DISTFILE" >&2
exit 1
fi
@ -27,7 +27,9 @@ fi
set -ex
LANGUAGES="cpp java python"
BASENAME=`basename $1 .tar.gz`
VERSION=${BASENAME:9}
# Create a directory called "dist", copy the tarball there and unpack it.
mkdir dist
@ -44,17 +46,23 @@ cd $BASENAME/vsprojects
./convert2008to2005.sh
cd ..
# Build the dist again in .tar.gz and .tar.bz2 formats.
./configure
make dist-gzip
make dist-bzip2
for LANG in $LANGUAGES; do
# Build the dist again in .tar.gz
./configure DIST_LANG=$LANG
make dist-gzip
mv $BASENAME.tar.gz ../protobuf-$LANG-$VERSION.tar.gz
done
# Convert all text files to use DOS-style line endings, then build a .zip
# distribution.
todos *.txt */*.txt
make dist-zip
# Clean up.
mv $BASENAME.tar.gz $BASENAME.tar.bz2 $BASENAME.zip ..
for LANG in $LANGUAGES; do
# Build the dist again in .zip
./configure DIST_LANG=$LANG
make dist-zip
mv $BASENAME.zip ../protobuf-$LANG-$VERSION.zip
done
cd ..
rm -rf $BASENAME

@ -163,7 +163,7 @@ if __name__ == '__main__':
))
setup(name = 'protobuf',
version = '2.6.2-pre',
version = '3.0.0-alpha-1',
packages = [ 'google' ],
namespace_packages = [ 'google' ],
test_suite = 'setup.MakeTestSuite',

@ -111,7 +111,7 @@ nobase_include_HEADERS = \
lib_LTLIBRARIES = libprotobuf-lite.la libprotobuf.la libprotoc.la
libprotobuf_lite_la_LIBADD = $(PTHREAD_LIBS)
libprotobuf_lite_la_LDFLAGS = -version-info 9:2:0 -export-dynamic -no-undefined
libprotobuf_lite_la_LDFLAGS = -version-info 10:0:0 -export-dynamic -no-undefined
libprotobuf_lite_la_SOURCES = \
google/protobuf/stubs/atomicops_internals_x86_gcc.cc \
google/protobuf/stubs/atomicops_internals_x86_msvc.cc \
@ -126,7 +126,6 @@ libprotobuf_lite_la_SOURCES = \
google/protobuf/arenastring.cc \
google/protobuf/extension_set.cc \
google/protobuf/generated_message_util.cc \
google/protobuf/map_field.cc \
google/protobuf/message_lite.cc \
google/protobuf/repeated_field.cc \
google/protobuf/wire_format_lite.cc \
@ -136,7 +135,7 @@ libprotobuf_lite_la_SOURCES = \
google/protobuf/io/zero_copy_stream_impl_lite.cc
libprotobuf_la_LIBADD = $(PTHREAD_LIBS)
libprotobuf_la_LDFLAGS = -version-info 9:2:0 -export-dynamic -no-undefined
libprotobuf_la_LDFLAGS = -version-info 10:0:0 -export-dynamic -no-undefined
libprotobuf_la_SOURCES = \
$(libprotobuf_lite_la_SOURCES) \
google/protobuf/stubs/strutil.cc \
@ -150,6 +149,7 @@ libprotobuf_la_SOURCES = \
google/protobuf/dynamic_message.cc \
google/protobuf/extension_set_heavy.cc \
google/protobuf/generated_message_reflection.cc \
google/protobuf/map_field.cc \
google/protobuf/message.cc \
google/protobuf/reflection_internal.h \
google/protobuf/reflection_ops.cc \
@ -166,7 +166,7 @@ libprotobuf_la_SOURCES = \
google/protobuf/compiler/parser.cc
libprotoc_la_LIBADD = $(PTHREAD_LIBS) libprotobuf.la
libprotoc_la_LDFLAGS = -version-info 9:2:0 -export-dynamic -no-undefined
libprotoc_la_LDFLAGS = -version-info 10:0:0 -export-dynamic -no-undefined
libprotoc_la_SOURCES = \
google/protobuf/compiler/code_generator.cc \
google/protobuf/compiler/command_line_interface.cc \

@ -38,7 +38,14 @@ namespace google {
namespace protobuf {
google::protobuf::internal::SequenceNumber Arena::lifecycle_id_generator_;
__thread Arena::ThreadCache Arena::thread_cache_ = { -1, NULL };
#ifdef PROTOBUF_USE_DLLS
Arena::ThreadCache& Arena::thread_cache() {
static GOOGLE_THREAD_LOCAL ThreadCache thread_cache_ = { -1, NULL };
return thread_cache_;
}
#else
GOOGLE_THREAD_LOCAL Arena::ThreadCache Arena::thread_cache_ = { -1, NULL };
#endif
void Arena::Init(const ArenaOptions& options) {
lifecycle_id_ = lifecycle_id_generator_.GetNext();
@ -130,18 +137,18 @@ void* Arena::AllocateAligned(size_t n) {
// If this thread already owns a block in this arena then try to use that.
// This fast path optimizes the case where multiple threads allocate from the
// same arena.
if (thread_cache_.last_lifecycle_id_seen == lifecycle_id_ &&
thread_cache_.last_block_used_ != NULL) {
if (thread_cache_.last_block_used_->avail() < n) {
if (thread_cache().last_lifecycle_id_seen == lifecycle_id_ &&
thread_cache().last_block_used_ != NULL) {
if (thread_cache().last_block_used_->avail() < n) {
return SlowAlloc(n);
}
return AllocFromBlock(thread_cache_.last_block_used_, n);
return AllocFromBlock(thread_cache().last_block_used_, n);
}
// Check whether we own the last accessed block on this arena.
// This fast path optimizes the case where a single thread uses multiple
// arenas.
void* me = &thread_cache_;
void* me = &thread_cache();
Block* b = reinterpret_cast<Block*>(google::protobuf::internal::Acquire_Load(&hint_));
if (!b || b->owner != me || b->avail() < n) {
// If the next block to allocate from is the first block, try to claim it
@ -169,7 +176,7 @@ void* Arena::AllocFromBlock(Block* b, size_t n) {
}
void* Arena::SlowAlloc(size_t n) {
void* me = &thread_cache_;
void* me = &thread_cache();
Block* b = FindBlock(me); // Find block owned by me.
// See if allocation fits in my latest block.
if (b != NULL && b->avail() >= n) {

@ -312,7 +312,12 @@ class LIBPROTOBUF_EXPORT Arena {
static const size_t kHeaderSize = sizeof(Block);
static google::protobuf::internal::SequenceNumber lifecycle_id_generator_;
static __thread ThreadCache thread_cache_;
#ifdef PROTOBUF_USE_DLLS
static ThreadCache& thread_cache();
#else
static GOOGLE_THREAD_LOCAL ThreadCache thread_cache_;
static ThreadCache& thread_cache() { return thread_cache_; }
#endif
// SFINAE for skipping addition to delete list for a Type. This is mainly to
// skip proto2/proto1 message objects with cc_enable_arenas=true from being
@ -434,8 +439,8 @@ class LIBPROTOBUF_EXPORT Arena {
void CleanupList();
inline void SetThreadCacheBlock(Block* block) {
thread_cache_.last_block_used_ = block;
thread_cache_.last_lifecycle_id_seen = lifecycle_id_;
thread_cache().last_block_used_ = block;
thread_cache().last_lifecycle_id_seen = lifecycle_id_;
}
int64 lifecycle_id_; // Unique for each arena. Changes on Reset().

@ -128,7 +128,7 @@ TEST(ArenaTest, InitialBlockTooSmall) {
// initial block.
std::vector<char> arena_block(64);
ArenaOptions options;
options.initial_block = arena_block.data();
options.initial_block = &arena_block[0];
options.initial_block_size = arena_block.size();
Arena arena(options);
@ -137,7 +137,7 @@ TEST(ArenaTest, InitialBlockTooSmall) {
// Ensure that the arena allocator did not return memory pointing into the
// initial block of memory.
uintptr_t arena_start = reinterpret_cast<uintptr_t>(arena_block.data());
uintptr_t arena_start = reinterpret_cast<uintptr_t>(&arena_block[0]);
uintptr_t arena_end = arena_start + arena_block.size();
EXPECT_FALSE(allocation >= arena_start && allocation < arena_end);
@ -771,7 +771,7 @@ TEST(ArenaTest, RepeatedFieldOnArena) {
// Preallocate an initial arena block to avoid mallocs during hooked region.
std::vector<char> arena_block(1024 * 1024);
ArenaOptions options;
options.initial_block = arena_block.data();
options.initial_block = &arena_block[0];
options.initial_block_size = arena_block.size();
Arena arena(options);
@ -898,7 +898,7 @@ TEST(ArenaTest, NoHeapAllocationsTest) {
// Allocate a large initial block to avoid mallocs during hooked test.
std::vector<char> arena_block(128 * 1024);
ArenaOptions options;
options.initial_block = arena_block.data();
options.initial_block = &arena_block[0];
options.initial_block_size = arena_block.size();
Arena arena(options);
@ -918,7 +918,7 @@ TEST(ArenaTest, NoHeapAllocationsTest) {
TEST(ArenaTest, MessageLiteOnArena) {
std::vector<char> arena_block(128 * 1024);
ArenaOptions options;
options.initial_block = arena_block.data();
options.initial_block = &arena_block[0];
options.initial_block_size = arena_block.size();
Arena arena(options);
const google::protobuf::MessageLite* prototype = dynamic_cast<
@ -977,7 +977,7 @@ TEST(ArenaTest, SpaceUsed) {
// Test with initial block.
std::vector<char> arena_block(1024);
options.initial_block = arena_block.data();
options.initial_block = &arena_block[0];
options.initial_block_size = arena_block.size();
Arena arena_2(options);
EXPECT_EQ(1024, arena_2.SpaceUsed());

@ -31,7 +31,6 @@
#ifndef GOOGLE_PROTOBUF_ARENASTRING_H__
#define GOOGLE_PROTOBUF_ARENASTRING_H__
#include <stdint.h>
#include <string>
#include <google/protobuf/stubs/common.h>
@ -54,7 +53,7 @@ namespace google {
namespace protobuf {
namespace internal {
struct ArenaStringPtr {
struct LIBPROTOBUF_EXPORT ArenaStringPtr {
inline void Set(const ::std::string* default_value,
const ::std::string& value, ::google::protobuf::Arena* arena) {
if (ptr_ == default_value) {

@ -1226,7 +1226,7 @@ GenerateDescriptorDeclarations(io::Printer* printer) {
for (int j = 0; j < descriptor_->oneof_decl(i)->field_count(); j++) {
const FieldDescriptor* field = descriptor_->oneof_decl(i)->field(j);
printer->Print(" ");
if (IsStringOrMessage(field)) {
if (field->cpp_type() == FieldDescriptor::CPPTYPE_MESSAGE) {
printer->Print("const ");
}
field_generators_.get(field).GeneratePrivateMembers(printer);

@ -153,6 +153,7 @@ TEST(GeneratedMessageTest, Defaults) {
&message.optional_import_message());
}
#ifndef PROTOBUF_USE_DLLS
TEST(GeneratedMessageTest, Int32StringConversion) {
EXPECT_EQ("971", Int32ToString(971));
EXPECT_EQ("(~0x7fffffff)", Int32ToString(kint32min));
@ -165,6 +166,7 @@ TEST(GeneratedMessageTest, Int64StringConversion) {
EXPECT_EQ("GOOGLE_LONGLONG(~0x7fffffffffffffff)", Int64ToString(kint64min));
EXPECT_EQ("GOOGLE_LONGLONG(9223372036854775807)", Int64ToString(kint64max));
}
#endif // !PROTOBUF_USE_DLLS
TEST(GeneratedMessageTest, FloatingPointDefaults) {
const unittest::TestExtremeDefaultValues& extreme_default =

@ -8,12 +8,12 @@
#include <google/protobuf/stubs/common.h>
#if GOOGLE_PROTOBUF_VERSION < 2006000
#if GOOGLE_PROTOBUF_VERSION < 3000000
#error This file was generated by a newer version of protoc which is
#error incompatible with your Protocol Buffer headers. Please update
#error your headers.
#endif
#if 2006002 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
#if 3000000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers. Please
#error regenerate this file with a newer version of protoc.

@ -345,6 +345,10 @@ typedef hash_map<string, const SourceCodeInfo_Location*> LocationsByPathMap;
set<string>* allowed_proto3_extendees_ = NULL;
GOOGLE_PROTOBUF_DECLARE_ONCE(allowed_proto3_extendees_init_);
void DeleteAllowedProto3Extendee() {
delete allowed_proto3_extendees_;
}
void InitAllowedProto3Extendee() {
allowed_proto3_extendees_ = new set<string>;
allowed_proto3_extendees_->insert("google.protobuf.FileOptions");
@ -354,6 +358,7 @@ void InitAllowedProto3Extendee() {
allowed_proto3_extendees_->insert("google.protobuf.EnumValueOptions");
allowed_proto3_extendees_->insert("google.protobuf.ServiceOptions");
allowed_proto3_extendees_->insert("google.protobuf.MethodOptions");
google::protobuf::internal::OnShutdown(&DeleteAllowedProto3Extendee);
}
// Checks whether the extendee type is allowed in proto3.

@ -8,12 +8,12 @@
#include <google/protobuf/stubs/common.h>
#if GOOGLE_PROTOBUF_VERSION < 2006000
#if GOOGLE_PROTOBUF_VERSION < 3000000
#error This file was generated by a newer version of protoc which is
#error incompatible with your Protocol Buffer headers. Please update
#error your headers.
#endif
#if 2006002 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
#if 3000000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers. Please
#error regenerate this file with a newer version of protoc.

@ -110,7 +110,7 @@ class Map {
~Map() { clear(); }
// Iterators
class LIBPROTOBUF_EXPORT const_iterator
class const_iterator
: public std::iterator<std::forward_iterator_tag, value_type, ptrdiff_t,
const value_type*, const value_type&> {
typedef typename hash_map<Key, value_type*>::const_iterator InnerIt;
@ -139,7 +139,7 @@ class Map {
InnerIt it_;
};
class LIBPROTOBUF_EXPORT iterator : public std::iterator<std::forward_iterator_tag, value_type> {
class iterator : public std::iterator<std::forward_iterator_tag, value_type> {
typedef typename hash_map<Key, value_type*>::iterator InnerIt;
public:
@ -302,7 +302,7 @@ class Map {
template <typename K, typename V, FieldDescriptor::Type KeyProto,
FieldDescriptor::Type ValueProto, int default_enum>
friend class LIBPROTOBUF_EXPORT internal::MapField;
friend class internal::MapField;
};
} // namespace protobuf

@ -43,6 +43,10 @@ class Arena;
namespace protobuf {
namespace internal {
// Register all MapEntry default instances so we can delete them in
// ShutdownProtobufLibrary().
void LIBPROTOBUF_EXPORT RegisterMapEntryDefaultInstance(MessageLite* default_instance);
// This is the common base class for MapEntry. It is used by MapFieldBase in
// reflection api, in which the static type of key and value is unknown.
class LIBPROTOBUF_EXPORT MapEntryBase : public Message {
@ -80,7 +84,7 @@ class LIBPROTOBUF_EXPORT MapEntryBase : public Message {
// Moreover, default_enum_value is used to initialize enum field in proto2.
template <typename Key, typename Value, FieldDescriptor::Type KeyProtoType,
FieldDescriptor::Type ValueProtoType, int default_enum_value>
class LIBPROTOBUF_EXPORT MapEntry : public MapEntryBase {
class MapEntry : public MapEntryBase {
// Handlers for key/value's proto field type. Used to infer internal layout
// and provide parsing/serialization support.
typedef MapProtoTypeHandler<KeyProtoType> KeyProtoHandler;
@ -317,6 +321,7 @@ class LIBPROTOBUF_EXPORT MapEntry : public MapEntryBase {
entry->reflection_ = reflection;
entry->default_instance_ = entry;
entry->InitAsDefaultInstance();
RegisterMapEntryDefaultInstance(entry);
return entry;
}
@ -358,7 +363,7 @@ class LIBPROTOBUF_EXPORT MapEntry : public MapEntryBase {
template <typename KeyNested, typename ValueNested,
FieldDescriptor::Type KeyProtoNested,
FieldDescriptor::Type ValueProtoNested, int default_enum>
class LIBPROTOBUF_EXPORT MapEntryWrapper
class MapEntryWrapper
: public MapEntry<KeyNested, ValueNested, KeyProtoNested,
ValueProtoNested, default_enum> {
typedef MapEntry<KeyNested, ValueNested, KeyProtoNested, ValueProtoNested,
@ -389,7 +394,7 @@ class LIBPROTOBUF_EXPORT MapEntry : public MapEntryBase {
template <typename KeyNested, typename ValueNested,
FieldDescriptor::Type KeyProtoNested,
FieldDescriptor::Type ValueProtoNested, int default_enum>
class LIBPROTOBUF_EXPORT MapEnumEntryWrapper
class MapEnumEntryWrapper
: public MapEntry<KeyNested, ValueNested, KeyProtoNested,
ValueProtoNested, default_enum> {
typedef MapEntry<KeyNested, ValueNested, KeyProtoNested, ValueProtoNested,
@ -428,7 +433,7 @@ class LIBPROTOBUF_EXPORT MapEntry : public MapEntryBase {
template <typename K, typename V,
FieldDescriptor::Type KType,
FieldDescriptor::Type VType, int default_enum>
friend class LIBPROTOBUF_EXPORT internal::MapField;
friend class internal::MapField;
friend class LIBPROTOBUF_EXPORT internal::GeneratedMessageReflection;
GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(MapEntry);

@ -30,10 +30,37 @@
#include <google/protobuf/map_field.h>
#include <vector>
namespace google {
namespace protobuf {
namespace internal {
ProtobufOnceType map_entry_default_instances_once_;
Mutex* map_entry_default_instances_mutex_;
vector<MessageLite*>* map_entry_default_instances_;
void DeleteMapEntryDefaultInstances() {
for (int i = 0; i < map_entry_default_instances_->size(); ++i) {
delete map_entry_default_instances_->at(i);
}
delete map_entry_default_instances_mutex_;
delete map_entry_default_instances_;
}
void InitMapEntryDefaultInstances() {
map_entry_default_instances_mutex_ = new Mutex();
map_entry_default_instances_ = new vector<MessageLite*>();
OnShutdown(&DeleteMapEntryDefaultInstances);
}
void RegisterMapEntryDefaultInstance(MessageLite* default_instance) {
GoogleOnceInit(&map_entry_default_instances_once_,
&InitMapEntryDefaultInstances);
MutexLock lock(map_entry_default_instances_mutex_);
map_entry_default_instances_->push_back(default_instance);
}
MapFieldBase::~MapFieldBase() {
if (repeated_field_ != NULL) delete repeated_field_;
}

@ -137,7 +137,7 @@ class LIBPROTOBUF_EXPORT MapFieldBase {
template<typename Key, typename T,
FieldDescriptor::Type KeyProto,
FieldDescriptor::Type ValueProto, int default_enum_value = 0>
class LIBPROTOBUF_EXPORT MapField : public MapFieldBase {
class MapField : public MapFieldBase {
// Handlers for key/value's proto field type.
typedef MapProtoTypeHandler<KeyProto> KeyProtoHandler;
typedef MapProtoTypeHandler<ValueProto> ValueProtoHandler;

@ -430,41 +430,6 @@ TEST_P(MapFieldStateTest, MutableMapField) {
}
}
class MapFieldBaseStateStub : public MapFieldBaseStub {
public:
MapFieldBaseStateStub(Mutex* mutex, int* clean_counter,
int* completed_counter)
: mutex_(mutex),
clean_counter_(clean_counter),
completed_counter_(completed_counter) {}
~MapFieldBaseStateStub() {}
protected:
void SyncRepeatedFieldWithMapNoLock() const { Clean(); }
void SyncMapWithRepeatedFieldNoLock() const { Clean(); }
private:
void Clean() const {
{
MutexLock lock(mutex_);
++(*clean_counter_);
}
struct timespec tm;
tm.tv_sec = 0;
tm.tv_nsec = 100000000; // 100ms
nanosleep(&tm, NULL);
{
MutexLock lock(mutex_);
// No other thread should have completed while this one was initializing.
EXPECT_EQ(0, *completed_counter_);
}
}
Mutex* mutex_;
int* clean_counter_;
int* completed_counter_;
};
} // namespace internal
} // namespace protobuf
} // namespace google

@ -190,6 +190,7 @@ TEST_F(MapImplTest, MutableAt) {
ExpectSingleElement(key, value2);
}
#ifdef PROTOBUF_HAS_DEATH_TEST
TEST_F(MapImplTest, MutableAtNonExistDeathTest) {
EXPECT_DEATH(map_.at(0), "");
}
@ -197,6 +198,7 @@ TEST_F(MapImplTest, MutableAtNonExistDeathTest) {
TEST_F(MapImplTest, ImmutableAtNonExistDeathTest) {
EXPECT_DEATH(const_map_.at(0), "");
}
#endif // PROTOBUF_HAS_DEATH_TEST
TEST_F(MapImplTest, CountNonExist) {
EXPECT_EQ(0, map_.count(0));

@ -1020,7 +1020,7 @@ void MapTestUtil::MapReflectionTester::ExpectMapFieldsSetViaReflection(
*sub_message, map_int32_int32_key_);
int32 val = sub_message->GetReflection()->GetInt32(
*sub_message, map_int32_int32_val_);
EXPECT_EQ(map.at(key), val);
EXPECT_EQ(map[key], val);
}
}
{
@ -1034,7 +1034,7 @@ void MapTestUtil::MapReflectionTester::ExpectMapFieldsSetViaReflection(
*sub_message, map_int64_int64_key_);
int64 val = sub_message->GetReflection()->GetInt64(
*sub_message, map_int64_int64_val_);
EXPECT_EQ(map.at(key), val);
EXPECT_EQ(map[key], val);
}
}
{
@ -1048,7 +1048,7 @@ void MapTestUtil::MapReflectionTester::ExpectMapFieldsSetViaReflection(
*sub_message, map_uint32_uint32_key_);
uint32 val = sub_message->GetReflection()->GetUInt32(
*sub_message, map_uint32_uint32_val_);
EXPECT_EQ(map.at(key), val);
EXPECT_EQ(map[key], val);
}
}
{
@ -1062,7 +1062,7 @@ void MapTestUtil::MapReflectionTester::ExpectMapFieldsSetViaReflection(
*sub_message, map_uint64_uint64_key_);
uint64 val = sub_message->GetReflection()->GetUInt64(
*sub_message, map_uint64_uint64_val_);
EXPECT_EQ(map.at(key), val);
EXPECT_EQ(map[key], val);
}
}
{
@ -1076,7 +1076,7 @@ void MapTestUtil::MapReflectionTester::ExpectMapFieldsSetViaReflection(
*sub_message, map_sint32_sint32_key_);
int32 val = sub_message->GetReflection()->GetInt32(
*sub_message, map_sint32_sint32_val_);
EXPECT_EQ(map.at(key), val);
EXPECT_EQ(map[key], val);
}
}
{
@ -1090,7 +1090,7 @@ void MapTestUtil::MapReflectionTester::ExpectMapFieldsSetViaReflection(
*sub_message, map_sint64_sint64_key_);
int64 val = sub_message->GetReflection()->GetInt64(
*sub_message, map_sint64_sint64_val_);
EXPECT_EQ(map.at(key), val);
EXPECT_EQ(map[key], val);
}
}
{
@ -1104,7 +1104,7 @@ void MapTestUtil::MapReflectionTester::ExpectMapFieldsSetViaReflection(
*sub_message, map_fixed32_fixed32_key_);
uint32 val = sub_message->GetReflection()->GetUInt32(
*sub_message, map_fixed32_fixed32_val_);
EXPECT_EQ(map.at(key), val);
EXPECT_EQ(map[key], val);
}
}
{
@ -1118,7 +1118,7 @@ void MapTestUtil::MapReflectionTester::ExpectMapFieldsSetViaReflection(
*sub_message, map_fixed64_fixed64_key_);
uint64 val = sub_message->GetReflection()->GetUInt64(
*sub_message, map_fixed64_fixed64_val_);
EXPECT_EQ(map.at(key), val);
EXPECT_EQ(map[key], val);
}
}
{
@ -1132,7 +1132,7 @@ void MapTestUtil::MapReflectionTester::ExpectMapFieldsSetViaReflection(
*sub_message, map_sfixed32_sfixed32_key_);
int32 val = sub_message->GetReflection()->GetInt32(
*sub_message, map_sfixed32_sfixed32_val_);
EXPECT_EQ(map.at(key), val);
EXPECT_EQ(map[key], val);
}
}
{
@ -1146,7 +1146,7 @@ void MapTestUtil::MapReflectionTester::ExpectMapFieldsSetViaReflection(
*sub_message, map_sfixed64_sfixed64_key_);
int64 val = sub_message->GetReflection()->GetInt64(
*sub_message, map_sfixed64_sfixed64_val_);
EXPECT_EQ(map.at(key), val);
EXPECT_EQ(map[key], val);
}
}
{
@ -1160,7 +1160,7 @@ void MapTestUtil::MapReflectionTester::ExpectMapFieldsSetViaReflection(
*sub_message, map_int32_float_key_);
float val = sub_message->GetReflection()->GetFloat(
*sub_message, map_int32_float_val_);
EXPECT_EQ(map.at(key), val);
EXPECT_EQ(map[key], val);
}
}
{
@ -1174,7 +1174,7 @@ void MapTestUtil::MapReflectionTester::ExpectMapFieldsSetViaReflection(
*sub_message, map_int32_double_key_);
double val = sub_message->GetReflection()->GetDouble(
*sub_message, map_int32_double_val_);
EXPECT_EQ(map.at(key), val);
EXPECT_EQ(map[key], val);
}
}
{
@ -1188,7 +1188,7 @@ void MapTestUtil::MapReflectionTester::ExpectMapFieldsSetViaReflection(
*sub_message, map_bool_bool_key_);
bool val = sub_message->GetReflection()->GetBool(
*sub_message, map_bool_bool_val_);
EXPECT_EQ(map.at(key), val);
EXPECT_EQ(map[key], val);
}
}
{
@ -1202,7 +1202,7 @@ void MapTestUtil::MapReflectionTester::ExpectMapFieldsSetViaReflection(
*sub_message, map_string_string_key_);
string val = sub_message->GetReflection()->GetString(
*sub_message, map_string_string_val_);
EXPECT_EQ(map.at(key), val);
EXPECT_EQ(map[key], val);
}
}
{
@ -1216,7 +1216,7 @@ void MapTestUtil::MapReflectionTester::ExpectMapFieldsSetViaReflection(
*sub_message, map_int32_bytes_key_);
string val = sub_message->GetReflection()->GetString(
*sub_message, map_int32_bytes_val_);
EXPECT_EQ(map.at(key), val);
EXPECT_EQ(map[key], val);
}
}
{
@ -1230,7 +1230,7 @@ void MapTestUtil::MapReflectionTester::ExpectMapFieldsSetViaReflection(
*sub_message, map_int32_enum_key_);
const EnumValueDescriptor* val = sub_message->GetReflection()->GetEnum(
*sub_message, map_int32_enum_val_);
EXPECT_EQ(map.at(key), val);
EXPECT_EQ(map[key], val);
}
}
{
@ -1246,7 +1246,7 @@ void MapTestUtil::MapReflectionTester::ExpectMapFieldsSetViaReflection(
*sub_message, map_int32_foreign_message_val_);
int32 val = foreign_message.GetReflection()->GetInt32(
foreign_message, foreign_c_);
EXPECT_EQ(map.at(key), val);
EXPECT_EQ(map[key], val);
}
}
}

@ -967,6 +967,7 @@ const RepeatedField<TYPE>& Reflection::GetRepeatedField<TYPE>( \
const Message& message, const FieldDescriptor* field) const; \
\
template<> \
LIBPROTOBUF_EXPORT \
RepeatedField<TYPE>* Reflection::MutableRepeatedField<TYPE>( \
Message* message, const FieldDescriptor* field) const;

@ -200,6 +200,7 @@ TEST(PreserveUnknownEnumTest, Proto2CatchesUnknownValues) {
EXPECT_TRUE(enum_value != NULL);
r->AddEnum(&message, repeated_field, enum_value);
#ifdef PROTOBUF_HAS_DEATH_TEST
// Enum-field integer-based setters GOOGLE_DCHECK-fail on invalid values, in order to
// remain consistent with proto2 generated code.
EXPECT_DEBUG_DEATH({
@ -214,6 +215,7 @@ TEST(PreserveUnknownEnumTest, Proto2CatchesUnknownValues) {
r->AddEnumValue(&message, repeated_field, 4242);
r->GetRepeatedEnum(message, repeated_field, 1);
}, "AddEnumValue accepts only valid integer values");
#endif // PROTOBUF_HAS_DEATH_TEST
}
TEST(PreserveUnknownEnumTest, SupportsUnknownEnumValuesAPI) {

@ -236,10 +236,11 @@ class RepeatedField {
Arena* arena;
Element elements[1];
};
// Why not sizeof(Rep) - sizeof(Element)? Because this is not accurate w.r.t.
// trailing padding on the struct -- e.g. if Element is int, this would yield
// 12 on x86-64, not 8 as we want.
static const size_t kRepHeaderSize = sizeof(Arena*);
// We can not use sizeof(Rep) - sizeof(Element) due to the trailing padding on
// the struct. We can not use sizeof(Arena*) as well because there might be
// a "gap" after the field arena and before the field elements (e.g., when
// Element is double and pointer is 32bit).
static const size_t kRepHeaderSize;
// Contains arena ptr and the elements array. We also keep the invariant that
// if rep_ is NULL, then arena is NULL.
Rep* rep_;
@ -263,6 +264,10 @@ class RepeatedField {
}
};
template<typename Element>
const size_t RepeatedField<Element>::kRepHeaderSize =
reinterpret_cast<size_t>(&reinterpret_cast<Rep*>(16)->elements[0]) - 16;
namespace internal {
template <typename It> class RepeatedPtrIterator;
template <typename It, typename VoidPtr> class RepeatedPtrOverPtrsIterator;

@ -38,6 +38,8 @@
#include <google/protobuf/stubs/shared_ptr.h>
#endif
#include <google/protobuf/generated_enum_reflection.h>
namespace google {
namespace protobuf {
namespace internal {
@ -273,7 +275,7 @@ struct RefTypeTraits<
template<typename T>
struct RefTypeTraits<
T, typename internal::enable_if<internal::is_enum<T>::value>::type> {
T, typename internal::enable_if<is_proto_enum<T>::value>::type> {
typedef RepeatedFieldRefIterator<T> iterator;
typedef RepeatedFieldAccessor AccessorType;
// We use int32 for repeated enums in RepeatedFieldAccessor.

@ -196,8 +196,7 @@ void TestRepeatedFieldRefIterator(
int index = 0;
for (typename Ref::const_iterator it = handle.begin();
it != handle.end(); ++it) {
ValueType value = static_cast<ValueType>(*it);
EXPECT_EQ((message.*GetFunc)(index), value);
EXPECT_EQ((message.*GetFunc)(index), *it);
++index;
}
EXPECT_EQ(handle.size(), index);
@ -410,6 +409,7 @@ TEST(RepeatedFieldReflectionTest, RepeatedFieldRefForRegularFields) {
EXPECT_TRUE(rf_message.empty());
EXPECT_TRUE(mrf_message.empty());
#ifdef PROTOBUF_HAS_DEATH_TEST
// Make sure types are checked correctly at runtime.
const FieldDescriptor* fd_optional_int32 =
desc->FindFieldByName("optional_int32");
@ -419,6 +419,7 @@ TEST(RepeatedFieldReflectionTest, RepeatedFieldRefForRegularFields) {
message, fd_repeated_int32), "");
EXPECT_DEATH(refl->GetRepeatedFieldRef<TestAllTypes>(
message, fd_repeated_foreign_message), "");
#endif // PROTOBUF_HAS_DEATH_TEST
}
TEST(RepeatedFieldReflectionTest, RepeatedFieldRefForEnums) {

@ -92,8 +92,8 @@ TEST(RepeatedField, Small) {
EXPECT_TRUE(field.empty());
EXPECT_EQ(field.size(), 0);
// Additional 8 bytes are for 'struct Rep' header.
int expected_usage = 4 * sizeof(int) + 8;
// Additional bytes are for 'struct Rep' header.
int expected_usage = 4 * sizeof(int) + sizeof(Arena*);
EXPECT_EQ(field.SpaceUsedExcludingSelf(), expected_usage);
}

@ -113,24 +113,24 @@ namespace internal {
// The current version, represented as a single integer to make comparison
// easier: major * 10^6 + minor * 10^3 + micro
#define GOOGLE_PROTOBUF_VERSION 2006002
#define GOOGLE_PROTOBUF_VERSION 3000000
// The minimum library version which works with the current version of the
// headers.
#define GOOGLE_PROTOBUF_MIN_LIBRARY_VERSION 2006000
#define GOOGLE_PROTOBUF_MIN_LIBRARY_VERSION 3000000
// The minimum header version which works with the current version of
// the library. This constant should only be used by protoc's C++ code
// generator.
static const int kMinHeaderVersionForLibrary = 2006000;
static const int kMinHeaderVersionForLibrary = 3000000;
// The minimum protoc version which works with the current version of the
// headers.
#define GOOGLE_PROTOBUF_MIN_PROTOC_VERSION 2006000
#define GOOGLE_PROTOBUF_MIN_PROTOC_VERSION 3000000
// The minimum header version which works with the current version of
// protoc. This constant should only be used in VerifyVersion().
static const int kMinHeaderVersionForProtoc = 2006000;
static const int kMinHeaderVersionForProtoc = 3000000;
// Verifies that the headers and libraries are compatible. Use the macro
// below to call this.
@ -314,6 +314,12 @@ inline void GOOGLE_UNALIGNED_STORE64(void *p, uint64 v) {
}
#endif
#if defined(_MSC_VER)
#define GOOGLE_THREAD_LOCAL __declspec(thread)
#else
#define GOOGLE_THREAD_LOCAL __thread
#endif
// ===================================================================
// from google3/base/basictypes.h

@ -46,7 +46,6 @@
#define GOOGLE_PROTOBUF_STUBS_FASTMEM_H_
#include <stddef.h>
#include <stdint.h>
#include <stdio.h>
#include <string.h>

@ -103,7 +103,7 @@ template <class T> struct remove_reference;
template <class T> struct add_reference;
template <class T> struct remove_pointer;
template <class T, class U> struct is_same;
#if !defined(_MSC_VER) && !(defined(__GNUC__) && __GNUC__ <= 3)
#if !(defined(__GNUC__) && __GNUC__ <= 3)
template <class From, class To> struct is_convertible;
#endif
@ -322,7 +322,7 @@ template<typename T, typename U> struct is_same : public false_type { };
template<typename T> struct is_same<T, T> : public true_type { };
// Specified by TR1 [4.6] Relationships between types
#if !defined(_MSC_VER) && !(defined(__GNUC__) && __GNUC__ <= 3)
#if !(defined(__GNUC__) && __GNUC__ <= 3)
namespace type_traits_internal {
// This class is an implementation detail for is_convertible, and you
@ -339,6 +339,9 @@ struct ConvertHelper {
static small_ Test(To);
static big_ Test(...);
static From Create();
enum {
value = sizeof(Test(Create())) == sizeof(small_)
};
};
} // namespace type_traits_internal
@ -346,9 +349,7 @@ struct ConvertHelper {
template <typename From, typename To>
struct is_convertible
: integral_constant<bool,
sizeof(type_traits_internal::ConvertHelper<From, To>::Test(
type_traits_internal::ConvertHelper<From, To>::Create()))
== sizeof(small_)> {
type_traits_internal::ConvertHelper<From, To>::value> {
};
#endif

@ -610,7 +610,7 @@ TEST(TypeTraitsTest, TestIsSame) {
}
TEST(TypeTraitsTest, TestConvertible) {
#if !defined(_MSC_VER) && !(defined(__GNUC__) && __GNUC__ <= 3)
#if !(defined(__GNUC__) && __GNUC__ <= 3)
EXPECT_TRUE((is_convertible<int, int>::value));
EXPECT_TRUE((is_convertible<int, long>::value));
EXPECT_TRUE((is_convertible<long, int>::value));

@ -485,7 +485,7 @@ TEST_F(UnknownFieldSetTest, UnknownEnumValue) {
TEST_F(UnknownFieldSetTest, SpaceUsedExcludingSelf) {
UnknownFieldSet empty;
empty.AddVarint(1, 0);
EXPECT_EQ(/* vector<UnknownField> */ 24 + /* sizeof(UnknownField) */ 16,
EXPECT_EQ(sizeof(vector<UnknownField>) + sizeof(UnknownField),
empty.SpaceUsedExcludingSelf());
}

@ -7,44 +7,72 @@ md include\google\protobuf\compiler
md include\google\protobuf\compiler\cpp
md include\google\protobuf\compiler\java
md include\google\protobuf\compiler\python
copy ..\src\google\protobuf\stubs\atomicops.h include\google\protobuf\stubs\atomicops.h
copy ..\src\google\protobuf\stubs\atomicops_internals_x86_msvc.h include\google\protobuf\stubs\atomicops_internals_x86_msvc.h
copy ..\src\google\protobuf\stubs\common.h include\google\protobuf\stubs\common.h
copy ..\src\google\protobuf\stubs\once.h include\google\protobuf\stubs\once.h
copy ..\src\google\protobuf\stubs\platform_macros.h include\google\protobuf\stubs\platform_macros.h
copy ..\src\google\protobuf\stubs\template_util.h include\google\protobuf\stubs\template_util.h
copy ..\src\google\protobuf\stubs\type_traits.h include\google\protobuf\stubs\type_traits.h
copy ..\src\google\protobuf\arena.h include\google\protobuf\arena.h
copy ..\src\google\protobuf\arenastring.h include\google\protobuf\arenastring.h
copy ..\src\google\protobuf\compiler\code_generator.h include\google\protobuf\compiler\code_generator.h
copy ..\src\google\protobuf\compiler\command_line_interface.h include\google\protobuf\compiler\command_line_interface.h
copy ..\src\google\protobuf\compiler\cpp\cpp_generator.h include\google\protobuf\compiler\cpp\cpp_generator.h
copy ..\src\google\protobuf\compiler\importer.h include\google\protobuf\compiler\importer.h
copy ..\src\google\protobuf\compiler\java\java_generator.h include\google\protobuf\compiler\java\java_generator.h
copy ..\src\google\protobuf\compiler\parser.h include\google\protobuf\compiler\parser.h
copy ..\src\google\protobuf\compiler\plugin.h include\google\protobuf\compiler\plugin.h
copy ..\src\google\protobuf\compiler\plugin.pb.h include\google\protobuf\compiler\plugin.pb.h
copy ..\src\google\protobuf\compiler\python\python_generator.h include\google\protobuf\compiler\python\python_generator.h
copy ..\src\google\protobuf\descriptor_database.h include\google\protobuf\descriptor_database.h
copy ..\src\google\protobuf\descriptor.h include\google\protobuf\descriptor.h
copy ..\src\google\protobuf\descriptor.pb.h include\google\protobuf\descriptor.pb.h
copy ..\src\google\protobuf\descriptor_database.h include\google\protobuf\descriptor_database.h
copy ..\src\google\protobuf\dynamic_message.h include\google\protobuf\dynamic_message.h
copy ..\src\google\protobuf\extension_set.h include\google\protobuf\extension_set.h
copy ..\src\google\protobuf\generated_enum_reflection.h include\google\protobuf\generated_enum_reflection.h
copy ..\src\google\protobuf\generated_message_util.h include\google\protobuf\generated_message_util.h
copy ..\src\google\protobuf\generated_message_reflection.h include\google\protobuf\generated_message_reflection.h
copy ..\src\google\protobuf\generated_message_util.h include\google\protobuf\generated_message_util.h
copy ..\src\google\protobuf\io\coded_stream.h include\google\protobuf\io\coded_stream.h
copy ..\src\google\protobuf\io\gzip_stream.h include\google\protobuf\io\gzip_stream.h
copy ..\src\google\protobuf\io\printer.h include\google\protobuf\io\printer.h
copy ..\src\google\protobuf\io\strtod.h include\google\protobuf\io\strtod.h
copy ..\src\google\protobuf\io\tokenizer.h include\google\protobuf\io\tokenizer.h
copy ..\src\google\protobuf\io\zero_copy_stream.h include\google\protobuf\io\zero_copy_stream.h
copy ..\src\google\protobuf\io\zero_copy_stream_impl.h include\google\protobuf\io\zero_copy_stream_impl.h
copy ..\src\google\protobuf\io\zero_copy_stream_impl_lite.h include\google\protobuf\io\zero_copy_stream_impl_lite.h
copy ..\src\google\protobuf\map_entry.h include\google\protobuf\map_entry.h
copy ..\src\google\protobuf\map_field.h include\google\protobuf\map_field.h
copy ..\src\google\protobuf\map_field_inl.h include\google\protobuf\map_field_inl.h
copy ..\src\google\protobuf\map.h include\google\protobuf\map.h
copy ..\src\google\protobuf\map_type_handler.h include\google\protobuf\map_type_handler.h
copy ..\src\google\protobuf\message.h include\google\protobuf\message.h
copy ..\src\google\protobuf\message_lite.h include\google\protobuf\message_lite.h
copy ..\src\google\protobuf\metadata.h include\google\protobuf\metadata.h
copy ..\src\google\protobuf\reflection.h include\google\protobuf\reflection.h
copy ..\src\google\protobuf\reflection_ops.h include\google\protobuf\reflection_ops.h
copy ..\src\google\protobuf\repeated_field.h include\google\protobuf\repeated_field.h
copy ..\src\google\protobuf\repeated_field_reflection.h include\google\protobuf\repeated_field_reflection.h
copy ..\src\google\protobuf\service.h include\google\protobuf\service.h
copy ..\src\google\protobuf\stubs\atomicops.h include\google\protobuf\stubs\atomicops.h
copy ..\src\google\protobuf\stubs\atomicops_internals_aix.h include\google\protobuf\stubs\atomicops_internals_aix.h
copy ..\src\google\protobuf\stubs\atomicops_internals_arm64_gcc.h include\google\protobuf\stubs\atomicops_internals_arm64_gcc.h
copy ..\src\google\protobuf\stubs\atomicops_internals_arm_gcc.h include\google\protobuf\stubs\atomicops_internals_arm_gcc.h
copy ..\src\google\protobuf\stubs\atomicops_internals_arm_qnx.h include\google\protobuf\stubs\atomicops_internals_arm_qnx.h
copy ..\src\google\protobuf\stubs\atomicops_internals_atomicword_compat.h include\google\protobuf\stubs\atomicops_internals_atomicword_compat.h
copy ..\src\google\protobuf\stubs\atomicops_internals_generic_gcc.h include\google\protobuf\stubs\atomicops_internals_generic_gcc.h
copy ..\src\google\protobuf\stubs\atomicops_internals_macosx.h include\google\protobuf\stubs\atomicops_internals_macosx.h
copy ..\src\google\protobuf\stubs\atomicops_internals_mips_gcc.h include\google\protobuf\stubs\atomicops_internals_mips_gcc.h
copy ..\src\google\protobuf\stubs\atomicops_internals_pnacl.h include\google\protobuf\stubs\atomicops_internals_pnacl.h
copy ..\src\google\protobuf\stubs\atomicops_internals_solaris.h include\google\protobuf\stubs\atomicops_internals_solaris.h
copy ..\src\google\protobuf\stubs\atomicops_internals_tsan.h include\google\protobuf\stubs\atomicops_internals_tsan.h
copy ..\src\google\protobuf\stubs\atomicops_internals_x86_gcc.h include\google\protobuf\stubs\atomicops_internals_x86_gcc.h
copy ..\src\google\protobuf\stubs\atomicops_internals_x86_msvc.h include\google\protobuf\stubs\atomicops_internals_x86_msvc.h
copy ..\src\google\protobuf\stubs\atomic_sequence_num.h include\google\protobuf\stubs\atomic_sequence_num.h
copy ..\src\google\protobuf\stubs\casts.h include\google\protobuf\stubs\casts.h
copy ..\src\google\protobuf\stubs\common.h include\google\protobuf\stubs\common.h
copy ..\src\google\protobuf\stubs\fastmem.h include\google\protobuf\stubs\fastmem.h
copy ..\src\google\protobuf\stubs\once.h include\google\protobuf\stubs\once.h
copy ..\src\google\protobuf\stubs\platform_macros.h include\google\protobuf\stubs\platform_macros.h
copy ..\src\google\protobuf\stubs\singleton.h include\google\protobuf\stubs\singleton.h
copy ..\src\google\protobuf\stubs\stl_util.h include\google\protobuf\stubs\stl_util.h
copy ..\src\google\protobuf\stubs\template_util.h include\google\protobuf\stubs\template_util.h
copy ..\src\google\protobuf\stubs\type_traits.h include\google\protobuf\stubs\type_traits.h
copy ..\src\google\protobuf\text_format.h include\google\protobuf\text_format.h
copy ..\src\google\protobuf\unknown_field_set.h include\google\protobuf\unknown_field_set.h
copy ..\src\google\protobuf\wire_format.h include\google\protobuf\wire_format.h
copy ..\src\google\protobuf\wire_format_lite.h include\google\protobuf\wire_format_lite.h
copy ..\src\google\protobuf\wire_format_lite_inl.h include\google\protobuf\wire_format_lite_inl.h
copy ..\src\google\protobuf\io\coded_stream.h include\google\protobuf\io\coded_stream.h
copy ..\src\google\protobuf\io\gzip_stream.h include\google\protobuf\io\gzip_stream.h
copy ..\src\google\protobuf\io\printer.h include\google\protobuf\io\printer.h
copy ..\src\google\protobuf\io\strtod.h include\google\protobuf\io\strtod.h
copy ..\src\google\protobuf\io\tokenizer.h include\google\protobuf\io\tokenizer.h
copy ..\src\google\protobuf\io\zero_copy_stream.h include\google\protobuf\io\zero_copy_stream.h
copy ..\src\google\protobuf\io\zero_copy_stream_impl.h include\google\protobuf\io\zero_copy_stream_impl.h
copy ..\src\google\protobuf\io\zero_copy_stream_impl_lite.h include\google\protobuf\io\zero_copy_stream_impl_lite.h
copy ..\src\google\protobuf\compiler\code_generator.h include\google\protobuf\compiler\code_generator.h
copy ..\src\google\protobuf\compiler\command_line_interface.h include\google\protobuf\compiler\command_line_interface.h
copy ..\src\google\protobuf\compiler\importer.h include\google\protobuf\compiler\importer.h
copy ..\src\google\protobuf\compiler\parser.h include\google\protobuf\compiler\parser.h
copy ..\src\google\protobuf\compiler\cpp\cpp_generator.h include\google\protobuf\compiler\cpp\cpp_generator.h
copy ..\src\google\protobuf\compiler\java\java_generator.h include\google\protobuf\compiler\java\java_generator.h
copy ..\src\google\protobuf\compiler\python\python_generator.h include\google\protobuf\compiler\python\python_generator.h
copy ..\src\google\protobuf\compiler\plugin.h include\google\protobuf\compiler\plugin.h

@ -18,7 +18,7 @@
<Configuration
Name="Debug|Win32"
OutputDirectory="Debug"
IntermediateDirectory="Debug"
IntermediateDirectory="$(OutDir)\$(ProjectName)"
ConfigurationType="4"
>
<Tool
@ -81,7 +81,7 @@
<Configuration
Name="Release|Win32"
OutputDirectory="Release"
IntermediateDirectory="Release"
IntermediateDirectory="$(OutDir)\$(ProjectName)"
ConfigurationType="4"
>
<Tool
@ -248,7 +248,11 @@
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath="..\src\google\protobuf\io\coded_stream.cc"
RelativePath="..\src\google\protobuf\stubs\atomicops_internals_x86_gcc.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\stubs\atomicops_internals_x86_msvc.cc"
>
</File>
<File
@ -256,23 +260,31 @@
>
</File>
<File
RelativePath="..\src\google\protobuf\extension_set.cc"
RelativePath="..\src\google\protobuf\stubs\once.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\generated_message_util.cc"
RelativePath="..\src\google\protobuf\stubs\stringprintf.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\message_lite.cc"
RelativePath="..\src\google\protobuf\arena.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\stubs\once.cc"
RelativePath="..\src\google\protobuf\arenastring.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\stubs\atomicops_internals_x86_msvc.cc"
RelativePath="..\src\google\protobuf\extension_set.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\generated_message_util.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\message_lite.cc"
>
</File>
<File
@ -284,15 +296,15 @@
>
</File>
<File
RelativePath="..\src\google\protobuf\io\zero_copy_stream.cc"
RelativePath="..\src\google\protobuf\io\coded_stream.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\io\zero_copy_stream_impl_lite.cc"
RelativePath="..\src\google\protobuf\io\zero_copy_stream.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\stubs\stringprintf.cc"
RelativePath="..\src\google\protobuf\io\zero_copy_stream_impl_lite.cc"
>
</File>
</Filter>

@ -18,7 +18,7 @@
<Configuration
Name="Debug|Win32"
OutputDirectory="Debug"
IntermediateDirectory="Debug"
IntermediateDirectory="$(OutDir)\$(ProjectName)"
ConfigurationType="4"
>
<Tool
@ -81,7 +81,7 @@
<Configuration
Name="Release|Win32"
OutputDirectory="Release"
IntermediateDirectory="Release"
IntermediateDirectory="$(OutDir)\$(ProjectName)"
ConfigurationType="4"
>
<Tool
@ -328,7 +328,11 @@
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath="..\src\google\protobuf\io\coded_stream.cc"
RelativePath="..\src\google\protobuf\stubs\atomicops_internals_x86_gcc.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\stubs\atomicops_internals_x86_msvc.cc"
>
</File>
<File
@ -336,19 +340,19 @@
>
</File>
<File
RelativePath="..\src\google\protobuf\descriptor.cc"
RelativePath="..\src\google\protobuf\stubs\once.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\descriptor.pb.cc"
RelativePath="..\src\google\protobuf\stubs\stringprintf.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\descriptor_database.cc"
RelativePath="..\src\google\protobuf\arena.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\dynamic_message.cc"
RelativePath="..\src\google\protobuf\arenastring.cc"
>
</File>
<File
@ -356,83 +360,99 @@
>
</File>
<File
RelativePath="..\src\google\protobuf\extension_set_heavy.cc"
RelativePath="..\src\google\protobuf\generated_message_util.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\generated_message_reflection.cc"
RelativePath="..\src\google\protobuf\map_field.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\generated_message_util.cc"
RelativePath="..\src\google\protobuf\message_lite.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\io\gzip_stream.cc"
RelativePath="..\src\google\protobuf\repeated_field.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\io\strtod.cc"
RelativePath="..\src\google\protobuf\wire_format_lite.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\compiler\importer.cc"
RelativePath="..\src\google\protobuf\io\coded_stream.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\message.cc"
RelativePath="..\src\google\protobuf\io\zero_copy_stream.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\message_lite.cc"
RelativePath="..\src\google\protobuf\io\zero_copy_stream_impl_lite.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\stubs\once.cc"
RelativePath="..\src\google\protobuf\stubs\strutil.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\stubs\atomicops_internals_x86_msvc.cc"
RelativePath="..\src\google\protobuf\stubs\strutil.h"
>
</File>
<File
RelativePath="..\src\google\protobuf\compiler\parser.cc"
RelativePath="..\src\google\protobuf\stubs\substitute.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\io\printer.cc"
RelativePath="..\src\google\protobuf\stubs\substitute.h"
>
</File>
<File
RelativePath="..\src\google\protobuf\reflection_ops.cc"
RelativePath="..\src\google\protobuf\stubs\structurally_valid.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\repeated_field.cc"
RelativePath="..\src\google\protobuf\descriptor.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\service.cc"
RelativePath="..\src\google\protobuf\descriptor_database.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\stubs\structurally_valid.cc"
RelativePath="..\src\google\protobuf\descriptor.pb.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\stubs\strutil.cc"
RelativePath="..\src\google\protobuf\dynamic_message.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\stubs\substitute.cc"
RelativePath="..\src\google\protobuf\extension_set_heavy.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\text_format.cc"
RelativePath="..\src\google\protobuf\generated_message_reflection.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\io\tokenizer.cc"
RelativePath="..\src\google\protobuf\message.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\reflection_internal.h"
>
</File>
<File
RelativePath="..\src\google\protobuf\reflection_ops.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\service.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\text_format.cc"
>
</File>
<File
@ -444,11 +464,19 @@
>
</File>
<File
RelativePath="..\src\google\protobuf\wire_format_lite.cc"
RelativePath="..\src\google\protobuf\io\gzip_stream.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\io\zero_copy_stream.cc"
RelativePath="..\src\google\protobuf\io\printer.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\io\strtod.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\io\tokenizer.cc"
>
</File>
<File
@ -456,11 +484,11 @@
>
</File>
<File
RelativePath="..\src\google\protobuf\io\zero_copy_stream_impl_lite.cc"
RelativePath="..\src\google\protobuf\compiler\importer.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\stubs\stringprintf.cc"
RelativePath="..\src\google\protobuf\compiler\parser.cc"
>
</File>
</Filter>

@ -18,7 +18,7 @@
<Configuration
Name="Debug|Win32"
OutputDirectory="Debug"
IntermediateDirectory="Debug"
IntermediateDirectory="$(OutDir)\$(ProjectName)"
ConfigurationType="4"
>
<Tool
@ -81,7 +81,7 @@
<Configuration
Name="Release|Win32"
OutputDirectory="Release"
IntermediateDirectory="Release"
IntermediateDirectory="$(OutDir)\$(ProjectName)"
ConfigurationType="4"
>
<Tool
@ -323,22 +323,6 @@
RelativePath="..\src\google\protobuf\compiler\command_line_interface.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\compiler\subprocess.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\compiler\zip_writer.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\compiler\plugin.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\compiler\plugin.pb.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\compiler\cpp\cpp_enum.cc"
>
@ -367,6 +351,10 @@
RelativePath="..\src\google\protobuf\compiler\cpp\cpp_helpers.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\compiler\cpp\cpp_map_field.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\compiler\cpp\cpp_message.cc"
>
@ -391,6 +379,10 @@
RelativePath="..\src\google\protobuf\compiler\java\java_context.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\compiler\java\java_doc_comment.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\compiler\java\java_enum.cc"
>
@ -427,6 +419,10 @@
RelativePath="..\src\google\protobuf\compiler\java\java_lazy_message_field.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\compiler\java\java_map_field.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\compiler\java\java_message.cc"
>
@ -455,10 +451,66 @@
RelativePath="..\src\google\protobuf\compiler\java\java_string_field.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\compiler\javanano\javanano_enum.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\compiler\javanano\javanano_enum_field.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\compiler\javanano\javanano_extension.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\compiler\javanano\javanano_field.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\compiler\javanano\javanano_file.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\compiler\javanano\javanano_generator.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\compiler\javanano\javanano_helpers.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\compiler\javanano\javanano_message.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\compiler\javanano\javanano_message_field.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\compiler\javanano\javanano_primitive_field.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\compiler\plugin.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\compiler\plugin.pb.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\compiler\python\python_generator.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\compiler\subprocess.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\compiler\zip_writer.cc"
>
</File>
</Filter>
</Files>
<Globals>

@ -19,7 +19,7 @@
<Configuration
Name="Debug|Win32"
OutputDirectory="Debug"
IntermediateDirectory="Debug"
IntermediateDirectory="$(OutDir)\$(ProjectName)"
ConfigurationType="1"
>
<Tool
@ -96,7 +96,7 @@
<Configuration
Name="Release|Win32"
OutputDirectory="Release"
IntermediateDirectory="Release"
IntermediateDirectory="$(OutDir)\$(ProjectName)"
ConfigurationType="1"
>
<Tool

@ -18,7 +18,7 @@
<Configuration
Name="Debug|Win32"
OutputDirectory="Debug"
IntermediateDirectory="Debug"
IntermediateDirectory="$(OutDir)\$(ProjectName)"
ConfigurationType="1"
>
<Tool
@ -91,7 +91,7 @@
<Configuration
Name="Release|Win32"
OutputDirectory="Release"
IntermediateDirectory="Release"
IntermediateDirectory="$(OutDir)\$(ProjectName)"
ConfigurationType="1"
>
<Tool

@ -19,7 +19,7 @@
<Configuration
Name="Debug|Win32"
OutputDirectory="Debug"
IntermediateDirectory="Debug"
IntermediateDirectory="$(OutDir)\$(ProjectName)"
ConfigurationType="1"
>
<Tool
@ -96,7 +96,7 @@
<Configuration
Name="Release|Win32"
OutputDirectory="Release"
IntermediateDirectory="Release"
IntermediateDirectory="$(OutDir)\$(ProjectName)"
ConfigurationType="1"
>
<Tool

@ -19,7 +19,7 @@
<Configuration
Name="Debug|Win32"
OutputDirectory="Debug"
IntermediateDirectory="Debug"
IntermediateDirectory="$(OutDir)\$(ProjectName)"
ConfigurationType="1"
>
<Tool
@ -96,7 +96,7 @@
<Configuration
Name="Release|Win32"
OutputDirectory="Release"
IntermediateDirectory="Release"
IntermediateDirectory="$(OutDir)\$(ProjectName)"
ConfigurationType="1"
>
<Tool
@ -247,23 +247,23 @@
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath="..\src\google\protobuf\io\coded_stream_unittest.cc"
RelativePath="..\src\google\protobuf\arenastring_unittest.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\compiler\command_line_interface_unittest.cc"
RelativePath="..\src\google\protobuf\arena_unittest.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\compiler\mock_code_generator.cc"
RelativePath="..\src\google\protobuf\compiler\command_line_interface_unittest.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\stubs\common_unittest.cc"
RelativePath="..\src\google\protobuf\compiler\cpp\cpp_bootstrap_unittest.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\compiler\cpp\cpp_bootstrap_unittest.cc"
RelativePath="..\src\google\protobuf\compiler\cpp\cpp_plugin_unittest.cc"
>
</File>
<File
@ -271,23 +271,23 @@
>
</File>
<File
RelativePath=".\google\protobuf\compiler\cpp\cpp_test_bad_identifiers.pb.cc"
RelativePath="..\src\google\protobuf\compiler\importer_unittest.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\compiler\cpp\cpp_unittest.cc"
RelativePath="..\src\google\protobuf\compiler\java\java_doc_comment_unittest.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\compiler\cpp\cpp_plugin_unittest.cc"
RelativePath="..\src\google\protobuf\compiler\java\java_plugin_unittest.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\compiler\java\java_plugin_unittest.cc"
RelativePath="..\src\google\protobuf\compiler\mock_code_generator.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\compiler\java\java_doc_comment_unittest.cc"
RelativePath="..\src\google\protobuf\compiler\parser_unittest.cc"
>
</File>
<File
@ -302,6 +302,10 @@
RelativePath="..\src\google\protobuf\descriptor_unittest.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\drop_unknown_fields_test.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\dynamic_message_unittest.cc"
>
@ -311,19 +315,35 @@
>
</File>
<File
RelativePath="..\src\google\protobuf\testing\file.cc"
RelativePath="..\src\google\protobuf\generated_message_reflection_unittest.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\generated_message_reflection_unittest.cc"
RelativePath="..\src\google\protobuf\io\coded_stream_unittest.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\testing\googletest.cc"
RelativePath="..\src\google\protobuf\io\printer_unittest.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\compiler\importer_unittest.cc"
RelativePath="..\src\google\protobuf\io\tokenizer_unittest.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\io\zero_copy_stream_unittest.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\map_field_test.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\map_test.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\map_test_util.cc"
>
</File>
<File
@ -331,37 +351,49 @@
>
</File>
<File
RelativePath="..\src\google\protobuf\stubs\once_unittest.cc"
RelativePath="..\src\google\protobuf\no_field_presence_test.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\compiler\parser_unittest.cc"
RelativePath="..\src\google\protobuf\preserve_unknown_enum_test.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\io\printer_unittest.cc"
RelativePath="..\src\google\protobuf\proto3_arena_unittest.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\reflection_ops_unittest.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\repeated_field_reflection_unittest.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\repeated_field_unittest.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\repeated_field_reflection_unittest.cc"
RelativePath="..\src\google\protobuf\stubs\common_unittest.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\stubs\structurally_valid_unittest.cc"
RelativePath="..\src\google\protobuf\stubs\once_unittest.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\stubs\stringprintf_unittest.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\stubs\structurally_valid_unittest.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\stubs\strutil_unittest.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\stubs\template_util_unittest.cc"
>
@ -371,7 +403,11 @@
>
</File>
<File
RelativePath="..\src\google\protobuf\stubs\strutil_unittest.cc"
RelativePath="..\src\google\protobuf\testing\file.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\testing\googletest.cc"
>
</File>
<File
@ -383,25 +419,61 @@
>
</File>
<File
RelativePath="..\src\google\protobuf\io\tokenizer_unittest.cc"
RelativePath="..\src\google\protobuf\unknown_field_set_unittest.cc"
>
</File>
<File
RelativePath=".\google\protobuf\unittest.pb.cc"
RelativePath="..\src\google\protobuf\wire_format_unittest.cc"
>
</File>
<File
RelativePath=".\google\protobuf\compiler\cpp\cpp_test_bad_identifiers.pb.cc"
>
</File>
<File
RelativePath=".\google\protobuf\map_lite_unittest.pb.cc"
>
</File>
<File
RelativePath=".\google\protobuf\map_proto2_unittest.pb.cc"
>
</File>
<File
RelativePath=".\google\protobuf\map_unittest.pb.cc"
>
</File>
<File
RelativePath=".\google\protobuf\unittest_arena.pb.cc"
>
</File>
<File
RelativePath=".\google\protobuf\unittest_custom_options.pb.cc"
>
</File>
<File
RelativePath=".\google\protobuf\unittest_drop_unknown_fields.pb.cc"
>
</File>
<File
RelativePath=".\google\protobuf\unittest_embed_optimize_for.pb.cc"
>
</File>
<File
RelativePath=".\google\protobuf\unittest_empty.pb.cc"
>
</File>
<File
RelativePath=".\google\protobuf\unittest_import_lite.pb.cc"
>
</File>
<File
RelativePath=".\google\protobuf\unittest_import.pb.cc"
>
</File>
<File
RelativePath=".\google\protobuf\unittest_import_public_lite.pb.cc"
>
</File>
<File
RelativePath=".\google\protobuf\unittest_import_public.pb.cc"
>
@ -410,12 +482,24 @@
RelativePath=".\google\protobuf\unittest_lite_imports_nonlite.pb.cc"
>
</File>
<File
RelativePath=".\google\protobuf\unittest_lite.pb.cc"
>
</File>
<File
RelativePath=".\google\protobuf\unittest_mset.pb.cc"
>
</File>
<File
RelativePath=".\google\protobuf\unittest_optimize_for.pb.cc"
RelativePath=".\google\protobuf\unittest_no_arena_import.pb.cc"
>
</File>
<File
RelativePath=".\google\protobuf\unittest_no_arena.pb.cc"
>
</File>
<File
RelativePath=".\google\protobuf\unittest_no_field_presence.pb.cc"
>
</File>
<File
@ -423,29 +507,33 @@
>
</File>
<File
RelativePath="..\src\google\protobuf\unknown_field_set_unittest.cc"
RelativePath=".\google\protobuf\unittest_optimize_for.pb.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\wire_format_unittest.cc"
RelativePath=".\google\protobuf\unittest.pb.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\io\zero_copy_stream_unittest.cc"
RelativePath=".\google\protobuf\unittest_preserve_unknown_enum.pb.cc"
>
</File>
<File
RelativePath=".\google\protobuf\unittest_proto3_arena.pb.cc"
>
</File>
</Filter>
<File
RelativePath="..\src\google\protobuf\compiler\cpp\cpp_test_bad_identifiers.proto"
RelativePath="..\src\google\protobuf\map_lite_unittest.proto"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating cpp_test_bad_identifiers.pb.{h,cc}..."
CommandLine="Debug\protoc -I../src --cpp_out=. ../src/google/protobuf/compiler/cpp/cpp_test_bad_identifiers.proto&#x0D;&#x0A;"
Outputs="google\protobuf\compiler\cpp\cpp_test_bad_identifiers.pb.h;google\protobuf\compiler\cpp\cpp_test_bad_identifiers.pb.cc"
Description="Generating map_lite_unittest.pb.{h,cc}..."
CommandLine="Debug\protoc -I../src --cpp_out=. ../src/google/protobuf/map_lite_unittest.proto"
Outputs="google\protobuf\map_lite_unittest.pb.h;google\protobuf\map_lite_unittest.pb.cc"
/>
</FileConfiguration>
<FileConfiguration
@ -453,9 +541,57 @@
>
<Tool
Name="VCCustomBuildTool"
Description="Generating cpp_test_bad_identifiers.pb.{h,cc}..."
CommandLine="Release\protoc -I../src --cpp_out=. ../src/google/protobuf/compiler/cpp/cpp_test_bad_identifiers.proto&#x0D;&#x0A;"
Outputs="google\protobuf\compiler\cpp\cpp_test_bad_identifiers.pb.h;google\protobuf\compiler\cpp\cpp_test_bad_identifiers.pb.cc"
Description="Generating map_lite_unittest.pb.{h,cc}..."
CommandLine="Release\protoc -I../src --cpp_out=. ../src/google/protobuf/map_lite_unittest.proto"
Outputs="google\protobuf\map_lite_unittest.pb.h;google\protobuf\map_lite_unittest.pb.cc"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\google\protobuf\map_proto2_unittest.proto"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating map_proto2_unittest.pb.{h,cc}..."
CommandLine="Debug\protoc -I../src --cpp_out=. ../src/google/protobuf/map_proto2_unittest.proto"
Outputs="google\protobuf\map_proto2_unittest.pb.h;google\protobuf\map_proto2_unittest.pb.cc"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating map_proto2_unittest.pb.{h,cc}..."
CommandLine="Release\protoc -I../src --cpp_out=. ../src/google/protobuf/map_proto2_unittest.proto"
Outputs="google\protobuf\map_proto2_unittest.pb.h;google\protobuf\map_proto2_unittest.pb.cc"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\google\protobuf\map_unittest.proto"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating map_unittest.pb.{h,cc}..."
CommandLine="Debug\protoc -I../src --cpp_out=. ../src/google/protobuf/map_unittest.proto"
Outputs="google\protobuf\map_unittest.pb.h;google\protobuf\map_unittest.pb.cc"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating map_unittest.pb.{h,cc}..."
CommandLine="Release\protoc -I../src --cpp_out=. ../src/google/protobuf/map_unittest.proto"
Outputs="google\protobuf\map_unittest.pb.h;google\protobuf\map_unittest.pb.cc"
/>
</FileConfiguration>
</File>
@ -468,7 +604,7 @@
<Tool
Name="VCCustomBuildTool"
Description="Generating unittest.pb.{h,cc}..."
CommandLine="Debug\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest.proto&#x0D;&#x0A;"
CommandLine="Debug\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest.proto"
Outputs="google\protobuf\unittest.pb.h;google\protobuf\unittest.pb.cc"
/>
</FileConfiguration>
@ -478,11 +614,35 @@
<Tool
Name="VCCustomBuildTool"
Description="Generating unittest.pb.{h,cc}..."
CommandLine="Release\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest.proto&#x0D;&#x0A;"
CommandLine="Release\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest.proto"
Outputs="google\protobuf\unittest.pb.h;google\protobuf\unittest.pb.cc"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\google\protobuf\unittest_arena.proto"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating unittest_arena.pb.{h,cc}..."
CommandLine="Debug\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_arena.proto"
Outputs="google\protobuf\unittest_arena.pb.h;google\protobuf\unittest_arena.pb.cc"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating unittest_arena.pb.{h,cc}..."
CommandLine="Release\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_arena.proto"
Outputs="google\protobuf\unittest_arena.pb.h;google\protobuf\unittest_arena.pb.cc"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\google\protobuf\unittest_custom_options.proto"
>
@ -492,7 +652,7 @@
<Tool
Name="VCCustomBuildTool"
Description="Generating unittest_custom_options.pb.{h,cc}..."
CommandLine="Debug\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_custom_options.proto&#x0D;&#x0A;"
CommandLine="Debug\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_custom_options.proto"
Outputs="google\protobuf\unittest_custom_options.pb.h;google\protobuf\unittest_custom_options.pb.cc"
/>
</FileConfiguration>
@ -502,11 +662,35 @@
<Tool
Name="VCCustomBuildTool"
Description="Generating unittest_custom_options.pb.{h,cc}..."
CommandLine="Release\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_custom_options.proto&#x0D;&#x0A;"
CommandLine="Release\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_custom_options.proto"
Outputs="google\protobuf\unittest_custom_options.pb.h;google\protobuf\unittest_custom_options.pb.cc"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\google\protobuf\unittest_drop_unknown_fields.proto"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating unittest_drop_unknown_fields.pb.{h,cc}..."
CommandLine="Debug\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_drop_unknown_fields.proto"
Outputs="google\protobuf\unittest_drop_unknown_fields.pb.h;google\protobuf\unittest_drop_unknown_fields.pb.cc"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating unittest_drop_unknown_fields.pb.{h,cc}..."
CommandLine="Release\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_drop_unknown_fields.proto"
Outputs="google\protobuf\unittest_drop_unknown_fields.pb.h;google\protobuf\unittest_drop_unknown_fields.pb.cc"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\google\protobuf\unittest_embed_optimize_for.proto"
>
@ -516,7 +700,7 @@
<Tool
Name="VCCustomBuildTool"
Description="Generating unittest_embed_optimize_for.pb.{h,cc}..."
CommandLine="Debug\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_embed_optimize_for.proto&#x0D;&#x0A;"
CommandLine="Debug\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_embed_optimize_for.proto"
Outputs="google\protobuf\unittest_embed_optimize_for.pb.h;google\protobuf\unittest_embed_optimize_for.pb.cc"
/>
</FileConfiguration>
@ -526,11 +710,59 @@
<Tool
Name="VCCustomBuildTool"
Description="Generating unittest_embed_optimize_for.pb.{h,cc}..."
CommandLine="Release\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_embed_optimize_for.proto&#x0D;&#x0A;"
CommandLine="Release\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_embed_optimize_for.proto"
Outputs="google\protobuf\unittest_embed_optimize_for.pb.h;google\protobuf\unittest_embed_optimize_for.pb.cc"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\google\protobuf\unittest_empty.proto"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating unittest_empty.pb.{h,cc}..."
CommandLine="Debug\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_empty.proto"
Outputs="google\protobuf\unittest_empty.pb.h;google\protobuf\unittest_empty.pb.cc"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating unittest_empty.pb.{h,cc}..."
CommandLine="Release\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_empty.proto"
Outputs="google\protobuf\unittest_empty.pb.h;google\protobuf\unittest_empty.pb.cc"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\google\protobuf\unittest_import_lite.proto"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating unittest_import_lite.pb.{h,cc}..."
CommandLine="Debug\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_import_lite.proto"
Outputs="google\protobuf\unittest_import_lite.pb.h;google\protobuf\unittest_import_lite.pb.cc"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating unittest_import_lite.pb.{h,cc}..."
CommandLine="Release\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_import_lite.proto"
Outputs="google\protobuf\unittest_import_lite.pb.h;google\protobuf\unittest_import_lite.pb.cc"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\google\protobuf\unittest_import.proto"
>
@ -540,7 +772,7 @@
<Tool
Name="VCCustomBuildTool"
Description="Generating unittest_import.pb.{h,cc}..."
CommandLine="Debug\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_import.proto&#x0D;&#x0A;"
CommandLine="Debug\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_import.proto"
Outputs="google\protobuf\unittest_import.pb.h;google\protobuf\unittest_import.pb.cc"
/>
</FileConfiguration>
@ -550,11 +782,35 @@
<Tool
Name="VCCustomBuildTool"
Description="Generating unittest_import.pb.{h,cc}..."
CommandLine="Release\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_import.proto&#x0D;&#x0A;"
CommandLine="Release\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_import.proto"
Outputs="google\protobuf\unittest_import.pb.h;google\protobuf\unittest_import.pb.cc"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\google\protobuf\unittest_import_public_lite.proto"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating unittest_import_public_lite.pb.{h,cc}..."
CommandLine="Debug\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_import_public_lite.proto"
Outputs="google\protobuf\unittest_import_public_lite.pb.h;google\protobuf\unittest_import_public_lite.pb.cc"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating unittest_import_public_lite.pb.{h,cc}..."
CommandLine="Release\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_import_public_lite.proto"
Outputs="google\protobuf\unittest_import_public_lite.pb.h;google\protobuf\unittest_import_public_lite.pb.cc"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\google\protobuf\unittest_import_public.proto"
>
@ -564,7 +820,7 @@
<Tool
Name="VCCustomBuildTool"
Description="Generating unittest_import_public.pb.{h,cc}..."
CommandLine="Debug\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_import_public.proto&#x0D;&#x0A;"
CommandLine="Debug\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_import_public.proto"
Outputs="google\protobuf\unittest_import_public.pb.h;google\protobuf\unittest_import_public.pb.cc"
/>
</FileConfiguration>
@ -574,7 +830,7 @@
<Tool
Name="VCCustomBuildTool"
Description="Generating unittest_import_public.pb.{h,cc}..."
CommandLine="Release\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_import_public.proto&#x0D;&#x0A;"
CommandLine="Release\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_import_public.proto"
Outputs="google\protobuf\unittest_import_public.pb.h;google\protobuf\unittest_import_public.pb.cc"
/>
</FileConfiguration>
@ -588,7 +844,7 @@
<Tool
Name="VCCustomBuildTool"
Description="Generating unittest_lite_imports_nonlite.pb.{h,cc}..."
CommandLine="Debug\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_lite_imports_nonlite.proto&#x0D;&#x0A;"
CommandLine="Debug\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_lite_imports_nonlite.proto"
Outputs="google\protobuf\unittest_lite_imports_nonlite.pb.h;google\protobuf\unittest_lite_imports_nonlite.pb.cc"
/>
</FileConfiguration>
@ -598,11 +854,35 @@
<Tool
Name="VCCustomBuildTool"
Description="Generating unittest_lite_imports_nonlite.pb.{h,cc}..."
CommandLine="Release\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_lite_imports_nonlite.proto&#x0D;&#x0A;"
CommandLine="Release\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_lite_imports_nonlite.proto"
Outputs="google\protobuf\unittest_lite_imports_nonlite.pb.h;google\protobuf\unittest_lite_imports_nonlite.pb.cc"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\google\protobuf\unittest_lite.proto"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating unittest_lite.pb.{h,cc}..."
CommandLine="Debug\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_lite.proto"
Outputs="google\protobuf\unittest_lite.pb.h;google\protobuf\unittest_lite.pb.cc"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating unittest_lite.pb.{h,cc}..."
CommandLine="Release\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_lite.proto"
Outputs="google\protobuf\unittest_lite.pb.h;google\protobuf\unittest_lite.pb.cc"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\google\protobuf\unittest_mset.proto"
>
@ -612,7 +892,7 @@
<Tool
Name="VCCustomBuildTool"
Description="Generating unittest_mset.pb.{h,cc}..."
CommandLine="Debug\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_mset.proto&#x0D;&#x0A;"
CommandLine="Debug\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_mset.proto"
Outputs="google\protobuf\unittest_mset.pb.h;google\protobuf\unittest_mset.pb.cc"
/>
</FileConfiguration>
@ -622,22 +902,22 @@
<Tool
Name="VCCustomBuildTool"
Description="Generating unittest_mset.pb.{h,cc}..."
CommandLine="Release\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_mset.proto&#x0D;&#x0A;"
CommandLine="Release\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_mset.proto"
Outputs="google\protobuf\unittest_mset.pb.h;google\protobuf\unittest_mset.pb.cc"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\google\protobuf\unittest_optimize_for.proto"
RelativePath="..\src\google\protobuf\unittest_no_arena_import.proto"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating unittest_optimize_for.pb.{h,cc}..."
CommandLine="Debug\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_optimize_for.proto&#x0D;&#x0A;"
Outputs="google\protobuf\unittest_optimize_for.pb.h;google\protobuf\unittest_optimize_for.pb.cc"
Description="Generating unittest_no_arena_import.pb.{h,cc}..."
CommandLine="Debug\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_no_arena_import.proto"
Outputs="google\protobuf\unittest_no_arena_import.pb.h;google\protobuf\unittest_no_arena_import.pb.cc"
/>
</FileConfiguration>
<FileConfiguration
@ -645,9 +925,57 @@
>
<Tool
Name="VCCustomBuildTool"
Description="Generating unittest_optimize_for.pb.{h,cc}..."
CommandLine="Release\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_optimize_for.proto&#x0D;&#x0A;"
Outputs="google\protobuf\unittest_optimize_for.pb.h;google\protobuf\unittest_optimize_for.pb.cc"
Description="Generating unittest_no_arena_import.pb.{h,cc}..."
CommandLine="Release\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_no_arena_import.proto"
Outputs="google\protobuf\unittest_no_arena_import.pb.h;google\protobuf\unittest_no_arena_import.pb.cc"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\google\protobuf\unittest_no_arena.proto"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating unittest_no_arena.pb.{h,cc}..."
CommandLine="Debug\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_no_arena.proto"
Outputs="google\protobuf\unittest_no_arena.pb.h;google\protobuf\unittest_no_arena.pb.cc"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating unittest_no_arena.pb.{h,cc}..."
CommandLine="Release\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_no_arena.proto"
Outputs="google\protobuf\unittest_no_arena.pb.h;google\protobuf\unittest_no_arena.pb.cc"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\google\protobuf\unittest_no_field_presence.proto"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating unittest_no_field_presence.pb.{h,cc}..."
CommandLine="Debug\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_no_field_presence.proto"
Outputs="google\protobuf\unittest_no_field_presence.pb.h;google\protobuf\unittest_no_field_presence.pb.cc"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating unittest_no_field_presence.pb.{h,cc}..."
CommandLine="Release\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_no_field_presence.proto"
Outputs="google\protobuf\unittest_no_field_presence.pb.h;google\protobuf\unittest_no_field_presence.pb.cc"
/>
</FileConfiguration>
</File>
@ -660,7 +988,7 @@
<Tool
Name="VCCustomBuildTool"
Description="Generating unittest_no_generic_services.pb.{h,cc}..."
CommandLine="Debug\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_no_generic_services.proto&#x0D;&#x0A;"
CommandLine="Debug\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_no_generic_services.proto"
Outputs="google\protobuf\unittest_no_generic_services.pb.h;google\protobuf\unittest_no_generic_services.pb.cc"
/>
</FileConfiguration>
@ -670,11 +998,107 @@
<Tool
Name="VCCustomBuildTool"
Description="Generating unittest_no_generic_services.pb.{h,cc}..."
CommandLine="Release\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_no_generic_services.proto&#x0D;&#x0A;"
CommandLine="Release\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_no_generic_services.proto"
Outputs="google\protobuf\unittest_no_generic_services.pb.h;google\protobuf\unittest_no_generic_services.pb.cc"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\google\protobuf\unittest_optimize_for.proto"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating unittest_optimize_for.pb.{h,cc}..."
CommandLine="Debug\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_optimize_for.proto"
Outputs="google\protobuf\unittest_optimize_for.pb.h;google\protobuf\unittest_optimize_for.pb.cc"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating unittest_optimize_for.pb.{h,cc}..."
CommandLine="Release\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_optimize_for.proto"
Outputs="google\protobuf\unittest_optimize_for.pb.h;google\protobuf\unittest_optimize_for.pb.cc"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\google\protobuf\unittest_preserve_unknown_enum.proto"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating unittest_preserve_unknown_enum.pb.{h,cc}..."
CommandLine="Debug\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_preserve_unknown_enum.proto"
Outputs="google\protobuf\unittest_preserve_unknown_enum.pb.h;google\protobuf\unittest_preserve_unknown_enum.pb.cc"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating unittest_preserve_unknown_enum.pb.{h,cc}..."
CommandLine="Release\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_preserve_unknown_enum.proto"
Outputs="google\protobuf\unittest_preserve_unknown_enum.pb.h;google\protobuf\unittest_preserve_unknown_enum.pb.cc"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\google\protobuf\unittest_proto3_arena.proto"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating unittest_proto3_arena.pb.{h,cc}..."
CommandLine="Debug\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_proto3_arena.proto"
Outputs="google\protobuf\unittest_proto3_arena.pb.h;google\protobuf\unittest_proto3_arena.pb.cc"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating unittest_proto3_arena.pb.{h,cc}..."
CommandLine="Release\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_proto3_arena.proto"
Outputs="google\protobuf\unittest_proto3_arena.pb.h;google\protobuf\unittest_proto3_arena.pb.cc"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\google\protobuf\compiler\cpp\cpp_test_bad_identifiers.proto"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating cpp_test_bad_identifiers.pb.{h,cc}..."
CommandLine="Debug\protoc -I../src --cpp_out=. ../src/google/protobuf/compiler/cpp/cpp_test_bad_identifiers.proto"
Outputs="google\protobuf\compiler\cpp\cpp_test_bad_identifiers.pb.h;google\protobuf\compiler\cpp\cpp_test_bad_identifiers.pb.cc"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating cpp_test_bad_identifiers.pb.{h,cc}..."
CommandLine="Release\protoc -I../src --cpp_out=. ../src/google/protobuf/compiler/cpp/cpp_test_bad_identifiers.proto"
Outputs="google\protobuf\compiler\cpp\cpp_test_bad_identifiers.pb.h;google\protobuf\compiler\cpp\cpp_test_bad_identifiers.pb.cc"
/>
</FileConfiguration>
</File>
</Files>
<Globals>
</Globals>

Loading…
Cancel
Save