@@ -278,91 +278,59 @@ if (C_COMPILER_NAME MATCHES "^[mM][pP][iI]")
278
278
endif ()
279
279
280
280
if (WIN32 ) # Only support building with GCC & GFortran using Intel MPI (OneAPI)
281
- # Here we assume Intel ONEAPI and the environment is loaded
282
- cmake_path (SET MPI_ROOT NORMALIZE "$ENV{I_MPI_ROOT} " )
283
- set (IMPI_INCLUDES "${MPI_ROOT} /include" )
284
- set (IMPI_LIB_DIR "${MPI_ROOT} /lib/${IMPI_BUILD} " )
285
- set (IMPI_DLL_DIR "${MPI_ROOT} /bin/${IMPI_BUILD} " )
286
- set (IMPI_BIN_DIR "${MPI_ROOT} /bin" )
287
-
288
- find_library (IMPI_LIB
289
- "impi.lib"
290
- HINTS "${IMPI_LIB_DIR} "
291
- DOC "Location of the Intel MPI impi.lib file"
292
- REQUIRED
293
- NO_DEFAULT_PATH )
294
-
295
- set (MPI_impi_LIBRARY "${IMPI_LIB} " )
296
- set (MPI_impicxx_LIBRARY "${IMPI_LIB_DIR} /impicxx.lib" )
297
-
298
- find_file (IMPI_DLL
299
- "impi.dll"
300
- HINTS "${IMPI_DLL_DIR} "
301
- DOC "Location of the Intel MPI impi.dll file"
302
- REQUIRED
303
- NO_DEFAULT_PATH )
304
-
305
-
306
- add_library (IMPI::MPI SHARED IMPORTED )
307
- set_target_properties (IMPI::MPI
308
- PROPERTIES
309
- IMPORTED_IMPLIB "${IMPI_LIB} "
310
- IMPORTED_LOCATION "${IMPI_DLL} " )
311
- target_include_directories (IMPI::MPI
312
- INTERFACE "${IMPI_INCLUDES} " )
313
-
314
- set (MPI_C_INCLUDE_DIRS "${IMPI_INCLUDES} " )
315
- set (MPI_C_INCLUDE_PATH "${IMPI_INCLUDES} " )
316
- set (MPI_C_HEADER_DIR "${IMPI_INCLUDES} " )
317
- set (MPI_Fortran_COMPILER_INCLUDE_DIRS "${IMPI_INCLUDES} " )
318
- set (MPI_Fortran_F77_HEADER_DIR "${IMPI_INCLUDES} " )
319
- set (MPI_Fortran_INCLUDE_PATH "${IMPI_INCLUDES} " )
320
-
321
- set (MPI_C_LIB_NAMES impi;impicxx )
322
- set (MPI_C_LIBRARIES "${IMPI_LIB} " )
323
- set (MPI_Fortran_LIB_NAMES impi )
324
- set (MPI_Fortran_LIBRARIES "${IMPI_LIB} " )
325
-
326
- set (MPI_Fortran_HAVE_F90_MODULE FALSE )
327
- set (MPI_Fortran_HAVE_F08_MODULE FALSE )
328
-
329
- find_program (MPIEXEC_EXECUTABLE
330
- mpiexec
331
- HINTS "${IMPI_BIN_DIR} "
332
- DOC "Location of Intel MPI implementations mpiexec launcher program"
333
- REQUIRED
334
- NO_DEFAULT_PATH )
335
- set (MPIEXEC "${MPIEXEC_EXECUTABLE} " )
336
- set (MPI_EXEC_NUMPROC_FLAG -n )
337
- set (MPI_EXEC_PREFLAGS -print-all-exitcodes )
338
-
339
- set (MPI_C_FOUND TRUE )
340
- set (MPI_Fortran_FOUND TRUE )
341
-
342
- else ()
343
- find_package ( MPI )
344
-
345
- if ( (NOT MPI_C_FOUND ) OR (NOT MPI_Fortran_FOUND ) OR (NOT MPIEXEC_EXECUTABLE ))
346
- # Get default install location of MPICH from install.sh
347
- message (WARNING "Could not find all MPI components!" )
348
- message (WARNING "
281
+ # Here we assume Intel ONEAPI and the environment is loaded
282
+ set ( MPI_ASSUME_NO_BUILTIN_MPI TRUE )
283
+ set ( MPI_CXX_SKIP_MPICXX TRUE )
284
+ cmake_path (SET MPI_ROOT NORMALIZE "$ENV{I_MPI_ROOT} " )
285
+ set (IMPI_LIB_DIR "${MPI_ROOT} /lib/${IMPI_BUILD} " )
286
+ set (IMPI_DLL_DIR "${MPI_ROOT} /bin/${IMPI_BUILD} " )
287
+
288
+ find_library (IMPI_LIB
289
+ "impi.lib"
290
+ HINTS "${IMPI_LIB_DIR} "
291
+ DOC "Location of the Intel MPI impi.lib file"
292
+ REQUIRED
293
+ NO_DEFAULT_PATH )
294
+
295
+ find_file (IMPI_DLL
296
+ "impi.dll"
297
+ HINTS "${IMPI_DLL_DIR} "
298
+ DOC "Location of the Intel MPI impi.dll file"
299
+ REQUIRED
300
+ NO_DEFAULT_PATH )
301
+
302
+
303
+ set ( MPI_C_LIBRARIES ${IMPI_LIB} ;${IMPI_DLL} CACHE FILEPATH "MPI C libs to link" )
304
+ set ( MPI_C_LIB_NAMES impi CACHE FILEPATH "MPI lib names" )
305
+ set ( MPI_Fortran_LIBRARIES ${IMPI_LIB} ;${IMPI_DLL} CACHE FILEPATH "MPI Fortran libs to link" )
306
+ set ( MPI_Fortran_LIB_NAMES impi CACHE FILEPATH "MPI Fortran lib names" )
307
+ set ( MPI_impi_LIBRARY ${IMPI_LIB} CACHE FILEPATH "MPI lib to link" )
308
+
309
+ set (MPI_Fortran_HAVE_F90_MODULE FALSE )
310
+ set (MPI_Fortran_HAVE_F08_MODULE FALSE )
311
+
312
+ endif ()
313
+ find_package ( MPI )
314
+
315
+ if ( (NOT MPI_C_FOUND ) OR (NOT MPI_Fortran_FOUND ) OR (NOT MPIEXEC_EXECUTABLE ))
316
+ # Get default install location of MPICH from install.sh
317
+ message (WARNING "Could not find all MPI components!" )
318
+ message (WARNING "
349
319
MPI_C_FOUND = ${MPI_C_FOUND}
350
320
MPI_Fortran_FOUND = ${MPI_Fortran_FOUND}
351
321
MPIEXEC = ${MPIEXEC_EXECUTABLE}
352
322
" )
353
- execute_process ( COMMAND "./install.sh" -P mpich
354
- WORKING_DIRECTORY "${CMAKE_SOURCE_DIR} "
355
- OUTPUT_VARIABLE DEFAULT_MPICH_INSTALL_LOC
356
- OUTPUT_QUIET
357
- OUTPUT_STRIP_TRAILING_WHITESPACE
358
- )
359
- find_program (MY_MPI_EXEC NAMES mpirun mpiexec lamexec srun
360
- PATHS "${DEFAULT_MPICH_INSTALL_LOC} " ENV PATH
361
- HINTS "${FTN_COMPILER_DIR} " "${C_COMPILER_DIR} "
362
- PATH_SUFFIXES bin )
363
- set ( MPI_HOME "${MPI_HOME} " "${MY_MPI_EXEC} " "${MY_MPI_EXEC} /.." )
364
- find_package ( MPI REQUIRED )
365
- endif ()
323
+ execute_process ( COMMAND "./install.sh" -P mpich
324
+ WORKING_DIRECTORY "${CMAKE_SOURCE_DIR} "
325
+ OUTPUT_VARIABLE DEFAULT_MPICH_INSTALL_LOC
326
+ OUTPUT_QUIET
327
+ OUTPUT_STRIP_TRAILING_WHITESPACE )
328
+ find_program (MY_MPI_EXEC NAMES mpirun mpiexec lamexec srun
329
+ PATHS "${DEFAULT_MPICH_INSTALL_LOC} " ENV PATH
330
+ HINTS "${FTN_COMPILER_DIR} " "${C_COMPILER_DIR} "
331
+ PATH_SUFFIXES bin )
332
+ set ( MPI_HOME "${MPI_HOME} " "${MY_MPI_EXEC} " "${MY_MPI_EXEC} /.." )
333
+ find_package ( MPI REQUIRED )
366
334
endif ()
367
335
list (REMOVE_DUPLICATES MPI_Fortran_INCLUDE_PATH )
368
336
0 commit comments