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 ()