mirror of
https://github.com/pikvm/ustreamer.git
synced 2025-12-23 18:50:00 +00:00
python: expose FEATURES variable
This commit is contained in:
parent
5baf921660
commit
f3e0613de3
@ -8,7 +8,7 @@ PY ?= python3
|
|||||||
|
|
||||||
# =====
|
# =====
|
||||||
all: root
|
all: root
|
||||||
root: $(shell find src -type f,l)
|
root: $(shell find src -type f,l) setup.py
|
||||||
$(info == PY_BUILD ustreamer-*.so)
|
$(info == PY_BUILD ustreamer-*.so)
|
||||||
rm -rf root
|
rm -rf root
|
||||||
$(ECHO) $(PY) -m build --skip-dependency-check --no-isolation
|
$(ECHO) $(PY) -m build --skip-dependency-check --no-isolation
|
||||||
|
|||||||
@ -5,16 +5,41 @@ from setuptools import setup
|
|||||||
|
|
||||||
|
|
||||||
# =====
|
# =====
|
||||||
def _find_sources(suffix: str) -> list[str]:
|
def _find_sources() -> list[str]:
|
||||||
sources: list[str] = []
|
sources: list[str] = []
|
||||||
for (root_path, _, names) in os.walk("src"):
|
for (root_path, _, names) in os.walk("src"):
|
||||||
for name in names:
|
for name in names:
|
||||||
if name.endswith(suffix):
|
if name.endswith(".c"):
|
||||||
sources.append(os.path.join(root_path, name))
|
sources.append(os.path.join(root_path, name))
|
||||||
return sources
|
return sources
|
||||||
|
|
||||||
|
|
||||||
|
def _find_flags() -> dict[str, bool]:
|
||||||
|
return {
|
||||||
|
key: bool(int(value))
|
||||||
|
for (key, value) in sorted(os.environ.items())
|
||||||
|
if key.startswith("WITH_")
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
def _make_d_flags(flags: dict[str, bool]) -> list[str]:
|
||||||
|
return [
|
||||||
|
f"-D{key}"
|
||||||
|
for (key, value) in flags.items()
|
||||||
|
if value
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
def _make_d_features(flags: dict[str, bool]) -> str:
|
||||||
|
features = " ".join([
|
||||||
|
f"{key}={int(value)}"
|
||||||
|
for (key, value) in flags.items()
|
||||||
|
])
|
||||||
|
return f"-DUS_FEATURES=\"{features}\""
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
flags = _find_flags()
|
||||||
setup(
|
setup(
|
||||||
name="ustreamer",
|
name="ustreamer",
|
||||||
version="6.29",
|
version="6.29",
|
||||||
@ -26,9 +51,13 @@ if __name__ == "__main__":
|
|||||||
Extension(
|
Extension(
|
||||||
"ustreamer",
|
"ustreamer",
|
||||||
libraries=["rt", "m", "pthread"],
|
libraries=["rt", "m", "pthread"],
|
||||||
extra_compile_args=["-std=c17", "-D_GNU_SOURCE"],
|
extra_compile_args=[
|
||||||
|
"-std=c17", "-D_GNU_SOURCE",
|
||||||
|
_make_d_features(flags),
|
||||||
|
*_make_d_flags(flags),
|
||||||
|
],
|
||||||
undef_macros=["NDEBUG"],
|
undef_macros=["NDEBUG"],
|
||||||
sources=_find_sources(".c"),
|
sources=_find_sources(),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|||||||
@ -325,6 +325,7 @@ PyMODINIT_FUNC PyInit_ustreamer(void) {
|
|||||||
ADD(StringConstant, "VERSION", US_VERSION);
|
ADD(StringConstant, "VERSION", US_VERSION);
|
||||||
ADD(IntConstant, "VERSION_MAJOR", US_VERSION_MAJOR);
|
ADD(IntConstant, "VERSION_MAJOR", US_VERSION_MAJOR);
|
||||||
ADD(IntConstant, "VERSION_MINOR", US_VERSION_MINOR);
|
ADD(IntConstant, "VERSION_MINOR", US_VERSION_MINOR);
|
||||||
|
ADD(StringConstant, "FEATURES", US_FEATURES); // Defined in setup.py
|
||||||
ADD(ObjectRef, "Memsink", (PyObject*)&_MemsinkType);
|
ADD(ObjectRef, "Memsink", (PyObject*)&_MemsinkType);
|
||||||
# undef ADD
|
# undef ADD
|
||||||
return module;
|
return module;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user