diff options
| -rwxr-xr-x | prepare_release.sh | 1 | ||||
| -rw-r--r-- | wrappers/python/setup.py | 37 |
2 files changed, 37 insertions, 1 deletions
diff --git a/prepare_release.sh b/prepare_release.sh index 969cb4e..61d0cfc 100755 --- a/prepare_release.sh +++ b/prepare_release.sh @@ -48,6 +48,7 @@ fi # replace in internal/version sed -i "s/const Version = \".*\"/const Version = \"${PROJECT_VERSION}\"/" internal/version/version.go sed -i "s/version = .*/version = ${PROJECT_VERSION}/" wrappers/python/setup.cfg +sed -i "s/COMMON_VERSION = \".*\"/COMMON_VERSION = \"${PROJECT_VERSION}\"/" wrappers/python/setup.py sed -i "s/__version__ = \".*\"/__version__ = \"${PROJECT_VERSION}\"/" wrappers/python/eduvpn_common/__init__.py git add -u diff --git a/wrappers/python/setup.py b/wrappers/python/setup.py index 6068493..086d8c0 100644 --- a/wrappers/python/setup.py +++ b/wrappers/python/setup.py @@ -1,3 +1,38 @@ +import os +import subprocess + from setuptools import setup +from setuptools.command.build_py import build_py + +COMMON_VERSION = "3.0.0" +SETUP_PATH = os.path.abspath(__file__) +COMMON_EXPORTS_PATH = os.path.abspath(os.path.join(SETUP_PATH, "../../../exports")) + + +class CommonBuild(build_py): + def run(self): + if os.environ.get("EDUVPN_COMMON_BUILD_SO", "0") == "1": + try: + subprocess.run( + [ + "go", + "build", + "-o", + f"eduvpn_common/lib/libeduvpn_common-{COMMON_VERSION}.so", + "-buildmode=c-shared", + COMMON_EXPORTS_PATH, + ], + env={**os.environ, "CGO_ENABLED": "1"}, + check=True, + capture_output=True, + text=True, + ) + except subprocess.CalledProcessError as e: + print("eduvpn-common build failed with exit code:", e.returncode) + print("standard output:", e.stdout) + print("error output:", e.stderr) + raise + super().run() + -setup() +setup(cmdclass={"build_py": CommonBuild}) |
