summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2016-08-08 14:02:11 (GMT)
committerCMake Topic Stage <kwrobot@kitware.com>2016-08-08 14:02:11 (GMT)
commit314a953982f50f355bf552d07a9d404cc8c5ec87 (patch)
tree863b948892bfe6f5b7b8dad9637fa54de07870d9
parentacf6fc6a7e95175796bb25c9be05ba26bf372b53 (diff)
parente52302d6cbee72c9d680affcf1f253bfa61f1891 (diff)
downloadCMake-314a953982f50f355bf552d07a9d404cc8c5ec87.zip
CMake-314a953982f50f355bf552d07a9d404cc8c5ec87.tar.gz
CMake-314a953982f50f355bf552d07a9d404cc8c5ec87.tar.bz2
Merge topic 'update-cle-version-info'
e52302d6 CrayLinuxEnvironment: Add alternative methods to get version info
-rw-r--r--Modules/Compiler/CrayPrgEnv.cmake2
-rw-r--r--Modules/Platform/CrayLinuxEnvironment.cmake16
2 files changed, 14 insertions, 4 deletions
diff --git a/Modules/Compiler/CrayPrgEnv.cmake b/Modules/Compiler/CrayPrgEnv.cmake
index fa39b00..9f8befd 100644
--- a/Modules/Compiler/CrayPrgEnv.cmake
+++ b/Modules/Compiler/CrayPrgEnv.cmake
@@ -56,6 +56,8 @@ macro(__CrayPrgEnv_setup lang test_src compiler_cmd link_cmd)
message(STATUS "Cray Programming Environment $ENV{CRAYPE_VERSION} ${lang}")
elseif(DEFINED ENV{ASYNCPE_VERSION})
message(STATUS "Cray XT Programming Environment $ENV{ASYNCPE_VERSION} ${lang}")
+ else()
+ message(STATUS "Cray Programming Environment (unknown version) ${lang}")
endif()
# Flags for the Cray wrappers
diff --git a/Modules/Platform/CrayLinuxEnvironment.cmake b/Modules/Platform/CrayLinuxEnvironment.cmake
index 97771a2..a1a3d3f 100644
--- a/Modules/Platform/CrayLinuxEnvironment.cmake
+++ b/Modules/Platform/CrayLinuxEnvironment.cmake
@@ -8,14 +8,22 @@ if(DEFINED ENV{CRAYOS_VERSION})
set(CMAKE_SYSTEM_VERSION "$ENV{CRAYOS_VERSION}")
elseif(DEFINED ENV{XTOS_VERSION})
set(CMAKE_SYSTEM_VERSION "$ENV{XTOS_VERSION}")
-else()
- message(FATAL_ERROR "Neither the CRAYOS_VERSION or XTOS_VERSION environment variables are defined. This platform file should be used inside the Cray Linux Environment for targeting compute nodes (NIDs)")
+elseif(EXISTS /etc/opt/cray/release/cle-release)
+ file(STRINGS /etc/opt/cray/release/cle-release release REGEX "^RELEASE=.*")
+ string(REGEX REPLACE "^RELEASE=(.*)$" "\\1" CMAKE_SYSTEM_VERSION "${release}")
+ unset(release)
+elseif(EXISTS /etc/opt/cray/release/clerelease)
+ file(READ /etc/opt/cray/release/clerelease CMAKE_SYSTEM_VERSION)
endif()
# Guard against multiple messages
if(NOT __CrayLinuxEnvironment_message)
- set(__CrayLinuxEnvironment_message 1)
- message(STATUS "Cray Linux Environment ${CMAKE_SYSTEM_VERSION}")
+ set(__CrayLinuxEnvironment_message 1 CACHE INTERNAL "")
+ if(NOT CMAKE_SYSTEM_VERSION)
+ message(STATUS "CrayLinuxEnvironment: Unable to determine CLE version. This platform file should only be used from inside the Cray Linux Environment for targeting compute nodes (NIDs).")
+ else()
+ message(STATUS "Cray Linux Environment ${CMAKE_SYSTEM_VERSION}")
+ endif()
endif()
# All cray systems are x86 CPUs and have been for quite some time