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

Side by Side Diff: third_party/protobuf/python/setup.py

Issue 6737030: third_party/protobuf: update to upstream r371 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 #! /usr/bin/python 1 #! /usr/bin/python
2 # 2 #
3 # See README for usage instructions. 3 # See README for usage instructions.
4 4
5 # We must use setuptools, not distutils, because we need to use the 5 # We must use setuptools, not distutils, because we need to use the
6 # namespace_packages option for the "google" package. 6 # namespace_packages option for the "google" package.
7 from ez_setup import use_setuptools 7 from ez_setup import use_setuptools
8 use_setuptools() 8 use_setuptools()
9 9
10 from setuptools import setup 10 from setuptools import setup, Extension
11 from distutils.spawn import find_executable 11 from distutils.spawn import find_executable
12 import sys 12 import sys
13 import os 13 import os
14 import subprocess 14 import subprocess
15 15
16 maintainer_email = "protobuf@googlegroups.com" 16 maintainer_email = "protobuf@googlegroups.com"
17 17
18 # Find the Protocol Compiler. 18 # Find the Protocol Compiler.
19 if os.path.exists("../src/protoc"): 19 if os.path.exists("../src/protoc"):
20 protoc = "../src/protoc" 20 protoc = "../src/protoc"
21 elif os.path.exists("../src/protoc.exe"): 21 elif os.path.exists("../src/protoc.exe"):
22 protoc = "../src/protoc.exe" 22 protoc = "../src/protoc.exe"
23 elif os.path.exists("../vsprojects/Debug/protoc.exe"):
24 protoc = "../vsprojects/Debug/protoc.exe"
25 elif os.path.exists("../vsprojects/Release/protoc.exe"):
26 protoc = "../vsprojects/Release/protoc.exe"
23 else: 27 else:
24 protoc = find_executable("protoc") 28 protoc = find_executable("protoc")
25 29
26 def generate_proto(source): 30 def generate_proto(source):
27 """Invokes the Protocol Compiler to generate a _pb2.py from the given 31 """Invokes the Protocol Compiler to generate a _pb2.py from the given
28 .proto file. Does nothing if the output already exists and is newer than 32 .proto file. Does nothing if the output already exists and is newer than
29 the input.""" 33 the input."""
30 34
31 output = source.replace(".proto", "_pb2.py").replace("../src/", "") 35 output = source.replace(".proto", "_pb2.py").replace("../src/", "")
32 36
(...skipping 16 matching lines...) Expand all
49 if subprocess.call(protoc_command) != 0: 53 if subprocess.call(protoc_command) != 0:
50 sys.exit(-1) 54 sys.exit(-1)
51 55
52 def MakeTestSuite(): 56 def MakeTestSuite():
53 # This is apparently needed on some systems to make sure that the tests 57 # This is apparently needed on some systems to make sure that the tests
54 # work even if a previous version is already installed. 58 # work even if a previous version is already installed.
55 if 'google' in sys.modules: 59 if 'google' in sys.modules:
56 del sys.modules['google'] 60 del sys.modules['google']
57 61
58 generate_proto("../src/google/protobuf/unittest.proto") 62 generate_proto("../src/google/protobuf/unittest.proto")
63 generate_proto("../src/google/protobuf/unittest_custom_options.proto")
59 generate_proto("../src/google/protobuf/unittest_import.proto") 64 generate_proto("../src/google/protobuf/unittest_import.proto")
60 generate_proto("../src/google/protobuf/unittest_mset.proto") 65 generate_proto("../src/google/protobuf/unittest_mset.proto")
61 generate_proto("../src/google/protobuf/unittest_no_generic_services.proto") 66 generate_proto("../src/google/protobuf/unittest_no_generic_services.proto")
62 generate_proto("google/protobuf/internal/more_extensions.proto") 67 generate_proto("google/protobuf/internal/more_extensions.proto")
63 generate_proto("google/protobuf/internal/more_messages.proto") 68 generate_proto("google/protobuf/internal/more_messages.proto")
64 69
65 import unittest 70 import unittest
66 import google.protobuf.internal.generator_test as generator_test 71 import google.protobuf.internal.generator_test as generator_test
67 import google.protobuf.internal.descriptor_test as descriptor_test 72 import google.protobuf.internal.descriptor_test as descriptor_test
68 import google.protobuf.internal.reflection_test as reflection_test 73 import google.protobuf.internal.reflection_test as reflection_test
(...skipping 14 matching lines...) Expand all
83 88
84 return suite 89 return suite
85 90
86 if __name__ == '__main__': 91 if __name__ == '__main__':
87 # TODO(kenton): Integrate this into setuptools somehow? 92 # TODO(kenton): Integrate this into setuptools somehow?
88 if len(sys.argv) >= 2 and sys.argv[1] == "clean": 93 if len(sys.argv) >= 2 and sys.argv[1] == "clean":
89 # Delete generated _pb2.py files and .pyc files in the code tree. 94 # Delete generated _pb2.py files and .pyc files in the code tree.
90 for (dirpath, dirnames, filenames) in os.walk("."): 95 for (dirpath, dirnames, filenames) in os.walk("."):
91 for filename in filenames: 96 for filename in filenames:
92 filepath = os.path.join(dirpath, filename) 97 filepath = os.path.join(dirpath, filename)
93 if filepath.endswith("_pb2.py") or filepath.endswith(".pyc"): 98 if filepath.endswith("_pb2.py") or filepath.endswith(".pyc") or \
99 filepath.endswith(".so") or filepath.endswith(".o"):
94 os.remove(filepath) 100 os.remove(filepath)
95 else: 101 else:
96 # Generate necessary .proto file if it doesn't exist. 102 # Generate necessary .proto file if it doesn't exist.
97 # TODO(kenton): Maybe we should hook this into a distutils command? 103 # TODO(kenton): Maybe we should hook this into a distutils command?
98 generate_proto("../src/google/protobuf/descriptor.proto") 104 generate_proto("../src/google/protobuf/descriptor.proto")
105 generate_proto("../src/google/protobuf/compiler/plugin.proto")
106
107 ext_module_list = []
108
109 # C++ implementation extension
110 if os.getenv("PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION", "python") == "cpp":
111 print "Using EXPERIMENTAL C++ Implmenetation."
112 ext_module_list.append(Extension(
113 "google.protobuf.internal._net_proto2___python",
114 [ "google/protobuf/pyext/python_descriptor.cc",
115 "google/protobuf/pyext/python_protobuf.cc",
116 "google/protobuf/pyext/python-proto2.cc" ],
117 include_dirs = [ "../src", ".", ],
118 libraries = [ "protobuf" ],
119 runtime_library_dirs = [ "../src/.libs" ],
120 library_dirs = [ "../src/.libs" ]))
99 121
100 setup(name = 'protobuf', 122 setup(name = 'protobuf',
101 version = '2.3.1-pre', 123 version = '2.4.0-pre',
102 packages = [ 'google' ], 124 packages = [ 'google' ],
103 namespace_packages = [ 'google' ], 125 namespace_packages = [ 'google' ],
104 test_suite = 'setup.MakeTestSuite', 126 test_suite = 'setup.MakeTestSuite',
105 # Must list modules explicitly so that we don't install tests. 127 # Must list modules explicitly so that we don't install tests.
106 py_modules = [ 128 py_modules = [
129 'google.protobuf.internal.api_implementation',
107 'google.protobuf.internal.containers', 130 'google.protobuf.internal.containers',
131 'google.protobuf.internal.cpp_message',
108 'google.protobuf.internal.decoder', 132 'google.protobuf.internal.decoder',
109 'google.protobuf.internal.encoder', 133 'google.protobuf.internal.encoder',
110 'google.protobuf.internal.message_listener', 134 'google.protobuf.internal.message_listener',
135 'google.protobuf.internal.python_message',
111 'google.protobuf.internal.type_checkers', 136 'google.protobuf.internal.type_checkers',
112 'google.protobuf.internal.wire_format', 137 'google.protobuf.internal.wire_format',
113 'google.protobuf.descriptor', 138 'google.protobuf.descriptor',
114 'google.protobuf.descriptor_pb2', 139 'google.protobuf.descriptor_pb2',
140 'google.protobuf.compiler.plugin_pb2',
115 'google.protobuf.message', 141 'google.protobuf.message',
116 'google.protobuf.reflection', 142 'google.protobuf.reflection',
117 'google.protobuf.service', 143 'google.protobuf.service',
118 'google.protobuf.service_reflection', 144 'google.protobuf.service_reflection',
119 'google.protobuf.text_format' ], 145 'google.protobuf.text_format' ],
146 ext_modules = ext_module_list,
120 url = 'http://code.google.com/p/protobuf/', 147 url = 'http://code.google.com/p/protobuf/',
121 maintainer = maintainer_email, 148 maintainer = maintainer_email,
122 maintainer_email = 'protobuf@googlegroups.com', 149 maintainer_email = 'protobuf@googlegroups.com',
123 license = 'New BSD License', 150 license = 'New BSD License',
124 description = 'Protocol Buffers', 151 description = 'Protocol Buffers',
125 long_description = 152 long_description =
126 "Protocol Buffers are Google's data interchange format.", 153 "Protocol Buffers are Google's data interchange format.",
127 ) 154 )
OLDNEW
« no previous file with comments | « third_party/protobuf/python/google/protobuf/text_format.py ('k') | third_party/protobuf/src/Makefile.am » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698