summaryrefslogtreecommitdiff
path: root/wrappers/python/setup.py
blob: c5249042001c835ec2807fbdb701b91113bbcc94 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import os
import subprocess

from setuptools import setup
from setuptools.command.build_py import build_py

COMMON_VERSION = "5.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(cmdclass={"build_py": CommonBuild})