blob: 0776ba6e5b154c5fc93ccafc0de93cbb714b1c69 [file] [log] [blame]
Alex Gaynorbfc06bc2013-08-06 19:36:19 -07001# Licensed under the Apache License, Version 2.0 (the "License");
2# you may not use this file except in compliance with the License.
3# You may obtain a copy of the License at
4#
5# http://www.apache.org/licenses/LICENSE-2.0
6#
7# Unless required by applicable law or agreed to in writing, software
8# distributed under the License is distributed on an "AS IS" BASIS,
9# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
10# implied.
11# See the License for the specific language governing permissions and
12# limitations under the License.
Alex Gaynor9a00f052014-01-02 13:09:34 -080013from distutils.command.build import build
14
Donald Stufft9ebb8ff2013-08-11 17:05:03 -040015from setuptools import setup, find_packages
Alex Gaynorc62e91f2013-08-06 19:25:52 -070016
Donald Stufft446a4572013-08-11 17:38:13 -040017
Donald Stufft5f12a1b2013-08-11 16:37:43 -040018about = {}
19with open("cryptography/__about__.py") as fp:
20 exec(fp.read(), about)
21
22
23CFFI_DEPENDENCY = "cffi>=0.6"
Paul Kehrerc0242552013-09-10 18:54:13 -050024SIX_DEPENDENCY = "six>=1.4.1"
Donald Stufft5f12a1b2013-08-11 16:37:43 -040025
26install_requires = [
27 CFFI_DEPENDENCY,
Paul Kehrerc0242552013-09-10 18:54:13 -050028 SIX_DEPENDENCY
Donald Stufft5f12a1b2013-08-11 16:37:43 -040029]
30
31setup_requires = [
32 CFFI_DEPENDENCY,
33]
Alex Gaynorc62e91f2013-08-06 19:25:52 -070034
Alex Gaynor9a00f052014-01-02 13:09:34 -080035
36class cffi_build(build):
37 def finalize_options(self):
38 from cryptography.hazmat.bindings.openssl.binding import Binding
39 from cryptography.hazmat.primitives import constant_time, padding
40
41 self.distribution.ext_modules = [
42 Binding().ffi.verifier.get_extension(),
43 constant_time._ffi.verifier.get_extension(),
44 padding._ffi.verifier.get_extension()
45 ]
46 build.finalize_options(self)
47
48
Alex Gaynorc62e91f2013-08-06 19:25:52 -070049setup(
Donald Stufft5f12a1b2013-08-11 16:37:43 -040050 name=about["__title__"],
51 version=about["__version__"],
52
53 description=about["__summary__"],
54 license=about["__license__"],
55 url=about["__uri__"],
56
57 author=about["__author__"],
58 author_email=about["__email__"],
59
Christian Heimesf83ed1d2013-08-10 23:28:29 +020060 classifiers=[
61 "Development Status :: 2 - Pre-Alpha",
62 "Intended Audience :: Developers",
63 "License :: OSI Approved :: Apache Software License",
64 "Natural Language :: English",
65 "Operating System :: MacOS :: MacOS X",
66 "Operating System :: POSIX",
67 "Operating System :: POSIX :: BSD",
68 "Operating System :: POSIX :: Linux",
69 "Operating System :: Microsoft :: Windows",
Christian Heimesf83ed1d2013-08-10 23:28:29 +020070 "Programming Language :: Python",
71 "Programming Language :: Python :: 2",
72 "Programming Language :: Python :: 2.6",
73 "Programming Language :: Python :: 2.7",
74 "Programming Language :: Python :: 3",
75 "Programming Language :: Python :: 3.2",
76 "Programming Language :: Python :: 3.3",
77 "Programming Language :: Python :: Implementation :: CPython",
78 "Programming Language :: Python :: Implementation :: PyPy",
79 "Topic :: Security :: Cryptography",
80 ],
Donald Stufft5f12a1b2013-08-11 16:37:43 -040081
Donald Stufft9ebb8ff2013-08-11 17:05:03 -040082 packages=find_packages(exclude=["tests", "tests.*"]),
83
Donald Stufftbac187d2013-08-10 15:43:51 -040084 install_requires=install_requires,
Donald Stufft5f12a1b2013-08-11 16:37:43 -040085 setup_requires=setup_requires,
86
87 # for cffi
88 zip_safe=False,
Alex Gaynor9a00f052014-01-02 13:09:34 -080089 ext_package="cryptography",
90 cmdclass={
91 "build": cffi_build,
92 }
Alex Gaynorc62e91f2013-08-06 19:25:52 -070093)