mirror of
https://github.com/pikvm/ustreamer.git
synced 2025-12-23 18:50:00 +00:00
59 lines
1.4 KiB
Python
59 lines
1.4 KiB
Python
import os
|
|
|
|
from setuptools import Extension
|
|
from setuptools import setup
|
|
|
|
|
|
# =====
|
|
def _find_sources() -> list[str]:
|
|
sources: list[str] = []
|
|
for (root_path, _, names) in os.walk("src"):
|
|
for name in names:
|
|
if name.endswith(".c"):
|
|
sources.append(os.path.join(root_path, name))
|
|
return sources
|
|
|
|
|
|
def _find_flags() -> dict[str, bool]:
|
|
return {
|
|
key[3:]: (value.strip().lower() in ["true", "on", "1"])
|
|
for (key, value) in sorted(os.environ.items())
|
|
if key.startswith("MK_WITH_")
|
|
}
|
|
|
|
|
|
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}\""
|
|
|
|
|
|
def main() -> None:
|
|
flags = _find_flags()
|
|
setup(
|
|
name="ustreamer",
|
|
version="6.42",
|
|
description="uStreamer tools",
|
|
author="Maxim Devaev",
|
|
author_email="mdevaev@gmail.com",
|
|
url="https://github.com/pikvm/ustreamer",
|
|
ext_modules=[
|
|
Extension(
|
|
"ustreamer",
|
|
libraries=["rt", "m", "pthread"],
|
|
extra_compile_args=[
|
|
"-std=c17", "-D_GNU_SOURCE",
|
|
_make_d_features(flags),
|
|
],
|
|
undef_macros=["NDEBUG"],
|
|
sources=_find_sources(),
|
|
),
|
|
],
|
|
)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|