introduce build parameters
This commit is contained in:
parent
92782f1352
commit
5600b8056b
4 changed files with 58 additions and 19 deletions
|
|
@ -1,3 +1,4 @@
|
|||
import os
|
||||
import subprocess
|
||||
from contextlib import suppress
|
||||
from setuptools import Command, setup
|
||||
|
|
@ -12,12 +13,45 @@ class CustomCommand(Command):
|
|||
pass
|
||||
|
||||
def run(self) -> None:
|
||||
# configure the go build via env vars
|
||||
# keep defaults in sync with build_ffi.py
|
||||
go_tags_str = os.getenv("PYGOMX_GO_TAGS")
|
||||
if go_tags_str and len(go_tags_str.strip()) > 0:
|
||||
go_tags = go_tags_str.split(",")
|
||||
else:
|
||||
go_tags = []
|
||||
|
||||
match os.getenv("PYGOMX_BUILD_MODE", "static"):
|
||||
case "static":
|
||||
build_mode_name = "c-archive"
|
||||
build_mode_ext = ".a"
|
||||
case "shared":
|
||||
build_mode_name = "c-shared"
|
||||
build_mode_ext = ".so"
|
||||
case _:
|
||||
raise ValueError("Invalid PYGOMX_BUILD_MODE.")
|
||||
|
||||
match os.getenv("PYGOMX_OLM_FLAVOR", "colm"):
|
||||
case "none":
|
||||
go_tags += ["nocrypto"]
|
||||
case "colm":
|
||||
go_tags += ["colm"]
|
||||
case "goolm":
|
||||
go_tags += ["goolm"]
|
||||
case "vodozemac":
|
||||
go_tags += ["vodozemac"]
|
||||
raise ValueError("Vodozemac not supported (yet).")
|
||||
case _:
|
||||
raise ValueError("Invalid PYGOMX_OLM_FLAVOR.")
|
||||
|
||||
go_call = [
|
||||
"go",
|
||||
"build",
|
||||
"-buildmode=c-archive",
|
||||
f"-buildmode=${build_mode_name}",
|
||||
"-tags",
|
||||
",".join(go_tags),
|
||||
"-o",
|
||||
"../pygomx-module/libmxclient.a",
|
||||
f"../pygomx-module/libmxclient${build_mode_ext}",
|
||||
".",
|
||||
]
|
||||
subprocess.call(go_call, cwd="../libmxclient")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue