diff options
author | Chuck Atkins <chuck.atkins@kitware.com> | 2019-08-22 15:55:43 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2019-08-22 16:26:06 (GMT) |
commit | 971c77821350908918b3117e11a89463b6a6a820 (patch) | |
tree | 70ab67d86e8049d810f1b39620ddce8d020b9296 /Modules | |
parent | 40bbe50e23c06232ccf1c49589dde5dd84e1ac31 (diff) | |
download | CMake-971c77821350908918b3117e11a89463b6a6a820.zip CMake-971c77821350908918b3117e11a89463b6a6a820.tar.gz CMake-971c77821350908918b3117e11a89463b6a6a820.tar.bz2 |
CrayPrgEnv: Change default linking mode based on PE version
Beginning with the 19.06 release of the Cray Programming Environment, the
default linking mode on XC Cray systems is dynamic instead of static.
This updates the CrayPrgEnv compiler wrappers to detect the PE version
being used and behave accordingly.
Diffstat (limited to 'Modules')
-rw-r--r-- | Modules/Compiler/CrayPrgEnv.cmake | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/Modules/Compiler/CrayPrgEnv.cmake b/Modules/Compiler/CrayPrgEnv.cmake index e55e587..f6e46ac 100644 --- a/Modules/Compiler/CrayPrgEnv.cmake +++ b/Modules/Compiler/CrayPrgEnv.cmake @@ -69,13 +69,27 @@ endfunction() # note that cmake applies both CMAKE_${lang}_FLAGS and CMAKE_EXE_LINKER_FLAGS # (in that order) to the linking command, so -dynamic can appear in either # variable. +# +# Note: As of CrayPE v19.06 (which translates to the craype/2.6.0 module) +# the default has changed and is now dynamic by default. This is handled +# accordingly function(__cmake_craype_linktype lang rv) # start with ENV, but allow flags to override - if("$ENV{CRAYPE_LINK_TYPE}" STREQUAL "dynamic") - set(linktype dynamic) + if(("$ENV{CRAYPE_VERSION}" STREQUAL "") OR + ("$ENV{CRAYPE_VERSION}" VERSION_LESS "2.6")) + if("$ENV{CRAYPE_LINK_TYPE}" STREQUAL "dynamic") + set(linktype dynamic) + else() + set(linktype static) + endif() else() - set(linktype static) + if("$ENV{CRAYPE_LINK_TYPE}" STREQUAL "static") + set(linktype static) + else() + set(linktype dynamic) + endif() endif() + # combine flags and convert to a list so we can apply the flags in order set(linkflags "${CMAKE_${lang}_FLAGS} ${CMAKE_EXE_LINKER_FLAGS}") string(REPLACE " " ";" linkflags "${linkflags}") |