Skip to content
Snippets Groups Projects
Commit 6f9d330d authored by Jan Moren's avatar Jan Moren
Browse files

Add a check for mpi4py version during Cythin compilation.

Version 2 of mpi4py has changed the name of a submodule from mpi_c to
libmpi. We need to check which one to use at compile time.
parent 4bd302e5
No related branches found
No related tags found
No related merge requests found
EXTRA_DIST = setup.py.in pymusic.pyx pymusic.pxd music_c.h pybuffer.pyx pybuffer.pxd EXTRA_DIST = setup.py.in tests.py pymusic.pyx pymusic.pxd music_c.h pybuffer.pyx pybuffer.pxd
BUILT_SOURCES = pymusic.cpp pybuffer.cpp BUILT_SOURCES = pymusic.cpp pybuffer.cpp
pybuffer.cpp: pybuffer.pyx pybuffer.pxd
pyconfig.pxi: tests.py
cd $(top_srcdir)/pymusic; $(PYTHON) tests.py
pybuffer.cpp: pyconfig.pxi pybuffer.pyx pybuffer.pxd
cd $(top_srcdir)/pymusic; $(PYTHON) -c \ cd $(top_srcdir)/pymusic; $(PYTHON) -c \
"from Cython.Build import cythonize; \ "from Cython.Build import cythonize; \
cythonize('pybuffer.pyx', verbose=1)" cythonize('pybuffer.pyx', verbose=1)"
pymusic.cpp: pymusic.pyx pymusic.pxd pymusic.cpp: pyconfig.pxi pymusic.pyx pymusic.pxd
cd $(top_srcdir)/pymusic; $(PYTHON) -c \ cd $(top_srcdir)/pymusic; $(PYTHON) -c \
"from Cython.Build import cythonize; \ "from Cython.Build import cythonize; \
cythonize('pymusic.pyx', verbose=1)" cythonize('pymusic.pyx', verbose=1)"
......
...@@ -3,8 +3,12 @@ ...@@ -3,8 +3,12 @@
cdef extern from "mpi_compat.h": cdef extern from "mpi_compat.h":
pass pass
include "pyconfig.pxi"
cimport mpi4py.MPI as MPI cimport mpi4py.MPI as MPI
from mpi4py.mpi_c cimport * IF MPI4V2:
from mpi4py.libmpi cimport *
ELSE:
from mpi4py.mpi_c cimport *
cdef extern from "music/pymusic_c.h": cdef extern from "music/pymusic_c.h":
object PyUnicodeString_FromString(const char*) object PyUnicodeString_FromString(const char*)
......
...@@ -3,8 +3,12 @@ ...@@ -3,8 +3,12 @@
cdef extern from "mpi_compat.h": cdef extern from "mpi_compat.h":
pass pass
include "pyconfig.pxi"
cimport mpi4py.MPI as MPI cimport mpi4py.MPI as MPI
from mpi4py.mpi_c cimport * IF MPI4V2:
from mpi4py.libmpi cimport *
ELSE:
from mpi4py.mpi_c cimport *
from libcpp cimport bool as cbool from libcpp cimport bool as cbool
from libcpp.string cimport string from libcpp.string cimport string
......
# compile time python tests
# Test mpi4py version
import mpi4py
from distutils.version import LooseVersion
is_v2 = LooseVersion(mpi4py.__version__) > LooseVersion("1.3.1")
# Write configuration file
with open("pyconfig.pxi", "w") as f:
f.write("DEF MPI4V2 = {0}".format(is_v2))
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment