mirror of
https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git
synced 2026-10-24 00:48:53 +03:00
The version, package, and platform information is not necessary to compile and stage the extensions, so drop that information. If we need to add it back, we can use `dist.parse_config_files()` to parse information from the pyproject.toml. Signed-off-by: Vincent Fazio <vfazio@gmail.com> Link: https://patch.msgid.link/20260401001459.19159-2-vfazio@gmail.com Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
83 lines
2.0 KiB
Python
83 lines
2.0 KiB
Python
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
# SPDX-FileCopyrightText: 2023 Phil Howard <phil@gadgetoid.com>
|
|
|
|
"""
|
|
Bring up just enough of setuptools/distutils in order to build the gpiod
|
|
test module C extensions.
|
|
|
|
Set "build_temp" and "build_lib" so that our source directory is not
|
|
polluted with artefacts in build/
|
|
|
|
Builds:
|
|
|
|
tests/gpiosim/_ext.<target>.so
|
|
tests/system/_ext.<target>.so
|
|
|
|
"""
|
|
|
|
import glob
|
|
import tempfile
|
|
from os import getenv, path
|
|
|
|
from setuptools import Distribution, Extension, logging
|
|
from setuptools.command.build_ext import build_ext
|
|
|
|
logging.configure()
|
|
|
|
TOP_SRCDIR = getenv("TOP_SRCDIR", "../../")
|
|
TOP_BUILDDIR = getenv("TOP_BUILDDIR", "../../")
|
|
|
|
|
|
# The tests are run in-place with PYTHONPATH set to bindings/python
|
|
# so we need the gpiod extension module too.
|
|
gpiod_ext = Extension(
|
|
"gpiod._ext",
|
|
sources=glob.glob("gpiod/ext/*.c"),
|
|
define_macros=[("_GNU_SOURCE", "1")],
|
|
libraries=["gpiod"],
|
|
extra_compile_args=["-Wall", "-Wextra"],
|
|
include_dirs=[
|
|
path.join(TOP_SRCDIR, "include"),
|
|
],
|
|
library_dirs=[
|
|
path.join(TOP_BUILDDIR, "lib/.libs"),
|
|
],
|
|
)
|
|
|
|
gpiosim_ext = Extension(
|
|
"tests.gpiosim._ext",
|
|
sources=["tests/gpiosim/ext.c"],
|
|
define_macros=[("_GNU_SOURCE", "1")],
|
|
libraries=["gpiosim"],
|
|
extra_compile_args=["-Wall", "-Wextra"],
|
|
include_dirs=[
|
|
path.join(TOP_SRCDIR, "include"),
|
|
path.join(TOP_SRCDIR, "tests/gpiosim"),
|
|
],
|
|
library_dirs=[
|
|
path.join(TOP_BUILDDIR, "lib/.libs"),
|
|
path.join(TOP_BUILDDIR, "tests/gpiosim/.libs"),
|
|
],
|
|
)
|
|
|
|
system_ext = Extension(
|
|
"tests.system._ext",
|
|
sources=["tests/system/ext.c"],
|
|
define_macros=[("_GNU_SOURCE", "1")],
|
|
extra_compile_args=["-Wall", "-Wextra"],
|
|
)
|
|
|
|
dist = Distribution(
|
|
{
|
|
"ext_modules": [gpiosim_ext, system_ext, gpiod_ext],
|
|
}
|
|
)
|
|
|
|
with tempfile.TemporaryDirectory(prefix="libgpiod-") as temp_dir:
|
|
command = build_ext(dist)
|
|
command.inplace = True
|
|
command.build_temp = temp_dir
|
|
command.build_lib = temp_dir
|
|
command.finalize_options()
|
|
command.run()
|