| 
									
										
										
										
											2015-01-26 04:02:46 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-17 10:38:56 +00:00
										 |  |  | set (MPI_YAP_SOURCES | 
					
						
							| 
									
										
										
										
											2015-01-26 04:02:46 +00:00
										 |  |  |   hash.c prologterms2c.c yap_mpi.c)
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-01-04 14:11:09 +00:00
										 |  |  |   macro_optional_find_package(MPI ON)
 | 
					
						
							| 
									
										
										
										
											2018-03-17 10:38:56 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   if (MPI_FOUND)
 | 
					
						
							|  |  |  |     if (MPI_C_FOUND)
 | 
					
						
							| 
									
										
										
										
											2015-01-26 04:02:46 +00:00
										 |  |  |   # === Variables ===
 | 
					
						
							|  |  |  |   #
 | 
					
						
							| 
									
										
										
										
											2014-12-04 07:59:30 +00:00
										 |  |  |   # This module will set the following variables per language in your
 | 
					
						
							|  |  |  |   # project, where <lang> is one of C, CXX, or Fortran:
 | 
					
						
							|  |  |  |   #
 | 
					
						
							|  |  |  |   # ::
 | 
					
						
							|  |  |  |   #
 | 
					
						
							|  |  |  |   #    MPI_<lang>_FOUND           TRUE if FindMPI found MPI flags for <lang>
 | 
					
						
							|  |  |  |   #    MPI_<lang>_COMPILER        MPI Compiler wrapper for <lang>
 | 
					
						
							|  |  |  |   #    MPI_<lang>_COMPILE_FLAGS   Compilation flags for MPI programs
 | 
					
						
							|  |  |  |   #    MPI_<lang>_INCLUDE_PATH    Include path(s) for MPI header
 | 
					
						
							|  |  |  |   #    MPI_<lang>_LINK_FLAGS      Linking flags for MPI programs
 | 
					
						
							|  |  |  |   #    MPI_<lang>_LIBRARIES       All libraries to link MPI programs against
 | 
					
						
							|  |  |  |   #
 | 
					
						
							|  |  |  |   # Additionally, FindMPI sets the following variables for running MPI
 | 
					
						
							|  |  |  |   # programs from the command line:
 | 
					
						
							|  |  |  |   #
 | 
					
						
							|  |  |  |   # ::
 | 
					
						
							|  |  |  |   #
 | 
					
						
							|  |  |  |   #    MPIEXEC                    Executable for running MPI programs
 | 
					
						
							|  |  |  |   #    MPIEXEC_NUMPROC_FLAG       Flag to pass to MPIEXEC before giving
 | 
					
						
							|  |  |  |   #                               it the number of processors to run on
 | 
					
						
							|  |  |  |   #    MPIEXEC_PREFLAGS           Flags to pass to MPIEXEC directly
 | 
					
						
							|  |  |  |   #                               before the executable to run.
 | 
					
						
							|  |  |  |   #    MPIEXEC_POSTFLAGS          Flags to pass to MPIEXEC after other flags
 | 
					
						
							|  |  |  |   #
 | 
					
						
							| 
									
										
										
										
											2015-01-26 04:02:46 +00:00
										 |  |  |   # === Usage ===
 | 
					
						
							|  |  |  |   #
 | 
					
						
							|  |  |  |   # To use this module, simply call FindMPI from a CMakeLists.txt file, or
 | 
					
						
							|  |  |  |   # run find_package(MPI), then run CMake.  If you are happy with the
 | 
					
						
							|  |  |  |   # auto- detected configuration for your language, then you're done.  If
 | 
					
						
							|  |  |  |   # not, you have two options:
 | 
					
						
							|  |  |  |   #
 | 
					
						
							|  |  |  |   # ::
 | 
					
						
							|  |  |  |   #
 | 
					
						
							|  |  |  |   #    1. Set MPI_<lang>_COMPILER to the MPI wrapper (mpicc, etc.) of your
 | 
					
						
							|  |  |  |   #       choice and reconfigure.  FindMPI will attempt to determine all the
 | 
					
						
							|  |  |  |   #       necessary variables using THAT compiler's compile and link flags.
 | 
					
						
							|  |  |  |   #    2. If this fails, or if your MPI implementation does not come with
 | 
					
						
							|  |  |  |   #       a compiler wrapper, then set both MPI_<lang>_LIBRARIES and
 | 
					
						
							|  |  |  |   #       MPI_<lang>_INCLUDE_PATH.  You may also set any other variables
 | 
					
						
							|  |  |  |   #       listed above, but these two are required.  This will circumvent
 | 
					
						
							|  |  |  |   #       autodetection entirely.
 | 
					
						
							|  |  |  |   #
 | 
					
						
							|  |  |  |   # When configuration is successful, MPI_<lang>_COMPILER will be set to
 | 
					
						
							|  |  |  |   # the compiler wrapper for <lang>, if it was found.  MPI_<lang>_FOUND
 | 
					
						
							|  |  |  |   # and other variables above will be set if any MPI implementation was
 | 
					
						
							|  |  |  |   # found for <lang>, regardless of whether a compiler was found.
 | 
					
						
							|  |  |  |   #
 | 
					
						
							|  |  |  |   # When using MPIEXEC to execute MPI applications, you should typically
 | 
					
						
							|  |  |  |   # use all of the MPIEXEC flags as follows:
 | 
					
						
							|  |  |  |   #
 | 
					
						
							|  |  |  |   # ::
 | 
					
						
							|  |  |  |   #
 | 
					
						
							|  |  |  |   #    ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} PROCS
 | 
					
						
							|  |  |  |   #      ${MPIEXEC_PREFLAGS} EXECUTABLE ${MPIEXEC_POSTFLAGS} ARGS
 | 
					
						
							|  |  |  |   #
 | 
					
						
							|  |  |  |   # where PROCS is the number of processors on which to execute the
 | 
					
						
							|  |  |  |   # program, EXECUTABLE is the MPI program, and ARGS are the arguments to
 | 
					
						
							|  |  |  |   # pass to the MPI program.
 | 
					
						
							|  |  |  |   #
 | 
					
						
							| 
									
										
										
										
											2019-01-09 09:32:09 +00:00
										 |  |  | add_library(yap_mpi ${MPI_YAP_SOURCES})
 | 
					
						
							| 
									
										
										
										
											2015-02-03 02:40:41 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-26 12:02:39 +01:00
										 |  |  |  target_link_libraries(yap_mpi libYap ${MPI_C_LIBRARIES})
 | 
					
						
							| 
									
										
										
										
											2014-12-04 07:59:30 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-26 12:02:39 +01:00
										 |  |  |   include_directories( ${MPI_C_INCLUDE_PATH} ${CMAKE_BINARY_DIR})
 | 
					
						
							| 
									
										
										
										
											2015-01-26 04:02:46 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-22 21:40:11 +01:00
										 |  |  | set_property( DIRECTORY  APPEND PROPERTY COMPILE_DEFINITIONS  HAVE_MPI_H=1)
 | 
					
						
							|  |  |  |    target_compile_options(yap_mpi | 
					
						
							|  |  |  |    PUBLIC ${MPI_C_COMPILE_FLAGS})
 | 
					
						
							| 
									
										
										
										
											2015-02-11 01:50:59 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-01-26 04:02:46 +00:00
										 |  |  |   install(TARGETS  yap_mpi | 
					
						
							| 
									
										
										
										
											2018-11-16 14:02:56 +00:00
										 |  |  |     RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
 | 
					
						
							|  |  |  |       LIBRARY DESTINATION ${YAP_INSTALL_LIBDIR}
 | 
					
						
							|  |  |  |   ARCHIVE DESTINATION ${YAP_INSTALL_LIBDIR}
 | 
					
						
							| 
									
										
										
										
											2015-01-26 04:02:46 +00:00
										 |  |  |     )
 | 
					
						
							| 
									
										
										
										
											2015-02-03 02:40:41 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-17 10:38:56 +00:00
										 |  |  |   endif (MPI_C_FOUND)
 | 
					
						
							|  |  |  | endif (MPI_FOUND)
 |