From 6692d12d36f98df8e0c960b7d36c1719481b45c8 Mon Sep 17 00:00:00 2001 From: John Doty Date: Sat, 26 Oct 2024 12:28:48 -0700 Subject: [PATCH] [parser] Makefile nonsense Includes are now explicit so they can be extracted into dependencies for the makefile. --- lrparser.mk | 12 ++++++++++++ makedep.py | 16 ++++++++++++++++ makefile | 18 ++++++++++++++++++ pyproject.toml | 13 +++++++++++++ 4 files changed, 59 insertions(+) create mode 100644 lrparser.mk create mode 100644 makedep.py diff --git a/lrparser.mk b/lrparser.mk new file mode 100644 index 0000000..1c10d26 --- /dev/null +++ b/lrparser.mk @@ -0,0 +1,12 @@ +# This file generated by makedep.py +VERSION=0.7.9 +PYTHON_SOURCES=\ + parser/tree_sitter.py \ + parser/runtime.py \ + parser/generated_source.py \ + parser/parser.py \ + parser/emacs.py \ + parser/wadler/runtime.py \ + parser/wadler/builder.py \ + parser/wadler/__init__.py \ + parser/__init__.py diff --git a/makedep.py b/makedep.py new file mode 100644 index 0000000..846ea2e --- /dev/null +++ b/makedep.py @@ -0,0 +1,16 @@ +import tomllib + + +def main(): + with open("pyproject.toml", "rb") as f: + result = tomllib.load(f) + version = result["project"]["version"] + includes = result["tool"]["pdm"]["build"]["includes"] + with open("lrparser.mk", "w", encoding="utf-8") as f: + f.write("# This file generated by makedep.py\n") + f.write(f"VERSION={version}\n") + f.write(f"PYTHON_SOURCES=\\\n\t{' \\\n\t'.join(includes)}\n") + + +if __name__ == "__main__": + main() diff --git a/makefile b/makefile index 6305885..df522c4 100644 --- a/makefile +++ b/makefile @@ -5,3 +5,21 @@ test: python3 ./parser/parser.py pdm run python3 -m pytest + +.PHONY: dep +dep: lrparser.mk + +lrparser.mk: makedep.py pyproject.toml + python3 makedep.py + +include lrparser.mk + +.PHONY: wheel +wheel: dist/lrparsers-$(VERSION)-py3-none-any.whl + +dist/lrparsers-$(VERSION).tar.gz dist/lrparsers-$(VERSION)-py3-none-any.whl: pyproject.toml $(PYTHON_SOURCES) + pdm build + +.PHONY: clean +clean: + rm -rf ./dist diff --git a/pyproject.toml b/pyproject.toml index 61f9066..860dc74 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -25,6 +25,19 @@ dev = [ "hypothesis>=6.111.1", ] +[tool.pdm.build] +includes = [ + "parser/tree_sitter.py", + "parser/runtime.py", + "parser/generated_source.py", + "parser/parser.py", + "parser/emacs.py", + "parser/wadler/runtime.py", + "parser/wadler/builder.py", + "parser/wadler/__init__.py", + "parser/__init__.py", +] + [tool.pyright] exclude = ["historical", ".venv"] venvPath = "."