From 485724ba4260028bc0b658fc0945c5fc0a77cbb7 Mon Sep 17 00:00:00 2001 From: Radovan Bast Date: Mon, 21 Sep 2015 18:10:38 +0200 Subject: [PATCH] add definition ENABLE_OPENMP --- modules/omp.cmake | 47 +++++++++++++++++++++++++---------------------- 1 file changed, 25 insertions(+), 22 deletions(-) diff --git a/modules/omp.cmake b/modules/omp.cmake index ebab65f..4df45fa 100644 --- a/modules/omp.cmake +++ b/modules/omp.cmake @@ -21,29 +21,32 @@ option(ENABLE_OPENMP "Enable OpenMP parallelization" OFF) if(ENABLE_OPENMP) - find_package(OpenMP) - if(OPENMP_FOUND) - if(DEFINED CMAKE_Fortran_COMPILER_ID) - # 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() + if(DEFINED CMAKE_Fortran_COMPILER_ID) + # we do this in a pedestrian way because the Fortran support is relatively recent + 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() + set(OPENMP_FOUND TRUE) + endif() + + if(NOT OPENMP_FOUND) + find_package(OpenMP) + endif() + + if(OPENMP_FOUND) + add_definitions(-DENABLE_OPENMP) if(DEFINED CMAKE_C_COMPILER_ID) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}") endif()