Skip to content

Commit

Permalink
be more specific on compile vs link flags
Browse files Browse the repository at this point in the history
  • Loading branch information
white238 committed Mar 6, 2024
1 parent 1b6abab commit c98f320
Showing 1 changed file with 19 additions and 7 deletions.
26 changes: 19 additions & 7 deletions cmake/thirdparty/BLTSetupOpenMP.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -19,27 +19,39 @@ if(BLT_ENABLE_FORTRAN)
endif()
set(BLT_OPENMP_FLAGS_DIFFER ${_flags_differ} CACHE BOOL "")

set(_flags ${OpenMP_CXX_FLAGS})
set(_compile_flags ${OpenMP_CXX_FLAGS})
set(_link_flags)

if( ${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.18.0" )
set(_link_exp LINK_LANGUAGE)
else()
set(_link_exp COMPILE_LANGUAGE)
endif()

if(NOT COMPILER_FAMILY_IS_MSVC)
if(BLT_ENABLE_CUDA AND BLT_OPENMP_FLAGS_DIFFER)
set(_flags
set(_compile_flags
$<$<AND:$<NOT:$<COMPILE_LANGUAGE:CUDA>>,$<NOT:$<COMPILE_LANGUAGE:Fortran>>>:${OpenMP_CXX_FLAGS}>
$<$<COMPILE_LANGUAGE:CUDA>:-Xcompiler=${OpenMP_CXX_FLAGS}>
$<$<COMPILE_LANGUAGE:Fortran>:${OpenMP_Fortran_FLAGS}>)
elseif(BLT_ENABLE_CUDA)
set(_flags
set(_compile_flags
$<$<NOT:$<COMPILE_LANGUAGE:CUDA>>:${OpenMP_CXX_FLAGS}>
$<$<COMPILE_LANGUAGE:CUDA>:-Xcompiler=${OpenMP_CXX_FLAGS}>)
elseif(BLT_OPENMP_FLAGS_DIFFER)
set(_flags
set(_compile_flags
$<$<NOT:$<COMPILE_LANGUAGE:Fortran>>:${OpenMP_CXX_FLAGS}>
$<$<COMPILE_LANGUAGE:Fortran>:${OpenMP_Fortran_FLAGS}>)
endif()
endif()

set(_compile_flags ${_flags})
set(_link_flags ${_flags})
if(BLT_OPENMP_FLAGS_DIFFER)
set(_link_flags
$<$<NOT:$<${_link_exp}:Fortran>>:${OpenMP_CXX_FLAGS}>
$<$<${_link_exp}:Fortran>:${OpenMP_Fortran_FLAGS}>)
else()
set(_link_flags ${OpenMP_CXX_FLAGS})
endif()
endif()

# Allow user to override
if (BLT_OPENMP_COMPILE_FLAGS)
Expand Down

0 comments on commit c98f320

Please sign in to comment.