vendor.quicklogic: enable SoC clock configuration
[nmigen.git] / setup.py
index b3da5d26d21997ba651ef83c7cf1c2faf1674085..4cd96e793ca25772300f1efc700697c74f682d4a 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -3,7 +3,10 @@ from setuptools import setup, find_packages
 
 def scm_version():
     def local_scheme(version):
-        return version.format_choice("+{node}", "+{node}.dirty")
+        if version.tag and not version.distance:
+            return version.format_with("")
+        else:
+            return version.format_choice("+{node}", "+{node}.dirty")
     return {
         "relative_to": __file__,
         "version_scheme": "guess-next-dev",
@@ -11,6 +14,21 @@ def scm_version():
     }
 
 
+def doc_version():
+    try:
+        from setuptools_scm.git import parse as parse_git
+    except ImportError:
+        return ""
+
+    git = parse_git(".")
+    if not git:
+        return ""
+    elif git.exact:
+        return git.format_with("{tag}")
+    else:
+        return "latest"
+
+
 setup(
     name="nmigen",
     use_scm_version=scm_version(),
@@ -20,12 +38,27 @@ setup(
     #long_description="""TODO""",
     license="BSD",
     python_requires="~=3.6",
-    setup_requires=["setuptools_scm"],
-    install_requires=["setuptools", "pyvcd>=0.1.4", "bitarray", "Jinja2"],
-    packages=find_packages(),
+    setup_requires=["wheel", "setuptools", "setuptools_scm"],
+    install_requires=[
+        "importlib_metadata; python_version<'3.8'",  # for __version__ and nmigen._yosys
+        "importlib_resources; python_version<'3.9'", # for nmigen._yosys
+        "pyvcd~=0.2.2", # for nmigen.pysim
+        "Jinja2~=2.11", # for nmigen.build
+    ],
+    extras_require={
+        # this version requirement needs to be synchronized with the one in nmigen.back.verilog!
+        "builtin-yosys": ["nmigen-yosys>=0.9.post3527.*"],
+        "remote-build": ["paramiko~=2.7"],
+    },
+    packages=find_packages(exclude=["tests*"]),
+    entry_points={
+        "console_scripts": [
+            "nmigen-rpc = nmigen.rpc:main",
+        ]
+    },
     project_urls={
-        #"Documentation": "https://nmigen.readthedocs.io/",
-        "Source Code": "https://github.com/m-labs/nmigen",
-        "Bug Tracker": "https://github.com/m-labs/nmigen/issues",
+        "Documentation": "https://nmigen.info/nmigen/{}".format(doc_version()),
+        "Source Code": "https://github.com/nmigen/nmigen",
+        "Bug Tracker": "https://github.com/nmigen/nmigen/issues",
     },
 )