Skip to content

Commit

Permalink
Make OpenACC link options cleaner
Browse files Browse the repository at this point in the history
  • Loading branch information
wdeconinck committed Sep 25, 2024
1 parent 9af40a3 commit cb0270c
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 13 deletions.
4 changes: 4 additions & 0 deletions cmake/features/ACC.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@ if( atlas_HAVE_ATLAS_FIELD AND HAVE_GPU )
ecbuild_add_option( FEATURE ACC
DESCRIPTION "OpenACC capable data structures"
CONDITION OpenACC_Fortran_FOUND )
if( HAVE_ACC )
set( ACC_LINK_OPTIONS ${OpenACC_Fortran_FLAGS} )
endif()

else()

set( HAVE_ACC 0 )
Expand Down
10 changes: 5 additions & 5 deletions src/atlas/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1001,12 +1001,12 @@ ecbuild_add_library( TARGET atlas

)

if( HAVE_ACC )
if( HAVE_ACC AND CMAKE_Fortran_COMPILER_ID MATCHES NVHPC )
target_link_options( atlas INTERFACE
$<$<LINK_LANG_AND_ID:C,NVHPC>:SHELL:-acc=gpu>
$<$<LINK_LANG_AND_ID:CXX,NVHPC>:SHELL:-acc=gpu>
$<$<LINK_LANG_AND_ID:Fortran,NVHPC>:SHELL:-acc=gpu>
$<$<LINK_LANG_AND_ID:CUDA,NVIDIA>:SHELL:-acc=gpu> )
$<$<LINK_LANG_AND_ID:C,NVHPC>:SHELL:${ACC_LINK_OPTIONS}>
$<$<LINK_LANG_AND_ID:CXX,NVHPC>:SHELL:${ACC_LINK_OPTIONS}>
$<$<LINK_LANG_AND_ID:Fortran,NVHPC>:SHELL:${ACC_LINK_OPTIONS}>
$<$<LINK_LANG_AND_ID:CUDA,NVIDIA>:SHELL:${ACC_LINK_OPTIONS}> )
endif()

target_compile_features( atlas PUBLIC cxx_std_17 )
14 changes: 6 additions & 8 deletions src/atlas_f/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -277,14 +277,12 @@ ecbuild_add_library( TARGET atlas_f
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>
)

if( HAVE_ACC )
if( CMAKE_Fortran_COMPILER_ID MATCHES NVHPC )
target_link_options( atlas_f INTERFACE
$<$<LINK_LANG_AND_ID:C,NVHPC>:SHELL:-acc=gpu>
$<$<LINK_LANG_AND_ID:CXX,NVHPC>:SHELL:-acc=gpu>
$<$<LINK_LANG_AND_ID:Fortran,NVHPC>:SHELL:-acc=gpu>
$<$<LINK_LANG_AND_ID:CUDA,NVIDIA>:SHELL:-acc=gpu> )
endif()
if( HAVE_ACC AND CMAKE_Fortran_COMPILER_ID MATCHES NVHPC )
target_link_options( atlas_f INTERFACE
$<$<LINK_LANG_AND_ID:C,NVHPC>:SHELL:${ACC_LINK_OPTIONS}>
$<$<LINK_LANG_AND_ID:CXX,NVHPC>:SHELL:${ACC_LINK_OPTIONS}>
$<$<LINK_LANG_AND_ID:Fortran,NVHPC>:SHELL:${ACC_LINK_OPTIONS}>
$<$<LINK_LANG_AND_ID:CUDA,NVIDIA>:SHELL:${ACC_LINK_OPTIONS}> )
endif()

fckit_target_preprocess_fypp( atlas_f
Expand Down

0 comments on commit cb0270c

Please sign in to comment.