summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xprepare_release.sh1
-rw-r--r--wrappers/python/setup.py37
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})