From 3e0752a88b5f288b96cee88748883b4c56a6df2b Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Mon, 3 Feb 2020 22:11:04 +0100 Subject: [PATCH] Improve OS reporting --- CMakeLists.txt | 6 +++--- cmake/Modules/DetectLinuxDistro.cmake | 30 ++++++++++++++++++++------- src/tests/CMakeLists.txt | 2 +- 3 files changed, 27 insertions(+), 11 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index cdbfd8adb..4c543a2d7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -191,7 +191,7 @@ endif() # Detect Linux Distribution if(${CMAKE_SYSTEM_NAME} MATCHES "Linux|kFreeBSD|GNU") include(DetectLinuxDistro) - message(STATUS "Configuring GNSS-SDR v${VERSION} to be built on ${LINUX_DISTRIBUTION} GNU/Linux Release ${LINUX_VER} ${ARCH_}") + message(STATUS "Configuring GNSS-SDR v${VERSION} to be built on GNU/Linux ${LINUX_DISTRIBUTION} ${LINUX_VER} ${ARCHITECTURE_STRING}") endif() # Detect macOS / Mac OS X Version @@ -2803,7 +2803,7 @@ message(STATUS "***************************************") message(STATUS "") message(STATUS "CMake version: ${CMAKE_VERSION}") if(${CMAKE_SYSTEM_NAME} MATCHES "Linux|kFreeBSD|GNU") - message(STATUS "Building on GNU/Linux ${LINUX_DISTRIBUTION} ${LINUX_VER} ${ARCH_}") + message(STATUS "Building on GNU/Linux ${LINUX_DISTRIBUTION} ${LINUX_VER} ${ARCHITECTURE_STRING}") endif() if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") message(STATUS "Building on ${MACOS_DISTRIBUTION}") @@ -2817,7 +2817,7 @@ file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/features.log "* BUILDING CONFIGURATION S file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/features.log "**********************************\n\n") file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/features.log "GNSS-SDR version: ${VERSION}\n") if(${CMAKE_SYSTEM_NAME} MATCHES "Linux|kFreeBSD|GNU") - file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/features.log "Building on GNU/Linux ${LINUX_DISTRIBUTION} ${LINUX_VER} ${ARCH_}\n") + file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/features.log "Building on GNU/Linux ${LINUX_DISTRIBUTION} ${LINUX_VER} ${ARCHITECTURE_STRING}\n") endif() if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/features.log "Building on ${MACOS_DISTRIBUTION}\n") diff --git a/cmake/Modules/DetectLinuxDistro.cmake b/cmake/Modules/DetectLinuxDistro.cmake index 8ba76a997..2aa3dac07 100644 --- a/cmake/Modules/DetectLinuxDistro.cmake +++ b/cmake/Modules/DetectLinuxDistro.cmake @@ -16,9 +16,9 @@ # along with GNSS-SDR. If not, see . if(CMAKE_SIZEOF_VOID_P EQUAL 8) - set(ARCH_ "(64 bits)") + set(ARCHITECTURE_STRING "(64 bits)") else() - set(ARCH_ "(32 bits)") + set(ARCHITECTURE_STRING "(32 bits)") endif() if(EXISTS "/etc/lsb-release") @@ -61,7 +61,7 @@ if(NOT LINUX_DISTRIBUTION) COMMAND awk -F= "{ print $2 }" COMMAND tr "\n" " " COMMAND sed "s/ //" - OUTPUT_VARIABLE LINUX_DISTRIBUTION + OUTPUT_VARIABLE LINUX_DISTRIBUTION_ RESULT_VARIABLE LINUX_ID_RESULT ) execute_process(COMMAND cat /etc/os-release @@ -69,12 +69,19 @@ if(NOT LINUX_DISTRIBUTION) COMMAND awk -F= "{ print $2 }" COMMAND tr "\n" " " COMMAND sed "s/ //" - OUTPUT_VARIABLE LINUX_VER + OUTPUT_VARIABLE LINUX_VER_ RESULT_VARIABLE LINUX_VER_RESULT ) + if(LINUX_DISTRIBUTION_) + string(REPLACE "\"" "" LINUX_DISTRIBUTION ${LINUX_DISTRIBUTION_}) + endif() + if(LINUX_VER_) + string(REPLACE "\"" "" LINUX_VER ${LINUX_VER_}) + endif() if(${LINUX_DISTRIBUTION} MATCHES "Debian") set(LINUX_DISTRIBUTION "Debian") - file(READ /etc/debian_version LINUX_VER) + file(READ /etc/debian_version LINUX_VER_) + string(REPLACE "\n" "" LINUX_VER ${LINUX_VER_}) endif() endif() endif() @@ -82,14 +89,23 @@ endif() if(NOT LINUX_DISTRIBUTION) if(EXISTS "/etc/redhat-release") set(LINUX_DISTRIBUTION "Red Hat") - file(READ /etc/redhat-release LINUX_VER) + file(READ /etc/redhat-release LINUX_VER_) + string(REPLACE "\n" "" LINUX_VER ${LINUX_VER_}) endif() endif() if(NOT LINUX_DISTRIBUTION) if(EXISTS "/etc/debian_version") set(LINUX_DISTRIBUTION "Debian") - file(READ /etc/debian_version LINUX_VER) + file(READ /etc/debian_version LINUX_VER_) + string(REPLACE "\n" "" LINUX_VER ${LINUX_VER_}) + endif() +endif() + +if(NOT LINUX_DISTRIBUTION) + if(EXISTS "/etc/arch-release") + set(LINUX_DISTRIBUTION "Arch Linux") + set(LINUX_VER "") endif() endif() diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt index d7d0d170e..c083e634a 100644 --- a/src/tests/CMakeLists.txt +++ b/src/tests/CMakeLists.txt @@ -639,7 +639,7 @@ endfunction() if(ENABLE_SYSTEM_TESTING) set(HOST_SYSTEM "Unknown") if(${CMAKE_SYSTEM_NAME} MATCHES "Linux|kFreeBSD|GNU") - set(HOST_SYSTEM "GNU/Linux ${LINUX_DISTRIBUTION} ${LINUX_VER} ${ARCH_}") + set(HOST_SYSTEM "GNU/Linux ${LINUX_DISTRIBUTION} ${LINUX_VER} ${ARCHITECTURE_STRING}") string(REPLACE "\n" "" HOST_SYSTEM "${HOST_SYSTEM}") string(REPLACE "\"" "" HOST_SYSTEM "${HOST_SYSTEM}") endif()