diff options
author | Brad King <brad.king@kitware.com> | 2019-08-23 14:03:49 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2019-08-23 14:05:52 (GMT) |
commit | 76891a4a7a77868a025030ee92ff8dddb8fc3932 (patch) | |
tree | bc69358a6dc9b87313c9df7b78d267f8e54318cd | |
parent | 7f2bb732fc2b684f5b36c522d75ae50faaabab45 (diff) | |
parent | 971c77821350908918b3117e11a89463b6a6a820 (diff) | |
download | CMake-76891a4a7a77868a025030ee92ff8dddb8fc3932.zip CMake-76891a4a7a77868a025030ee92ff8dddb8fc3932.tar.gz CMake-76891a4a7a77868a025030ee92ff8dddb8fc3932.tar.bz2 |
Merge topic 'CrayPrgEnv-update-link-type-detection'
971c778213 CrayPrgEnv: Change default linking mode based on PE version
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3716
-rw-r--r-- | Help/release/3.15.rst | 7 | ||||
-rw-r--r-- | Modules/Compiler/CrayPrgEnv.cmake | 20 |
2 files changed, 24 insertions, 3 deletions
diff --git a/Help/release/3.15.rst b/Help/release/3.15.rst index b0365ba..48f3aa4 100644 --- a/Help/release/3.15.rst +++ b/Help/release/3.15.rst @@ -369,3 +369,10 @@ Changes made since CMake 3.15.0 include the following. * In CMake 3.15.0 and 3.15.1 the :variable:`CMAKE_FIND_PACKAGE_PREFER_CONFIG` variable caused the :command:`find_package` command to fail on a missing package even without the ``REQUIRED`` option. This has been fixed. + +3.15.3 +------ + +* ``CrayPrgEnv`` compiler wrapper support has been updated for the 19.06 + release of the Cray Programming Environment for which the default linking + mode on XC Cray systems is now dynamic instead of static. 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}") |