From d2921faec8c46f6acc7e2d36ec6c757d63733f98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lars=20Vingli=20Ods=C3=A6ter?= Date: Tue, 16 Apr 2013 09:19:00 +0200 Subject: [PATCH 1/3] Quote possibly empty variable to avoid error message On RedHat 6.4 workstation the module doesn't find the necessary system information, and gives an error message when the last parameter to the string function is not present. --- cmake/Modules/UseSystemInfo.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/Modules/UseSystemInfo.cmake b/cmake/Modules/UseSystemInfo.cmake index 2a3a3dca..0fe61e9b 100644 --- a/cmake/Modules/UseSystemInfo.cmake +++ b/cmake/Modules/UseSystemInfo.cmake @@ -43,7 +43,7 @@ function (read_release valuename FROM filename INTO varname) REGEX "^${valuename}=" ) string (REGEX REPLACE - "^${valuename}=\"?\(.*\)" "\\1" ${varname} ${_distrib} + "^${valuename}=\"?\(.*\)" "\\1" ${varname} "${_distrib}" ) # remove trailing quote that got globbed by the wildcard (greedy match) string (REGEX REPLACE From f75090e876d2b15682e51bc5206b9202d1cd26d7 Mon Sep 17 00:00:00 2001 From: Roland Kaufmann Date: Tue, 16 Apr 2013 12:11:35 +0200 Subject: [PATCH 2/3] Read /etc/system-release if others not parseable --- cmake/Modules/UseSystemInfo.cmake | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/cmake/Modules/UseSystemInfo.cmake b/cmake/Modules/UseSystemInfo.cmake index 0fe61e9b..87492c48 100644 --- a/cmake/Modules/UseSystemInfo.cmake +++ b/cmake/Modules/UseSystemInfo.cmake @@ -18,6 +18,7 @@ function (distro_name varname) file (GLOB has_os_release /etc/os-release) file (GLOB has_lsb_release /etc/lsb-release) file (GLOB has_sys_release /etc/system-release) + set (_descr) # start with /etc/os-release, # see if (NOT has_os_release STREQUAL "") @@ -25,13 +26,16 @@ function (distro_name varname) # previous "standard", used on older Ubuntu and Debian elseif (NOT has_lsb_release STREQUAL "") read_release (DISTRIB_DESCRIPTION FROM /etc/lsb-release INTO _descr) - # RHEL/CentOS etc. has just a text-file - elseif (NOT has_sys_release STREQUAL "") - file (READ /etc/system-release _descr) - else (NOT has_lsb_release STREQUAL "") - # no yet known release file found - set (_descr "unknown") endif (NOT has_os_release STREQUAL "") + # RHEL/CentOS etc. has just a text-file + if (NOT _descr) + if (NOT has_sys_release STREQUAL "") + file (READ /etc/system-release _descr) + else (NOT has_lsb_release STREQUAL "") + # no yet known release file found + set (_descr "unknown") + endif (NOT has_os_release STREQUAL "") + endif (NOT _descr) # return from function (into appropriate variable) string (STRIP "${_descr}" _descr) set (${varname} "${_descr}" PARENT_SCOPE) From 49606fc925ba765b0ca84942522fafa5b4379256 Mon Sep 17 00:00:00 2001 From: Roland Kaufmann Date: Tue, 16 Apr 2013 14:02:00 +0200 Subject: [PATCH 3/3] Corrected mismatched if-else-endif arguments --- cmake/Modules/UseSystemInfo.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmake/Modules/UseSystemInfo.cmake b/cmake/Modules/UseSystemInfo.cmake index 87492c48..3e2463df 100644 --- a/cmake/Modules/UseSystemInfo.cmake +++ b/cmake/Modules/UseSystemInfo.cmake @@ -31,10 +31,10 @@ function (distro_name varname) if (NOT _descr) if (NOT has_sys_release STREQUAL "") file (READ /etc/system-release _descr) - else (NOT has_lsb_release STREQUAL "") + else (NOT has_sys_release STREQUAL "") # no yet known release file found set (_descr "unknown") - endif (NOT has_os_release STREQUAL "") + endif (NOT has_sys_release STREQUAL "") endif (NOT _descr) # return from function (into appropriate variable) string (STRIP "${_descr}" _descr)