From 747fb056301257211772bdce2ecdd44d72e1278e Mon Sep 17 00:00:00 2001 From: Radovan Bast Date: Fri, 18 Sep 2015 15:44:55 +0200 Subject: [PATCH] pedestrian workaround for Fortran OMP --- modules/omp.cmake | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/modules/omp.cmake b/modules/omp.cmake index 6582608..ebab65f 100644 --- a/modules/omp.cmake +++ b/modules/omp.cmake @@ -24,7 +24,25 @@ if(ENABLE_OPENMP) find_package(OpenMP) if(OPENMP_FOUND) if(DEFINED CMAKE_Fortran_COMPILER_ID) - set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} ${OpenMP_Fortran_FLAGS}") + # the following works with recent CMake (added Aug 2014) + # set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} ${OpenMP_Fortran_FLAGS}") + + # therefore we use a pedestrian approach: + if(CMAKE_Fortran_COMPILER_ID MATCHES GNU) + set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fopenmp") + endif() + if(CMAKE_Fortran_COMPILER_ID MATCHES Intel) + set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -openmp") + endif() + if(CMAKE_Fortran_COMPILER_ID MATCHES PGI) + set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -mp") + endif() + if(CMAKE_Fortran_COMPILER_ID MATCHES XL) + set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -qsmp") + endif() + if(CMAKE_Fortran_COMPILER_ID MATCHES Cray) + # do nothing in this case + endif() endif() if(DEFINED CMAKE_C_COMPILER_ID) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")