pantry/projects/github.com/python-cffi/cffi/package.yml
2024-01-19 10:38:59 -05:00

53 lines
No EOL
1.2 KiB
YAML

distributable:
url: git+https://github.com/python-cffi/cffi.git
ref: ${{version.tag}}
versions:
github: python-cffi/cffi
dependencies:
python.org: '>=3.11'
github.com/eliben/pycparser: ^2.21
sourceware.org/libffi: ^3.4
runtime:
env:
PYTHONPATH: ${{prefix}}/lib/python3/site-packages:$PYTHONPATH
build:
- python -m pip install . --prefix={{prefix}}
- run: ln -s python{{deps.python.org.version.marketing}} python{{deps.python.org.version.major}}
working-directory: ${{prefix}}/lib
test:
dependencies:
llvm.org: '*'
script:
- clang -shared sum.c -o $SHARED_LIBRARY
- run: |
cat << EOF > sum_build.py
from cffi import FFI
ffibuilder = FFI()
declaration = """
int sum(int a, int b);
"""
ffibuilder.cdef(declaration)
ffibuilder.set_source(
"_sum_cffi",
declaration,
libraries=['sum'],
extra_link_args=['-L$PWD', '-Wl,-rpath,$PWD']
)
ffibuilder.compile(verbose=True)
EOF
- python sum_build.py
- python -c "import _sum_cffi; assert _sum_cffi.lib.sum(1, 2) == 3"
env:
CC: clang
linux:
SHARED_LIBRARY: libsum.so
darwin:
SHARED_LIBRARY: libsum.dylib