Commit fcb8a50b authored by xiaofeng@google.com's avatar xiaofeng@google.com

Update MSVC project files and fix compilation issues in MSVC.

parent b55a20fa
...@@ -49,8 +49,8 @@ void RepeatedPtrFieldBase::Reserve(int new_size) { ...@@ -49,8 +49,8 @@ void RepeatedPtrFieldBase::Reserve(int new_size) {
total_size_ = max(kMinRepeatedFieldAllocationSize, total_size_ = max(kMinRepeatedFieldAllocationSize,
max(total_size_ * 2, new_size)); max(total_size_ * 2, new_size));
elements_ = new void*[total_size_]; elements_ = new void*[total_size_];
if (old_elements != NULL) {
memcpy(elements_, old_elements, allocated_size_ * sizeof(elements_[0])); memcpy(elements_, old_elements, allocated_size_ * sizeof(elements_[0]));
if (old_elements != initial_space_) {
delete [] old_elements; delete [] old_elements;
} }
} }
...@@ -61,29 +61,16 @@ void RepeatedPtrFieldBase::Swap(RepeatedPtrFieldBase* other) { ...@@ -61,29 +61,16 @@ void RepeatedPtrFieldBase::Swap(RepeatedPtrFieldBase* other) {
int swap_current_size = current_size_; int swap_current_size = current_size_;
int swap_allocated_size = allocated_size_; int swap_allocated_size = allocated_size_;
int swap_total_size = total_size_; int swap_total_size = total_size_;
// We may not be using initial_space_ but it's not worth checking. Just
// copy it anyway.
void* swap_initial_space[kInitialSize];
memcpy(swap_initial_space, initial_space_, sizeof(initial_space_));
elements_ = other->elements_; elements_ = other->elements_;
current_size_ = other->current_size_; current_size_ = other->current_size_;
allocated_size_ = other->allocated_size_; allocated_size_ = other->allocated_size_;
total_size_ = other->total_size_; total_size_ = other->total_size_;
memcpy(initial_space_, other->initial_space_, sizeof(initial_space_));
other->elements_ = swap_elements; other->elements_ = swap_elements;
other->current_size_ = swap_current_size; other->current_size_ = swap_current_size;
other->allocated_size_ = swap_allocated_size; other->allocated_size_ = swap_allocated_size;
other->total_size_ = swap_total_size; other->total_size_ = swap_total_size;
memcpy(other->initial_space_, swap_initial_space, sizeof(swap_initial_space));
if (elements_ == other->initial_space_) {
elements_ = initial_space_;
}
if (other->elements_ == initial_space_) {
other->elements_ = other->initial_space_;
}
} }
string* StringTypeHandlerBase::New() { string* StringTypeHandlerBase::New() {
......
...@@ -171,10 +171,6 @@ class RepeatedField { ...@@ -171,10 +171,6 @@ class RepeatedField {
private: private:
static const int kInitialSize = 0; static const int kInitialSize = 0;
// This cannot be the last attribute defined if kInitialSize is 0 or
// the checks elements_ != initial_space_ to delete are not valid.
Element initial_space_[kInitialSize];
Element* elements_; Element* elements_;
int current_size_; int current_size_;
int total_size_; int total_size_;
...@@ -317,10 +313,6 @@ class LIBPROTOBUF_EXPORT RepeatedPtrFieldBase { ...@@ -317,10 +313,6 @@ class LIBPROTOBUF_EXPORT RepeatedPtrFieldBase {
static const int kInitialSize = 0; static const int kInitialSize = 0;
// This cannot be the last attribute defined if kInitialSize is 0 or
// the checks elements_ != initial_space_ to delete are not valid.
void* initial_space_[kInitialSize];
void** elements_; void** elements_;
int current_size_; int current_size_;
int allocated_size_; int allocated_size_;
...@@ -557,14 +549,14 @@ class RepeatedPtrField : public internal::RepeatedPtrFieldBase { ...@@ -557,14 +549,14 @@ class RepeatedPtrField : public internal::RepeatedPtrFieldBase {
template <typename Element> template <typename Element>
inline RepeatedField<Element>::RepeatedField() inline RepeatedField<Element>::RepeatedField()
: elements_(initial_space_), : elements_(NULL),
current_size_(0), current_size_(0),
total_size_(kInitialSize) { total_size_(kInitialSize) {
} }
template <typename Element> template <typename Element>
inline RepeatedField<Element>::RepeatedField(const RepeatedField& other) inline RepeatedField<Element>::RepeatedField(const RepeatedField& other)
: elements_(initial_space_), : elements_(NULL),
current_size_(0), current_size_(0),
total_size_(kInitialSize) { total_size_(kInitialSize) {
CopyFrom(other); CopyFrom(other);
...@@ -573,7 +565,7 @@ inline RepeatedField<Element>::RepeatedField(const RepeatedField& other) ...@@ -573,7 +565,7 @@ inline RepeatedField<Element>::RepeatedField(const RepeatedField& other)
template <typename Element> template <typename Element>
template <typename Iter> template <typename Iter>
inline RepeatedField<Element>::RepeatedField(Iter begin, const Iter& end) inline RepeatedField<Element>::RepeatedField(Iter begin, const Iter& end)
: elements_(initial_space_), : elements_(NULL),
current_size_(0), current_size_(0),
total_size_(kInitialSize) { total_size_(kInitialSize) {
for (; begin != end; ++begin) { for (; begin != end; ++begin) {
...@@ -583,9 +575,7 @@ inline RepeatedField<Element>::RepeatedField(Iter begin, const Iter& end) ...@@ -583,9 +575,7 @@ inline RepeatedField<Element>::RepeatedField(Iter begin, const Iter& end)
template <typename Element> template <typename Element>
RepeatedField<Element>::~RepeatedField() { RepeatedField<Element>::~RepeatedField() {
if (elements_ != initial_space_) {
delete [] elements_; delete [] elements_;
}
} }
template <typename Element> template <typename Element>
...@@ -682,9 +672,11 @@ inline void RepeatedField<Element>::Clear() { ...@@ -682,9 +672,11 @@ inline void RepeatedField<Element>::Clear() {
template <typename Element> template <typename Element>
inline void RepeatedField<Element>::MergeFrom(const RepeatedField& other) { inline void RepeatedField<Element>::MergeFrom(const RepeatedField& other) {
if (other.current_size_ != 0) {
Reserve(current_size_ + other.current_size_); Reserve(current_size_ + other.current_size_);
CopyArray(elements_ + current_size_, other.elements_, other.current_size_); CopyArray(elements_ + current_size_, other.elements_, other.current_size_);
current_size_ += other.current_size_; current_size_ += other.current_size_;
}
} }
template <typename Element> template <typename Element>
...@@ -710,27 +702,14 @@ void RepeatedField<Element>::Swap(RepeatedField* other) { ...@@ -710,27 +702,14 @@ void RepeatedField<Element>::Swap(RepeatedField* other) {
Element* swap_elements = elements_; Element* swap_elements = elements_;
int swap_current_size = current_size_; int swap_current_size = current_size_;
int swap_total_size = total_size_; int swap_total_size = total_size_;
// We may not be using initial_space_ but it's not worth checking. Just
// copy it anyway.
Element swap_initial_space[kInitialSize];
MoveArray(swap_initial_space, initial_space_, kInitialSize);
elements_ = other->elements_; elements_ = other->elements_;
current_size_ = other->current_size_; current_size_ = other->current_size_;
total_size_ = other->total_size_; total_size_ = other->total_size_;
MoveArray(initial_space_, other->initial_space_, kInitialSize);
other->elements_ = swap_elements; other->elements_ = swap_elements;
other->current_size_ = swap_current_size; other->current_size_ = swap_current_size;
other->total_size_ = swap_total_size; other->total_size_ = swap_total_size;
MoveArray(other->initial_space_, swap_initial_space, kInitialSize);
if (elements_ == other->initial_space_) {
elements_ = initial_space_;
}
if (other->elements_ == initial_space_) {
other->elements_ = other->initial_space_;
}
} }
template <typename Element> template <typename Element>
...@@ -761,7 +740,7 @@ RepeatedField<Element>::end() const { ...@@ -761,7 +740,7 @@ RepeatedField<Element>::end() const {
template <typename Element> template <typename Element>
inline int RepeatedField<Element>::SpaceUsedExcludingSelf() const { inline int RepeatedField<Element>::SpaceUsedExcludingSelf() const {
return (elements_ != initial_space_) ? total_size_ * sizeof(elements_[0]) : 0; return (elements_ != NULL) ? total_size_ * sizeof(elements_[0]) : 0;
} }
// Avoid inlining of Reserve(): new, copy, and delete[] lead to a significant // Avoid inlining of Reserve(): new, copy, and delete[] lead to a significant
...@@ -774,8 +753,8 @@ void RepeatedField<Element>::Reserve(int new_size) { ...@@ -774,8 +753,8 @@ void RepeatedField<Element>::Reserve(int new_size) {
total_size_ = max(google::protobuf::internal::kMinRepeatedFieldAllocationSize, total_size_ = max(google::protobuf::internal::kMinRepeatedFieldAllocationSize,
max(total_size_ * 2, new_size)); max(total_size_ * 2, new_size));
elements_ = new Element[total_size_]; elements_ = new Element[total_size_];
if (old_elements != NULL) {
MoveArray(elements_, old_elements, current_size_); MoveArray(elements_, old_elements, current_size_);
if (old_elements != initial_space_) {
delete [] old_elements; delete [] old_elements;
} }
} }
...@@ -821,7 +800,7 @@ struct ElementCopier<Element, true> { ...@@ -821,7 +800,7 @@ struct ElementCopier<Element, true> {
namespace internal { namespace internal {
inline RepeatedPtrFieldBase::RepeatedPtrFieldBase() inline RepeatedPtrFieldBase::RepeatedPtrFieldBase()
: elements_(initial_space_), : elements_(NULL),
current_size_(0), current_size_(0),
allocated_size_(0), allocated_size_(0),
total_size_(kInitialSize) { total_size_(kInitialSize) {
...@@ -832,9 +811,7 @@ void RepeatedPtrFieldBase::Destroy() { ...@@ -832,9 +811,7 @@ void RepeatedPtrFieldBase::Destroy() {
for (int i = 0; i < allocated_size_; i++) { for (int i = 0; i < allocated_size_; i++) {
TypeHandler::Delete(cast<TypeHandler>(elements_[i])); TypeHandler::Delete(cast<TypeHandler>(elements_[i]));
} }
if (elements_ != initial_space_) {
delete [] elements_; delete [] elements_;
}
} }
inline int RepeatedPtrFieldBase::size() const { inline int RepeatedPtrFieldBase::size() const {
...@@ -930,7 +907,7 @@ inline void RepeatedPtrFieldBase::SwapElements(int index1, int index2) { ...@@ -930,7 +907,7 @@ inline void RepeatedPtrFieldBase::SwapElements(int index1, int index2) {
template <typename TypeHandler> template <typename TypeHandler>
inline int RepeatedPtrFieldBase::SpaceUsedExcludingSelf() const { inline int RepeatedPtrFieldBase::SpaceUsedExcludingSelf() const {
int allocated_bytes = int allocated_bytes =
(elements_ != initial_space_) ? total_size_ * sizeof(elements_[0]) : 0; (elements_ != NULL) ? total_size_ * sizeof(elements_[0]) : 0;
for (int i = 0; i < allocated_size_; ++i) { for (int i = 0; i < allocated_size_; ++i) {
allocated_bytes += TypeHandler::SpaceUsed(*cast<TypeHandler>(elements_[i])); allocated_bytes += TypeHandler::SpaceUsed(*cast<TypeHandler>(elements_[i]));
} }
......
...@@ -44,6 +44,11 @@ namespace protobuf { ...@@ -44,6 +44,11 @@ namespace protobuf {
#ifdef _MSC_VER #ifdef _MSC_VER
enum { IS_COMPILER_MSVC = 1 }; enum { IS_COMPILER_MSVC = 1 };
#ifndef va_copy
// Define va_copy for MSVC. This is a hack, assuming va_list is simply a
// pointer into the stack and is safe to copy.
#define va_copy(dest, src) ((dest) = (src))
#endif
#else #else
enum { IS_COMPILER_MSVC = 0 }; enum { IS_COMPILER_MSVC = 0 };
#endif #endif
......
...@@ -55,9 +55,9 @@ TEST(StringPrintfTest, Empty) { ...@@ -55,9 +55,9 @@ TEST(StringPrintfTest, Empty) {
TEST(StringPrintfTest, Misc) { TEST(StringPrintfTest, Misc) {
// MSVC does not support $ format specifier. // MSVC does not support $ format specifier.
#if !defined(COMPILER_MSVC) #if !defined(_MSC_VER)
EXPECT_EQ("123hello w", StringPrintf("%3$d%2$s %1$c", 'w', "hello", 123)); EXPECT_EQ("123hello w", StringPrintf("%3$d%2$s %1$c", 'w', "hello", 123));
#endif // !COMPILER_MSVC #endif // !_MSC_VER
} }
TEST(StringAppendFTest, Empty) { TEST(StringAppendFTest, Empty) {
......
...@@ -497,7 +497,7 @@ TEST(WireFormatTest, ParseMessageSetWithReverseTagOrder) { ...@@ -497,7 +497,7 @@ TEST(WireFormatTest, ParseMessageSetWithReverseTagOrder) {
coded_output.WriteVarint32(message.ByteSize()); coded_output.WriteVarint32(message.ByteSize());
message.SerializeWithCachedSizes(&coded_output); message.SerializeWithCachedSizes(&coded_output);
// Write the type id. // Write the type id.
uint32_t type_id = message.GetDescriptor()->extension(0)->number(); uint32 type_id = message.GetDescriptor()->extension(0)->number();
WireFormatLite::WriteUInt32(WireFormatLite::kMessageSetTypeIdNumber, WireFormatLite::WriteUInt32(WireFormatLite::kMessageSetTypeIdNumber,
type_id, &coded_output); type_id, &coded_output);
coded_output.WriteTag(WireFormatLite::kMessageSetItemEndTag); coded_output.WriteTag(WireFormatLite::kMessageSetItemEndTag);
......
...@@ -17,6 +17,7 @@ copy ..\src\google\protobuf\descriptor.pb.h include\google\protobuf\descriptor.p ...@@ -17,6 +17,7 @@ copy ..\src\google\protobuf\descriptor.pb.h include\google\protobuf\descriptor.p
copy ..\src\google\protobuf\descriptor_database.h include\google\protobuf\descriptor_database.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\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\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_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_reflection.h include\google\protobuf\generated_message_reflection.h
copy ..\src\google\protobuf\message.h include\google\protobuf\message.h copy ..\src\google\protobuf\message.h include\google\protobuf\message.h
......
...@@ -204,7 +204,7 @@ ...@@ -204,7 +204,7 @@
> >
</File> </File>
<File <File
RelativePath="..\src\google\protobuf\stubs\stl_util-inl.h" RelativePath="..\src\google\protobuf\stubs\stl_util.h"
> >
</File> </File>
<File <File
...@@ -223,6 +223,18 @@ ...@@ -223,6 +223,18 @@
RelativePath="..\src\google\protobuf\io\zero_copy_stream_impl_lite.h" RelativePath="..\src\google\protobuf\io\zero_copy_stream_impl_lite.h"
> >
</File> </File>
<File
RelativePath="..\src\google\protobuf\stubs\stringprintf.h"
>
</File>
<File
RelativePath="..\src\google\protobuf\stubs\template_util.h"
>
</File>
<File
RelativePath="..\src\google\protobuf\stubs\type_traits.h"
>
</File>
</Filter> </Filter>
<Filter <Filter
Name="Resource Files" Name="Resource Files"
...@@ -279,6 +291,10 @@ ...@@ -279,6 +291,10 @@
RelativePath="..\src\google\protobuf\io\zero_copy_stream_impl_lite.cc" RelativePath="..\src\google\protobuf\io\zero_copy_stream_impl_lite.cc"
> >
</File> </File>
<File
RelativePath="..\src\google\protobuf\stubs\stringprintf.cc"
>
</File>
</Filter> </Filter>
</Files> </Files>
<Globals> <Globals>
......
...@@ -252,7 +252,19 @@ ...@@ -252,7 +252,19 @@
> >
</File> </File>
<File <File
RelativePath="..\src\google\protobuf\stubs\stl_util-inl.h" RelativePath="..\src\google\protobuf\stubs\stl_util.h"
>
</File>
<File
RelativePath="..\src\google\protobuf\stubs\stringprintf.h"
>
</File>
<File
RelativePath="..\src\google\protobuf\stubs\template_util.h"
>
</File>
<File
RelativePath="..\src\google\protobuf\stubs\type_traits.h"
> >
</File> </File>
<File <File
...@@ -439,6 +451,10 @@ ...@@ -439,6 +451,10 @@
RelativePath="..\src\google\protobuf\io\zero_copy_stream_impl_lite.cc" RelativePath="..\src\google\protobuf\io\zero_copy_stream_impl_lite.cc"
> >
</File> </File>
<File
RelativePath="..\src\google\protobuf\stubs\stringprintf.cc"
>
</File>
</Filter> </Filter>
</Files> </Files>
<Globals> <Globals>
......
...@@ -207,6 +207,10 @@ ...@@ -207,6 +207,10 @@
RelativePath="..\src\google\protobuf\compiler\cpp\cpp_message_field.h" RelativePath="..\src\google\protobuf\compiler\cpp\cpp_message_field.h"
> >
</File> </File>
<File
RelativePath="..\src\google\protobuf\compiler\cpp\cpp_options.h"
>
</File>
<File <File
RelativePath="..\src\google\protobuf\compiler\cpp\cpp_primitive_field.h" RelativePath="..\src\google\protobuf\compiler\cpp\cpp_primitive_field.h"
> >
...@@ -267,6 +271,14 @@ ...@@ -267,6 +271,14 @@
RelativePath="..\src\google\protobuf\compiler\java\java_string_field.h" RelativePath="..\src\google\protobuf\compiler\java\java_string_field.h"
> >
</File> </File>
<File
RelativePath="..\src\google\protobuf\compiler\java\java_doc_comment.h"
>
</File>
<File
RelativePath="..\src\google\protobuf\compiler\java\java_doc_comment.cc"
>
</File>
<File <File
RelativePath="..\src\google\protobuf\compiler\python\python_generator.h" RelativePath="..\src\google\protobuf\compiler\python\python_generator.h"
> >
......
...@@ -190,6 +190,10 @@ ...@@ -190,6 +190,10 @@
RelativePath=".\google\protobuf\unittest_import_lite.pb.h" RelativePath=".\google\protobuf\unittest_import_lite.pb.h"
> >
</File> </File>
<File
RelativePath=".\google\protobuf\unittest_import_public_lite.pb.h"
>
</File>
</Filter> </Filter>
<Filter <Filter
Name="Resource Files" Name="Resource Files"
...@@ -218,6 +222,10 @@ ...@@ -218,6 +222,10 @@
RelativePath=".\google\protobuf\unittest_import_lite.pb.cc" RelativePath=".\google\protobuf\unittest_import_lite.pb.cc"
> >
</File> </File>
<File
RelativePath=".\google\protobuf\unittest_import_public_lite.pb.cc"
>
</File>
</Filter> </Filter>
<File <File
RelativePath="..\src\google\protobuf\unittest_lite.proto" RelativePath="..\src\google\protobuf\unittest_lite.proto"
...@@ -267,6 +275,30 @@ ...@@ -267,6 +275,30 @@
/> />
</FileConfiguration> </FileConfiguration>
</File> </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&#x0D;&#x0A;"
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&#x0D;&#x0A;"
Outputs="google\protobuf\unittest_import_public_lite.pb.h;google\protobuf\unittest_import_public_lite.pb.cc"
/>
</FileConfiguration>
</File>
</Files> </Files>
<Globals> <Globals>
</Globals> </Globals>
......
...@@ -214,6 +214,10 @@ ...@@ -214,6 +214,10 @@
RelativePath=".\google\protobuf\unittest_import.pb.h" RelativePath=".\google\protobuf\unittest_import.pb.h"
> >
</File> </File>
<File
RelativePath=".\google\protobuf\unittest_import_public.pb.h"
>
</File>
<File <File
RelativePath=".\google\protobuf\unittest_lite_imports_nonline.pb.h" RelativePath=".\google\protobuf\unittest_lite_imports_nonline.pb.h"
> >
...@@ -262,6 +266,10 @@ ...@@ -262,6 +266,10 @@
RelativePath="..\src\google\protobuf\compiler\cpp\cpp_bootstrap_unittest.cc" RelativePath="..\src\google\protobuf\compiler\cpp\cpp_bootstrap_unittest.cc"
> >
</File> </File>
<File
RelativePath="..\src\google\protobuf\compiler\cpp\cpp_unittest.cc"
>
</File>
<File <File
RelativePath=".\google\protobuf\compiler\cpp\cpp_test_bad_identifiers.pb.cc" RelativePath=".\google\protobuf\compiler\cpp\cpp_test_bad_identifiers.pb.cc"
> >
...@@ -278,6 +286,10 @@ ...@@ -278,6 +286,10 @@
RelativePath="..\src\google\protobuf\compiler\java\java_plugin_unittest.cc" RelativePath="..\src\google\protobuf\compiler\java\java_plugin_unittest.cc"
> >
</File> </File>
<File
RelativePath="..\src\google\protobuf\compiler\java\java_doc_comment_unittest.cc"
>
</File>
<File <File
RelativePath="..\src\google\protobuf\compiler\python\python_plugin_unittest.cc" RelativePath="..\src\google\protobuf\compiler\python\python_plugin_unittest.cc"
> >
...@@ -338,10 +350,26 @@ ...@@ -338,10 +350,26 @@
RelativePath="..\src\google\protobuf\repeated_field_unittest.cc" RelativePath="..\src\google\protobuf\repeated_field_unittest.cc"
> >
</File> </File>
<File
RelativePath="..\src\google\protobuf\repeated_field_reflection_unittest.cc"
>
</File>
<File <File
RelativePath="..\src\google\protobuf\stubs\structurally_valid_unittest.cc" RelativePath="..\src\google\protobuf\stubs\structurally_valid_unittest.cc"
> >
</File> </File>
<File
RelativePath="..\src\google\protobuf\stubs\stringprintf_unittest.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\stubs\template_util_unittest.cc"
>
</File>
<File
RelativePath="..\src\google\protobuf\stubs\type_traits_unittest.cc"
>
</File>
<File <File
RelativePath="..\src\google\protobuf\stubs\strutil_unittest.cc" RelativePath="..\src\google\protobuf\stubs\strutil_unittest.cc"
> >
...@@ -374,6 +402,10 @@ ...@@ -374,6 +402,10 @@
RelativePath=".\google\protobuf\unittest_import.pb.cc" RelativePath=".\google\protobuf\unittest_import.pb.cc"
> >
</File> </File>
<File
RelativePath=".\google\protobuf\unittest_import_public.pb.cc"
>
</File>
<File <File
RelativePath=".\google\protobuf\unittest_lite_imports_nonlite.pb.cc" RelativePath=".\google\protobuf\unittest_lite_imports_nonlite.pb.cc"
> >
...@@ -523,6 +555,30 @@ ...@@ -523,6 +555,30 @@
/> />
</FileConfiguration> </FileConfiguration>
</File> </File>
<File
RelativePath="..\src\google\protobuf\unittest_import_public.proto"
>
<FileConfiguration
Name="Debug|Win32"
>
<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;"
Outputs="google\protobuf\unittest_import_public.pb.h;google\protobuf\unittest_import_public.pb.cc"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<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;"
Outputs="google\protobuf\unittest_import_public.pb.h;google\protobuf\unittest_import_public.pb.cc"
/>
</FileConfiguration>
</File>
<File <File
RelativePath="..\src\google\protobuf\unittest_lite_imports_nonlite.proto" RelativePath="..\src\google\protobuf\unittest_lite_imports_nonlite.proto"
> >
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment