From 8d45e61f6c421d8e8f7514cd10ed7c979d205b1a Mon Sep 17 00:00:00 2001 From: Tom Deakin Date: Wed, 11 May 2016 13:20:15 +0100 Subject: [PATCH] Check for OpenACC support by checking the various compiler flags --- CMakeLists.txt | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 964668e..cd8988d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -37,11 +37,20 @@ else (${OpenCL_FOUND}) message("Skipping OpenCL...") endif (${OpenCL_FOUND}) -# TODO: Find OpenACC implementations somehow -if (true) +# Check compiler supports an OpenACC flag +include(CheckCXXCompilerFlag) +message("${CMAKE_CXX_COMPILER_ID}") +if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") + CHECK_CXX_COMPILER_FLAG(-fopenacc OPENACC) +elseif ("${CMAKE_CXX_COMPILER_ID}" MATCHES "PGI") + CHECK_CXX_COMPILER_FLAG(-acc OPENACC) +elseif ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Cray") + CHECK_CXX_COMPILER_FLAG(-hacc=openacc OPENACC) +endif() +if (OPENACC) add_executable(gpu-stream-acc main.cpp ACCStream.cpp) target_compile_definitions(gpu-stream-acc PUBLIC ACC) - target_compile_options(gpu-stream-acc PUBLIC "-hstd=c++11") + #target_compile_options(gpu-stream-acc PUBLIC "-hstd=c++11") else () message("Skipping OpenACC...") endif ()