1
0
mirror of https://github.com/TREX-CoE/trexio.git synced 2024-07-22 10:47:43 +02:00

better python build

This commit is contained in:
q-posev 2021-08-05 10:34:16 +03:00
parent 60c28c1f3b
commit b8c188343e
2 changed files with 26 additions and 12 deletions

View File

@ -184,29 +184,41 @@ cppcheck.out: $(trexio_h)
-I../include *.c *.h 2>../$@
setup_py = $(srcdir)/setup.py
setup_cfg = $(srcdir)/setup.cfg
pytrexio_py = $(srcdir)/src/pytrexio.py
pytrexio_c = $(srcdir)/src/pytrexio_wrap.c
pytrexio_i = $(srcdir)/src/pytrexio.i
TESTS_PY = $(srcdir)/tests/test_py.py
#python-prepare:
# cp include/trexio.h src/*.c src/*.h python/src/
python: _pytrexio*.so
python-test: test.py _pytrexio*.so
python3 test.py
$(RM) -r -- __pycache__
python-test: $(TESTS_PY) $(pytrexio_py)
cp $(pytrexio_py) .
python3 $(TESTS_PY)
$(RM) -r -- __pycache__ pytrexio.py
python-sdist: setup.py
python-sdist: $(setup_py) $(pytrexio_py)
python3 setup.py sdist
python-build: pyproject.toml setup.py setup.cfg MANIFEST.in
python-build: $(setup_py) $(pytrexio_py) pyproject.toml
python3 -m build
python-release: pyproject.toml setup.py setup.cfg MANIFEST.in
python-release: $(setup_py) $(pytrexio_py) pyproject.toml
python3 -m twine upload --repository testpypi dist/*
# Advanced compilation using Python-native distutils
#
# swig -python -threads pytrexio.i ----> Add thread support for all the interface
#
_pytrexio*.so: $(ORG_FILES) $(trexio_h) src/pytrexio.i
$(pytrexio_c): $(ORG_FILES) $(trexio_h) $(pytrexio_i)
cp $(trexio_h) src/
cd src/ && swig -python -py3 -o pytrexio_wrap.c pytrexio.i
_pytrexio*.so: $(pytrexio_c) $(setup_py)
python3 setup.py build_ext --inplace --swig-opts="-modern"
$(RM) -- src/trexio.h
@ -225,7 +237,7 @@ _pytrexio*.so: $(ORG_FILES) $(trexio_h) src/pytrexio.i
CLEANFILES += src/pytrexio_wrap.c src/pytrexio.py _pytrexio*.so
.PHONY: cppcheck python python-build python-test
.PHONY: cppcheck python python-build python-test python-release
endif

View File

@ -11,6 +11,7 @@ import os
rootpath = os.path.dirname(os.path.abspath(__file__))
srcpath = os.path.join(rootpath, 'src')
c_files = ['trexio.c', 'trexio_hdf5.c', 'trexio_text.c', 'pytrexio_wrap.c']
h_files = ['trexio.h', 'trexio_hdf5.h', 'trexio_text.h', 'trexio_s.h', 'trexio_private.h']
with open("README.md", "r") as fh:
@ -19,7 +20,7 @@ with open("README.md", "r") as fh:
pytrexio_module = Extension('_pytrexio',
sources = [os.path.join(srcpath, code) for code in c_files],
include_dirs = ['/usr/include/hdf5/serial', 'srcpath'],
include_dirs = ['/usr/include/hdf5/serial', srcpath],
libraries = ['hdf5', 'hdf5_hl'],
extra_compile_args = ['-Wno-discarded-qualifiers'],
extra_link_args = ['-L/usr/lib/x86_64-linux-gnu/hdf5/serial']
@ -28,13 +29,14 @@ pytrexio_module = Extension('_pytrexio',
setup(name = 'pytrexio',
version = '0.1',
author = "Evgeny Posenitskiy",
author = "TREX-CoE",
author_email = "posenitskiy@irsamc.ups-tlse.fr",
description = """Python API of the TREXIO library""",
long_description = long_description,
long_description_content_type="text/markdown",
long_description_content_type = "text/markdown",
ext_modules = [pytrexio_module],
py_modules = ["pytrexio"],
scripts = ["tests/test_py.py"],
url = 'https://github.com/TREX-CoE/trexio',
license = 'BSD',
packages = find_packages(),