1
0
mirror of https://github.com/TREX-CoE/qmckl.git synced 2024-07-20 01:43:50 +02:00
qmckl/python/build_pyqmckl.sh

44 lines
893 B
Bash
Raw Normal View History

#!/bin/bash
2022-05-02 13:39:22 +02:00
set -e
set -x
2022-05-02 17:52:11 +02:00
cp ../include/qmckl.h .
2022-05-03 13:34:38 +02:00
cd src/
# check if qmckl header exists
if [[ ! -f 'qmckl.h' ]]; then
echo "qmckl.h NOT FOUND"
exit 1
fi
# process the qmckl header file to get patterns for SWIG
2022-05-03 13:34:38 +02:00
python process_header.py
# check if SWIG files exist
SWIG_LIST='pyqmckl.i pyqmckl_include.i numpy.i'
for file in $SWIG_LIST; do
if [[ ! -f $file ]]; then
echo "$file NOT FOUND"
exit 1
fi
done
# run SWIG interface file to produce the Python wrappers
2022-05-02 13:39:22 +02:00
swig -python -py3 -o pyqmckl_wrap.c pyqmckl.i
# compile the wrapper code
cc -c -fPIC `pkg-config --cflags qmckl` -I/usr/include/python3.8 pyqmckl_wrap.c -o pyqmckl_wrap.o
2022-05-02 13:39:22 +02:00
# link against the previously installed QMCkl library (as detected by pkg-config)
cc -shared pyqmckl_wrap.o `pkg-config --libs qmckl` -o _pyqmckl.so
2022-05-02 13:39:22 +02:00
2022-05-03 13:34:38 +02:00
cd ..
# test
2022-05-03 13:34:38 +02:00
cp src/_pyqmckl.so src/pyqmckl.py -- test/
cd test
python test_api.py
2022-05-02 13:39:22 +02:00