vendor.lattice_{ecp5,machxo_2_3l}: remove -forceAll from Diamond scripts.
[nmigen.git] / setup.py
1 from setuptools import setup, find_packages
2
3
4 def scm_version():
5 def local_scheme(version):
6 if version.tag and not version.distance:
7 return version.format_with("")
8 else:
9 return version.format_choice("+{node}", "+{node}.dirty")
10 return {
11 "relative_to": __file__,
12 "version_scheme": "guess-next-dev",
13 "local_scheme": local_scheme
14 }
15
16
17 def doc_version():
18 try:
19 from setuptools_scm.git import parse as parse_git
20 except ImportError:
21 return ""
22
23 git = parse_git(".")
24 if not git:
25 return ""
26 elif git.exact:
27 return git.format_with("{tag}")
28 else:
29 return "latest"
30
31
32 setup(
33 name="nmigen",
34 use_scm_version=scm_version(),
35 author="whitequark",
36 author_email="whitequark@whitequark.org",
37 description="Python toolbox for building complex digital hardware",
38 #long_description="""TODO""",
39 license="BSD",
40 python_requires="~=3.6",
41 setup_requires=["wheel", "setuptools", "setuptools_scm"],
42 install_requires=[
43 "importlib_metadata; python_version<'3.8'", # for __version__ and nmigen._yosys
44 "importlib_resources; python_version<'3.9'", # for nmigen._yosys
45 "pyvcd~=0.2.2", # for nmigen.pysim
46 "Jinja2~=2.11", # for nmigen.build
47 ],
48 extras_require={
49 # this version requirement needs to be synchronized with the one in nmigen.back.verilog!
50 "builtin-yosys": ["nmigen-yosys>=0.9.post3527.*"],
51 "remote-build": ["paramiko~=2.7"],
52 },
53 packages=find_packages(exclude=["tests*"]),
54 entry_points={
55 "console_scripts": [
56 "nmigen-rpc = nmigen.rpc:main",
57 ]
58 },
59 project_urls={
60 "Documentation": "https://nmigen.info/nmigen/{}".format(doc_version()),
61 "Source Code": "https://github.com/nmigen/nmigen",
62 "Bug Tracker": "https://github.com/nmigen/nmigen/issues",
63 },
64 )