2023-07-24 06:21:55 -06:00
|
|
|
# Project metadata
|
2023-02-02 13:35:58 -07:00
|
|
|
|
2023-09-02 20:40:16 -06:00
|
|
|
[tool.pdm.version]
|
|
|
|
source = "scm"
|
|
|
|
|
2023-02-02 13:35:58 -07:00
|
|
|
[project]
|
2023-09-02 20:40:16 -06:00
|
|
|
dynamic = ["version"]
|
2023-02-02 13:35:58 -07:00
|
|
|
|
|
|
|
name = "amaranth"
|
|
|
|
description = "Amaranth hardware definition language"
|
2024-02-13 05:03:18 -07:00
|
|
|
readme = "README.md"
|
2023-02-02 13:35:58 -07:00
|
|
|
authors = [{name = "Amaranth HDL contributors"}]
|
|
|
|
license = {file = "LICENSE.txt"}
|
|
|
|
|
2023-06-07 08:04:23 -06:00
|
|
|
requires-python = "~=3.8"
|
2023-02-02 13:35:58 -07:00
|
|
|
dependencies = [
|
|
|
|
"importlib_resources; python_version<'3.9'", # for amaranth._toolchain.yosys
|
2023-06-04 13:42:05 -06:00
|
|
|
"pyvcd>=0.2.2,<0.5", # for amaranth.sim.pysim
|
2023-02-02 13:35:58 -07:00
|
|
|
"Jinja2~=3.0", # for amaranth.build
|
|
|
|
]
|
|
|
|
|
|
|
|
[project.optional-dependencies]
|
2024-03-21 18:57:48 -06:00
|
|
|
# This version requirement needs to be synchronized with:
|
|
|
|
# - pyproject.toml: tool.pdm.dev-dependencies.test
|
|
|
|
# - amaranth/back/verilog.py: _convert_rtlil_text
|
|
|
|
# - docs/install.rst: yosys-version
|
2024-02-12 21:58:26 -07:00
|
|
|
builtin-yosys = ["amaranth-yosys>=0.38"]
|
2023-02-02 13:35:58 -07:00
|
|
|
remote-build = ["paramiko~=2.7"]
|
|
|
|
|
|
|
|
[project.scripts]
|
|
|
|
amaranth-rpc = "amaranth.rpc:main"
|
|
|
|
|
2023-09-02 20:40:16 -06:00
|
|
|
[project.urls]
|
|
|
|
"Homepage" = "https://amaranth-lang.org/"
|
|
|
|
"Documentation" = "https://amaranth-lang.org/docs/amaranth/" # modified in pdm_build.py
|
|
|
|
"Source Code" = "https://github.com/amaranth-lang/amaranth"
|
|
|
|
"Bug Tracker" = "https://github.com/amaranth-lang/amaranth/issues"
|
|
|
|
|
2023-07-24 06:21:55 -06:00
|
|
|
# Build system configuration
|
|
|
|
|
|
|
|
[build-system]
|
2023-09-02 20:40:16 -06:00
|
|
|
requires = ["pdm-backend"]
|
|
|
|
build-backend = "pdm.backend"
|
2023-07-24 06:21:55 -06:00
|
|
|
|
2024-02-15 12:50:31 -07:00
|
|
|
[tool.pdm]
|
|
|
|
# Remove this once we no longer support Python 3.8.
|
|
|
|
ignore_package_warnings = ["sphinx*"]
|
|
|
|
|
2023-09-02 20:40:16 -06:00
|
|
|
[tool.pdm.build]
|
2023-03-21 18:41:15 -06:00
|
|
|
# If amaranth 0.3 is checked out with git (e.g. as a part of a persistent editable install or
|
|
|
|
# a git worktree cached by tools like poetry), it can have an empty `nmigen` directory left over,
|
|
|
|
# which causes a hard error because setuptools cannot determine the top-level package.
|
|
|
|
# Add a workaround to improve experience for people upgrading from old checkouts.
|
2023-09-02 20:40:16 -06:00
|
|
|
includes = ["amaranth/"]
|
2023-07-24 06:21:55 -06:00
|
|
|
|
2024-02-13 05:09:14 -07:00
|
|
|
source-includes = [
|
|
|
|
".gitignore",
|
|
|
|
".coveragerc",
|
|
|
|
".env.toolchain",
|
|
|
|
"CONTRIBUTING.txt",
|
|
|
|
]
|
|
|
|
|
2023-07-24 06:21:55 -06:00
|
|
|
# Development workflow configuration
|
|
|
|
|
|
|
|
[tool.pdm.dev-dependencies]
|
2024-03-21 18:57:48 -06:00
|
|
|
# This version requirement needs to be synchronized with the one in pyproject.toml above!
|
2023-07-24 06:21:55 -06:00
|
|
|
test = [
|
2024-02-13 23:19:39 -07:00
|
|
|
"yowasp-yosys>=0.38",
|
2023-07-24 06:21:55 -06:00
|
|
|
"coverage",
|
|
|
|
]
|
|
|
|
docs = [
|
2023-10-20 09:34:50 -06:00
|
|
|
"sphinx~=7.1",
|
2023-07-24 06:21:55 -06:00
|
|
|
"sphinxcontrib-platformpicker~=1.3",
|
2024-03-22 00:32:44 -06:00
|
|
|
"sphinx-rtd-theme~=2.0",
|
2023-07-24 06:21:55 -06:00
|
|
|
"sphinx-autobuild",
|
|
|
|
]
|
2023-09-25 07:46:14 -06:00
|
|
|
examples = [
|
|
|
|
"amaranth-boards @ git+https://github.com/amaranth-lang/amaranth-boards.git"
|
|
|
|
]
|
2023-07-24 06:21:55 -06:00
|
|
|
|
|
|
|
[tool.pdm.scripts]
|
2023-09-27 04:57:02 -06:00
|
|
|
_.env_file = ".env.toolchain"
|
|
|
|
|
2023-07-24 06:21:55 -06:00
|
|
|
test.composite = ["test-code", "test-docs"]
|
|
|
|
test-code.env = {PYTHONWARNINGS = "error"}
|
|
|
|
test-code.cmd = "python -m coverage run -m unittest discover -t . -s tests -v"
|
|
|
|
test-docs.cmd = "sphinx-build -b doctest docs/ docs/_build"
|
|
|
|
|
2024-03-13 20:42:27 -06:00
|
|
|
document.cmd = "sphinx-build docs/ docs/_build/ -W --keep-going"
|
2023-07-24 06:21:55 -06:00
|
|
|
document-live.cmd = "sphinx-autobuild docs/ docs/_build/ --watch amaranth"
|
2024-02-15 12:35:21 -07:00
|
|
|
document-linkcheck.cmd = "sphinx-build docs/ docs/_linkcheck/ -b linkcheck"
|
2023-08-17 18:15:38 -06:00
|
|
|
|
|
|
|
coverage-text.cmd = "python -m coverage report"
|
|
|
|
coverage-html.cmd = "python -m coverage html"
|