Merge pull request #118 from miroi/msmpi

adapt fc_mpi test for MS Windows by utilizing ms-mpi package
This commit is contained in:
Radovan Bast 2015-09-08 11:50:33 +02:00
commit 9ee88ad81e
4 changed files with 33 additions and 9 deletions

View File

@ -50,10 +50,26 @@ build_script:
# download and unpack the OpenBLAS library, integer*4 (or i32lp64) version # download and unpack the OpenBLAS library, integer*4 (or i32lp64) version
- ps: wget http://skylink.dl.sourceforge.net/project/openblas/v0.2.14/OpenBLAS-v0.2.14-Win64-int32.zip -OutFile OpenBLAS-v0.2.14-Win64-int32.zip - ps: wget http://skylink.dl.sourceforge.net/project/openblas/v0.2.14/OpenBLAS-v0.2.14-Win64-int32.zip -OutFile OpenBLAS-v0.2.14-Win64-int32.zip
- 7z x OpenBLAS-v0.2.14-Win64-int32.zip > NUL - 7z x OpenBLAS-v0.2.14-Win64-int32.zip > NUL
#
# add both OpenBLAS dynamic (libopenblas.dll) and static (libopenblas.a) library files dir to path # add both OpenBLAS dynamic (libopenblas.dll) and static (libopenblas.a) library files dir to path
- set path=%path%;C:\software\OpenBLAS-v0.2.14-Win64-int32\bin;C:\software\OpenBLAS-v0.2.14-Win64-int32\lib;C:\software\OpenBLAS-v0.2.14-Win64-int32\include - set path=%path%;C:\software\OpenBLAS-v0.2.14-Win64-int32\bin;C:\software\OpenBLAS-v0.2.14-Win64-int32\lib;C:\software\OpenBLAS-v0.2.14-Win64-int32\include
# download and unpack MSMPI library (Windows version of OpenMPI)
# follow http://www.symscape.com/configure-msmpi-for-mingw-w64#comment-1824
- mkdir C:\software\msmpi && cd C:\software\msmpi
- ps: wget http://download.microsoft.com/download/A/1/3/A1397A8C-4751-433C-8330-F738C3BE2187/mpi_x64.Msi -OutFile mpi_x64.Msi
- 7z x mpi_x64.Msi
- gendef msmpi64.dll
- dlltool -d msmpi64.def -l libmsmpi64.a -D msmpi64.dll
- del mpi.f90
- ps: wget http://web-docs.gsi.de/~milias/msmpi/mpi.F90 -OutFile mpi.F90
- gfortran -c -D_WIN64 -D INT_PTR_KIND()=8 -fno-range-check mpi.F90
- del mpif.h
- ps: wget http://web-docs.gsi.de/~milias/msmpi/mpif.h -OutFile mpif.h
- dir
# add msmpi to path
- set path=%path%;C:\software\msmpi
# download and upgrade pip # download and upgrade pip
- ps: wget https://bootstrap.pypa.io/get-pip.py -OutFile get-pip.py - ps: wget https://bootstrap.pypa.io/get-pip.py -OutFile get-pip.py

View File

@ -8,11 +8,11 @@ source: ../../../modules/fc.cmake
[mpi] [mpi]
source: ../../../modules/mpi.cmake source: ../../../modules/mpi.cmake
[int64]
source: ../../../modules/int64.cmake
[default_build_paths] [default_build_paths]
source: ../../../modules/default_build_paths.cmake source: ../../../modules/default_build_paths.cmake
[src] [src]
source: ../../../modules/src.cmake source: ../../../modules/src.cmake
[definitions]
source: ../../../modules/definitions.cmake

View File

@ -1,5 +1,9 @@
if (MPI_FOUND) if (MPI_FOUND)
add_executable(example example.F90) add_executable(example example.F90)
if (CMAKE_SYSTEM_NAME MATCHES "Windows")
# respect paths in appveyor.yml
target_link_libraries(example "C:/software/msmpi/libmsmpi64.a")
endif()
else() else()
message(FATAL "MPI not found!") message(FATAL "MPI not found!")
endif() endif()

View File

@ -157,14 +157,18 @@ def test_fc_int64():
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
@skip_on_windows def test_fc_mpi():
def test_fc_mpi_module(): if sys.platform == 'win32':
configure_build_and_exe('fc_mpi', 'python setup.py --mpi --fc=mpif90 --extra-fc-flags="-D USE_MPI_MODULE"', 'mpirun -np 2') configure_build_and_exe('fc_mpi', 'python setup.py --mpi --fc=gfortran --extra-fc-flags="-D_WIN64 -D INT_PTR_KIND()=8 -fno-range-check" --add-definitions="-D USE_MPI_MODULE"', 'mpiexec -n 2')
else:
configure_build_and_exe('fc_mpi', 'python setup.py --mpi --fc=mpif90 --add-definitions="-D USE_MPI_MODULE"', 'mpirun -np 2')
@skip_on_windows
def test_fc_mpi_include(): def test_fc_mpi_include():
configure_build_and_exe('fc_mpi', 'python setup.py --mpi --fc=mpif90', 'mpirun -np 2') if sys.platform == 'win32':
configure_build_and_exe('fc_mpi', 'python setup.py --mpi --fc=gfortran --extra-fc-flags="-D_WIN64 -D INT_PTR_KIND()=8 -fno-range-check"', 'mpiexec -np 2')
else:
configure_build_and_exe('fc_mpi', 'python setup.py --mpi --fc=mpif90', 'mpirun -np 2')
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------