Fixed Windows build, cleaned up messages during build, using SCM version numbering, added ruff.
This commit is contained in:
+2
-2
@@ -4,8 +4,8 @@
|
||||
/dist
|
||||
/build
|
||||
/pyaegis/build
|
||||
/pyaegis/_aegis.*.so
|
||||
/pyaegis/_aegis.*.pyd
|
||||
/pyaegis/_aegis*.so
|
||||
/pyaegis/_aegis*.pyd
|
||||
__pycache__
|
||||
!.gitignore
|
||||
!.gitmodules
|
||||
|
||||
@@ -4,10 +4,8 @@ include tools/build_backend.py
|
||||
include BUILD.md
|
||||
include README.md
|
||||
recursive-include libaegis *.c *.h *.zig *.zon
|
||||
include libaegis/CMakeLists.txt
|
||||
include libaegis/LICENSE
|
||||
include libaegis/README.md
|
||||
recursive-include libaegis/cmake *.cmake *.cmake.in
|
||||
graft libaegis/src
|
||||
include libaegis/build.zig
|
||||
include libaegis/build.zig.zon
|
||||
|
||||
+6
-2
@@ -1,11 +1,11 @@
|
||||
[build-system]
|
||||
requires = ["setuptools>=61.0", "cffi>=2.0.0"]
|
||||
requires = ["setuptools>=61.0", "cffi>=2.0.0", "setuptools-scm>=8.0"]
|
||||
build-backend = "build_backend"
|
||||
backend-path = ["tools"]
|
||||
|
||||
[project]
|
||||
name = "pyaegis"
|
||||
version = "0.3.1"
|
||||
dynamic = ["version"]
|
||||
description = "Python bindings for libaegis"
|
||||
requires-python = ">=3.10"
|
||||
classifiers = [
|
||||
@@ -25,7 +25,9 @@ Homepage = "https://github.com/LeoVasanko/pyaegis"
|
||||
[dependency-groups]
|
||||
dev = [
|
||||
"pytest>=8.4.2",
|
||||
"ruff>=0.14.4",
|
||||
"setuptools>=80.9.0",
|
||||
"setuptools-scm>=9.2.2",
|
||||
]
|
||||
|
||||
[tool.setuptools]
|
||||
@@ -33,3 +35,5 @@ packages = ["pyaegis"]
|
||||
|
||||
[tool.setuptools.package-data]
|
||||
pyaegis = ["*.h", "*.so", "*.pyd"]
|
||||
|
||||
[tool.setuptools_scm]
|
||||
|
||||
@@ -1,28 +1,24 @@
|
||||
"""Setup script for pyaegis - builds CFFI extension linking to libaegis.a"""
|
||||
"""Setup script for pyaegis - builds CFFI extension with libaegis C library."""
|
||||
|
||||
import os
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
from cffi import FFI
|
||||
from setuptools import setup
|
||||
|
||||
# Locate the static library (built by build_backend.py before this runs)
|
||||
lib_name = "aegis.lib" if sys.platform == "win32" else "libaegis.a"
|
||||
libaegis_static = Path("libaegis/zig-out/lib") / lib_name
|
||||
if not libaegis_static.exists():
|
||||
raise RuntimeError(f"libaegis static library not found at {libaegis_static}")
|
||||
libaegis_static = str(libaegis_static.resolve())
|
||||
|
||||
def find_libaegis():
|
||||
"""Locate libaegis.a - check common locations."""
|
||||
libaegis_paths = [
|
||||
Path("libaegis/zig-out/lib/libaegis.a"), # Zig build output (repo build)
|
||||
Path("libaegis/build/libaegis.a"), # CMake build output (repo build)
|
||||
Path("/usr/local/lib/libaegis.a"), # System install
|
||||
Path("/usr/lib/libaegis.a"), # System install
|
||||
]
|
||||
|
||||
for path in libaegis_paths:
|
||||
if path.exists():
|
||||
print(f"Found libaegis.a at: {path.resolve()}")
|
||||
return str(path.resolve())
|
||||
|
||||
# Return None instead of raising - will be caught during build
|
||||
return None
|
||||
|
||||
# Include directory for headers
|
||||
libaegis_include = Path("libaegis/src/include")
|
||||
if not libaegis_include.exists():
|
||||
raise RuntimeError(f"libaegis include directory not found at {libaegis_include}")
|
||||
include_dirs = [str(libaegis_include)]
|
||||
|
||||
# Read the CDEF header
|
||||
cdef_path = Path(__file__).parent / "pyaegis" / "aegis_cdef.h"
|
||||
@@ -32,15 +28,6 @@ cdef_content = cdef_path.read_text(encoding="utf-8")
|
||||
ffibuilder = FFI()
|
||||
ffibuilder.cdef(cdef_content)
|
||||
|
||||
# Include directory for headers
|
||||
include_dirs = []
|
||||
libaegis_include = Path("libaegis/src/include")
|
||||
if libaegis_include.exists():
|
||||
include_dirs.append(str(libaegis_include.resolve()))
|
||||
|
||||
# Try to find libaegis.a, but don't fail if not found (build backend will build it)
|
||||
libaegis_static = find_libaegis()
|
||||
|
||||
# Set the source
|
||||
ffibuilder.set_source(
|
||||
"pyaegis._aegis", # module name
|
||||
@@ -54,7 +41,7 @@ ffibuilder.set_source(
|
||||
#include "aegis256x4.h"
|
||||
""",
|
||||
include_dirs=include_dirs,
|
||||
extra_objects=[libaegis_static] if libaegis_static else [],
|
||||
extra_objects=[libaegis_static],
|
||||
)
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
Reference in New Issue
Block a user