From 61221c98f902fd53840d1f2f060e6f020c9f286b Mon Sep 17 00:00:00 2001 From: J08nY Date: Thu, 16 May 2024 14:12:18 +0200 Subject: Add custom sdist build step that checks for submodules. --- setup.py | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 setup.py (limited to 'setup.py') diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..064398c --- /dev/null +++ b/setup.py @@ -0,0 +1,45 @@ +from pathlib import Path +from setuptools import Command, setup +from setuptools.command.sdist import sdist +from setuptools.command.build import build + + +class SubmoduleMissingException(Exception): + pass + + +class CustomSubmoduleCheck(Command): + def initialize_options(self) -> None: + pass + + def finalize_options(self) -> None: + pass + + def run(self) -> None: + efd_path = Path("pyecsca/ec/efd") + if not list(efd_path.iterdir()): + raise SubmoduleMissingException( + "The EFD submodule of pyecsca is missing, did you initialize the git submodules?" + ) + std_path = Path("pyecsca/ec/std") + if not list(std_path.iterdir()): + raise SubmoduleMissingException( + "The std-curves submodule of pyecsca is missing, did you initialize the git submodules?" + ) + + +class CustomSdist(sdist): + sub_commands = [("check_submodules", None)] + sdist.sub_commands + + +class CustomBuild(build): + sub_commands = [("check_submodules", None)] + build.sub_commands + + +setup( + cmdclass={ + "sdist": CustomSdist, + "build": CustomBuild, + "check_submodules": CustomSubmoduleCheck, + } +) -- cgit v1.2.3-70-g09d2