aboutsummaryrefslogtreecommitdiff
path: root/pyproject.toml
diff options
context:
space:
mode:
authorCatherine <whitequark@whitequark.org>2023-08-08 10:50:57 +0000
committerCatherine <whitequark@whitequark.org>2023-08-08 11:57:09 +0100
commit994a4df196b1d61a9a96ce57ffa1dab74ba4b282 (patch)
tree23a2a3bd03629c1e37e82f71a33c3a41eff21cef /pyproject.toml
parent3a662f05206c8f3705f603b1bd61ee2689277a6f (diff)
Add PDM development workflow that integrates YoWASP toolchain.
This can simplify smoke testing of boards supported by the FOSS toolchains. Testing a board with an iCE40, ECP5, etc FPGA is now as simple as: pdm install --dev pdm run python -m amaranth_boards.board_name It is not necessary to install a toolchain, set several environment variables, or do anything else.
Diffstat (limited to 'pyproject.toml')
-rw-r--r--pyproject.toml24
1 files changed, 20 insertions, 4 deletions
diff --git a/pyproject.toml b/pyproject.toml
index b61e0ff..ee3c4df 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,7 +1,3 @@
-[build-system]
-requires = ["wheel", "setuptools~=67.0", "setuptools_scm[toml]>=6.2"]
-build-backend = "setuptools.build_meta"
-
[project]
dynamic = ["version"]
@@ -20,6 +16,12 @@ dependencies = [
"Source Code" = "https://github.com/amaranth-lang/amaranth-boards"
"Bug Tracker" = "https://github.com/amaranth-lang/amaranth-boards/issues"
+# Build system configuration
+
+[build-system]
+requires = ["wheel", "setuptools~=67.0", "setuptools_scm[toml]>=6.2"]
+build-backend = "setuptools.build_meta"
+
[tool.setuptools]
# If old amaranth-boards 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_boards` directory
@@ -29,3 +31,17 @@ packages = ["amaranth_boards"]
[tool.setuptools_scm]
local_scheme = "node-and-timestamp"
+
+# Development workflow configuration
+
+[tool.pdm.dev-dependencies]
+toolchain = [
+ "amaranth-yosys",
+ "yowasp-yosys",
+ "yowasp-nextpnr-ice40",
+ "yowasp-nextpnr-ecp5",
+ "yowasp-nextpnr-gowin",
+]
+
+[tool.pdm.scripts]
+_.env_file = ".env.toolchain"