blob: cdf1f550c0510dfd9f6629c51e4060cc21423413 (
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
39
40
41
42
43
44
45
46
47
48
49
|
import subprocess
import sys
from setuptools import setup
def _get_ouroboros_version():
try:
out = subprocess.check_output(
['pkg-config', '--modversion', 'ouroboros-dev'],
stderr=subprocess.DEVNULL
)
return out.decode().strip()
except (subprocess.CalledProcessError, FileNotFoundError):
sys.exit("ERROR: ouroboros-dev not found via pkg-config. "
"Is Ouroboros installed?")
def _check_build_version_compat():
try:
from setuptools_scm import get_version
pyouro_ver = get_version(root='.', relative_to=__file__)
except Exception:
return # no SCM info, skip check
ouro_ver = _get_ouroboros_version()
# setuptools_scm: '0.23.1.dev3+g<hash>' or '0.23.0'
# pkg-config: '0.23.0'
# Compare major.minor only.
ouro_parts = ouro_ver.split('.')
pyouro_parts = pyouro_ver.split('.')
if ouro_parts[0] != pyouro_parts[0] or ouro_parts[1] != pyouro_parts[1]:
sys.exit(
f"ERROR: Version mismatch: ouroboros {ouro_ver} "
f"vs pyouroboros {pyouro_ver} "
f"(major.minor must match)"
)
_check_build_version_compat()
setup(
cffi_modules=[
"ffi/pyouroboros_build_dev.py:ffibuilder",
"ffi/pyouroboros_build_irm.py:ffibuilder"
],
)
|