Fix issues: 223 224 242.
This commit is contained in:
parent
1fd96c43a0
commit
9b7f6c544a
@ -63,6 +63,9 @@ Installation
|
|||||||
$ python setup.py install
|
$ python setup.py install
|
||||||
|
|
||||||
This step may require superuser privileges.
|
This step may require superuser privileges.
|
||||||
|
NOTE: To use C++ implementation, you need to export the environment variable
|
||||||
|
before this step. See the "C++ Implementation" section below for more
|
||||||
|
details.
|
||||||
|
|
||||||
Usage
|
Usage
|
||||||
=====
|
=====
|
||||||
@ -71,3 +74,24 @@ The complete documentation for Protocol Buffers is available via the
|
|||||||
web at:
|
web at:
|
||||||
|
|
||||||
http://code.google.com/apis/protocolbuffers/
|
http://code.google.com/apis/protocolbuffers/
|
||||||
|
|
||||||
|
C++ Implementation
|
||||||
|
==================
|
||||||
|
|
||||||
|
WARNING: This is EXPERIMENTAL and only available for CPython platforms.
|
||||||
|
|
||||||
|
The C++ implementation for Python messages is built as a Python extension to
|
||||||
|
improve the overall protobuf Python performance.
|
||||||
|
|
||||||
|
To use the C++ implementation, export an environment variable:
|
||||||
|
|
||||||
|
$ export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=cpp
|
||||||
|
|
||||||
|
You need to export this variable before running setup.py script to build and
|
||||||
|
install the extension. You must also set the variable at runtime, otherwise
|
||||||
|
the pure-Python implementation will be used. In a future release, we will
|
||||||
|
change the default so that C++ implementation is used whenever it is available.
|
||||||
|
It is strongly recommended to run `python setup.py test` after setting the
|
||||||
|
variable to "cpp", so the tests will be against C++ implemented Python
|
||||||
|
messages.
|
||||||
|
|
||||||
|
@ -102,17 +102,22 @@ if __name__ == '__main__':
|
|||||||
# Generate necessary .proto file if it doesn't exist.
|
# Generate necessary .proto file if it doesn't exist.
|
||||||
# TODO(kenton): Maybe we should hook this into a distutils command?
|
# TODO(kenton): Maybe we should hook this into a distutils command?
|
||||||
generate_proto("../src/google/protobuf/descriptor.proto")
|
generate_proto("../src/google/protobuf/descriptor.proto")
|
||||||
|
generate_proto("../src/google/protobuf/compiler/plugin.proto")
|
||||||
|
|
||||||
python_c_extension = Extension("google.protobuf.internal._net_proto2___python",
|
ext_module_list = []
|
||||||
|
|
||||||
|
# C++ implementation extension
|
||||||
|
if os.getenv("PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION", "python") == "cpp":
|
||||||
|
print "Using EXPERIMENTAL C++ Implmenetation."
|
||||||
|
ext_module_list.append(Extension(
|
||||||
|
"google.protobuf.internal._net_proto2___python",
|
||||||
[ "google/protobuf/pyext/python_descriptor.cc",
|
[ "google/protobuf/pyext/python_descriptor.cc",
|
||||||
"google/protobuf/pyext/python_protobuf.cc",
|
"google/protobuf/pyext/python_protobuf.cc",
|
||||||
"google/protobuf/pyext/python-proto2.cc",
|
"google/protobuf/pyext/python-proto2.cc" ],
|
||||||
],
|
|
||||||
include_dirs = [ "../src", ".", ],
|
include_dirs = [ "../src", ".", ],
|
||||||
libraries = [ "protobuf" ],
|
libraries = [ "protobuf" ],
|
||||||
runtime_library_dirs = [ "../src/.libs" ],
|
runtime_library_dirs = [ "../src/.libs" ],
|
||||||
library_dirs = [ "../src/.libs" ],
|
library_dirs = [ "../src/.libs" ]))
|
||||||
)
|
|
||||||
|
|
||||||
setup(name = 'protobuf',
|
setup(name = 'protobuf',
|
||||||
version = '2.4.0-pre',
|
version = '2.4.0-pre',
|
||||||
@ -132,12 +137,13 @@ if __name__ == '__main__':
|
|||||||
'google.protobuf.internal.wire_format',
|
'google.protobuf.internal.wire_format',
|
||||||
'google.protobuf.descriptor',
|
'google.protobuf.descriptor',
|
||||||
'google.protobuf.descriptor_pb2',
|
'google.protobuf.descriptor_pb2',
|
||||||
|
'google.protobuf.compiler.plugin_pb2',
|
||||||
'google.protobuf.message',
|
'google.protobuf.message',
|
||||||
'google.protobuf.reflection',
|
'google.protobuf.reflection',
|
||||||
'google.protobuf.service',
|
'google.protobuf.service',
|
||||||
'google.protobuf.service_reflection',
|
'google.protobuf.service_reflection',
|
||||||
'google.protobuf.text_format' ],
|
'google.protobuf.text_format' ],
|
||||||
ext_modules = [ python_c_extension ],
|
ext_modules = ext_module_list,
|
||||||
url = 'http://code.google.com/p/protobuf/',
|
url = 'http://code.google.com/p/protobuf/',
|
||||||
maintainer = maintainer_email,
|
maintainer = maintainer_email,
|
||||||
maintainer_email = 'protobuf@googlegroups.com',
|
maintainer_email = 'protobuf@googlegroups.com',
|
||||||
|
@ -566,7 +566,7 @@ TEST_F(CommandLineInterfaceTest, Insert) {
|
|||||||
"foo.proto", "Foo");
|
"foo.proto", "Foo");
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(_WIN32) || defined(__CYGWIN__)
|
#if defined(_WIN32)
|
||||||
|
|
||||||
TEST_F(CommandLineInterfaceTest, WindowsOutputPath) {
|
TEST_F(CommandLineInterfaceTest, WindowsOutputPath) {
|
||||||
// Test that the output path can be a Windows-style path.
|
// Test that the output path can be a Windows-style path.
|
||||||
|
Loading…
Reference in New Issue
Block a user