Forráskód Böngészése

Merge topic 'CrayPrgEnv-update-link-type-detection'

971c778213 CrayPrgEnv: Change default linking mode based on PE version

Acked-by: Kitware Robot <[email protected]>
Merge-request: !3716
Brad King 6 éve
szülő
commit
76891a4a7a
2 módosított fájl, 24 hozzáadás és 3 törlés
  1. 7 0
      Help/release/3.15.rst
  2. 17 3
      Modules/Compiler/CrayPrgEnv.cmake

+ 7 - 0
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.

+ 17 - 3
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}")