snag/cmake/snag_platforms.cmake

59 lines
2.4 KiB
CMake

cmake_minimum_required (VERSION 3.6)
if (NOT WIN32)
set (OS_RELEASE_FILE "/etc/os-release")
file(STRINGS ${OS_RELEASE_FILE} OS_RELEASE)
else ()
list(APPEND OS_RELEASE "ID=${CMAKE_SYSTEM_NAME}")
endif ()
foreach(_line IN LISTS OS_RELEASE)
if (_line STREQUAL "")
continue()
endif()
string(REPLACE "=" ";" _pair "${_line}")
list(GET _pair 0 _name)
list(GET _pair 1 _value)
set(OS_RELEASE_${_name} ${_value})
endforeach()
if (${OS_RELEASE_ID} MATCHES "altlinux")
string(REGEX REPLACE "[\"\.]" "" alt_branch_id ${OS_RELEASE_ALT_BRANCH_ID})
set (OS_RELEASE_VERSION_CODENAME "${alt_branch_id}")
elseif (${OS_RELEASE_ID} MATCHES "astra")
#string(REGEX REPLACE "_x86-64$" "" _version ${OS_RELEASE_VERSION_CODENAME})
file(STRINGS "/etc/astra_version" _version)
string(REGEX REPLACE "\\.|\t|\n|\r" "" _version ${_version})
set (OS_RELEASE_VERSION_CODENAME "${OS_RELEASE_VERSION_CODENAME}")
if (${OS_RELEASE_VERSION_CODENAME} MATCHES "4.7_arm")
set (OS_RELEASE_VERSION_CODENAME "astra47")
elseif (NOT ${OS_RELEASE_VERSION_CODENAME} MATCHES "orel")
set (OS_RELEASE_VERSION_CODENAME "${OS_RELEASE_ID}${_version}")
else ()
set (OS_RELEASE_VERSION_CODENAME "${OS_RELEASE_VERSION_CODENAME}")
endif()
elseif (${OS_RELEASE_ID} MATCHES "debian")
set (OS_RELEASE_VERSION_CODENAME "${OS_RELEASE_VERSION_CODENAME}")
elseif (${OS_RELEASE_ID} MATCHES "centos")
string(REGEX REPLACE "[\"\.]" "" version_id ${OS_RELEASE_VERSION_ID})
set (OS_RELEASE_VERSION_CODENAME "el${version_id}")
elseif (${OS_RELEASE_ID} MATCHES "fedora")
set (OS_RELEASE_VERSION_CODENAME "f${OS_RELEASE_VERSION_ID}")
elseif (${OS_RELEASE_ID} MATCHES "freebsd")
set (OS_RELEASE_VERSION_CODENAME "${OS_RELEASE_NAME}")
elseif (${OS_RELEASE_ID} MATCHES "msys2")
set (OS_RELEASE_VERSION_CODENAME "${OS_RELEASE_ID}")
elseif (${OS_RELEASE_ID} MATCHES "ubuntu")
set (OS_RELEASE_VERSION_CODENAME "${OS_RELEASE_UBUNTU_CODENAME}")
elseif (${OS_RELEASE_ID} MATCHES "sberlinux")
string(REGEX REPLACE "[\"\.]" "" version_id ${OS_RELEASE_VERSION_ID})
set (OS_RELEASE_VERSION_CODENAME "sl${version_id}")
elseif (${OS_RELEASE_ID} MATCHES "Windows")
set (OS_RELEASE_VERSION_CODENAME "win")
else ()
set (OS_RELEASE_VERSION_CODENAME "")
endif()
MESSAGE(STATUS "OS_RELEASE_ID: ${OS_RELEASE_ID}")
MESSAGE(STATUS "OS_RELEASE_VERSION_CODENAME: ${OS_RELEASE_VERSION_CODENAME}")
MESSAGE(STATUS "")