Добавлена сборка в пакет для Debian дистрибутива

This commit is contained in:
Alexander Zhirov 2025-05-30 03:07:33 +03:00
parent a74579d709
commit 2ad04b4603
Signed by: alexander
GPG key ID: C8D8BE544A27C511
15 changed files with 610 additions and 0 deletions

24
cmake/snag_git.cmake Normal file
View file

@ -0,0 +1,24 @@
cmake_minimum_required(VERSION 3.6)
if(DEFINED ENV{CI_COMMIT_BRANCH})
string(REGEX REPLACE ".*/" "" GIT_BRANCH $ENV{CI_COMMIT_BRANCH})
string(REPLACE "_" "-" GIT_BRANCH ${GIT_BRANCH})
if(NOT GIT_BRANCH STREQUAL "stable")
set(GIT_VERSION_SUFFIX "${GIT_BRANCH}-")
else()
set(GIT_VERSION_SUFFIX "")
endif()
else()
set(GIT_BRANCH "dev")
set(GIT_VERSION_SUFFIX "${GIT_BRANCH}-")
endif()
if(DEFINED ENV{CI_COMMIT_SHORT_SHA})
set(GIT_TAG $ENV{CI_COMMIT_SHORT_SHA})
else()
set(GIT_TAG "0000000")
endif()
set(GIT_VERSION_SUFFIX "${GIT_VERSION_SUFFIX}${GIT_TAG}")
MESSAGE(STATUS "GIT_VERSION_SUFFIX: ${GIT_VERSION_SUFFIX}")
MESSAGE(STATUS "")

26
cmake/snag_patch.cmake Normal file
View file

@ -0,0 +1,26 @@
cmake_minimum_required(VERSION 3.6)
find_program(PATCH_EXECUTABLE patch)
if(NOT PATCH_EXECUTABLE)
message(FATAL_ERROR "Patch utility not found! Install patch tool before continuing.")
endif()
set(PATCH_FILE "${CMAKE_SOURCE_DIR}/patches/config.patch")
set(PATCH_MARKER_FILE "${CMAKE_BINARY_DIR}/.config_patch_applied")
if(NOT EXISTS "${PATCH_FILE}")
message(WARNING "Patch file not found: ${PATCH_FILE}")
endif()
add_custom_command(
OUTPUT "${PATCH_MARKER_FILE}"
COMMAND "${PATCH_EXECUTABLE}" -p1 -i "${PATCH_FILE}" --reject-file=- --silent || exit 0
COMMAND cmake -E touch "${PATCH_MARKER_FILE}"
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
COMMENT "Applying config.patch..."
VERBATIM
)
add_custom_target(apply_config_patch
DEPENDS "${PATCH_MARKER_FILE}"
)

View file

@ -0,0 +1,59 @@
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 "")