48 lines
1.3 KiB
CMake
48 lines
1.3 KiB
CMake
#
|
||
# dnf/yum 系统包安装通用模块
|
||
#
|
||
|
||
# 函数:DNF 安装系统包
|
||
# 参数:PKG_NAME - 包名
|
||
function(DnfInstall PKG_NAME)
|
||
CHECK_ROOT()
|
||
DEPLOY_MSG ("Start install system package: ${PKG_NAME}")
|
||
|
||
if(ENABLE_DEBUG)
|
||
execute_process(
|
||
COMMAND dnf install -y ${PKG_NAME}
|
||
RESULT_VARIABLE DNF_RET
|
||
OUTPUT_VARIABLE DNF_OUT
|
||
ERROR_VARIABLE DNF_ERR
|
||
)
|
||
message(STATUS "[Debug] Output: ${DNF_OUT}")
|
||
message(STATUS "[Debug] Errors: ${DNF_ERR}")
|
||
else()
|
||
execute_process(
|
||
COMMAND dnf install -y ${PKG_NAME}
|
||
RESULT_VARIABLE DNF_RET
|
||
OUTPUT_VARIABLE DNF_OUT
|
||
ERROR_VARIABLE DNF_ERR
|
||
)
|
||
set(DNF_ERR "")
|
||
endif()
|
||
|
||
if(NOT DNF_RET EQUAL 0)
|
||
message(FATAL_ERROR "Install ${PKG_NAME} failed: ${DNF_ERR}")
|
||
endif()
|
||
DEPLOY_MSG ("Install ${PKG_NAME} success")
|
||
endfunction()
|
||
|
||
# 函数:DNF 卸载系统包
|
||
function(DnfRemove PKG_NAME)
|
||
CHECK_ROOT()
|
||
DEPLOY_MSG ("Start remove system package: ${PKG_NAME}")
|
||
execute_process(
|
||
COMMAND dnf remove -y ${PKG_NAME}
|
||
RESULT_VARIABLE DNF_RET
|
||
)
|
||
if(NOT DNF_RET EQUAL 0)
|
||
message(WARNING "Remove ${PKG_NAME} failed")
|
||
endif()
|
||
endfunction()
|