如何在CMake中区分Ubuntu和Debian?

如何在CMake中区分Ubuntu和Debian?,cmake,debian,Cmake,Debian,我需要在CMakelists.txt中区分Ubuntu和Debian。 有人知道怎么做吗? 我尝试使用CMAKE_系统和CMAKE_系统名称,但它只返回有关Linux内核的信息 谢谢您可以尝试以下方式: cmake_minimum_required(VERSION 2.8) file(READ "/etc/issue" ETC_ISSUE) string(REGEX MATCH "Debian|Ubuntu" DIST ${ETC_ISSUE}) if(DIST STREQUAL "Debi

我需要在CMakelists.txt中区分Ubuntu和Debian。 有人知道怎么做吗? 我尝试使用CMAKE_系统和CMAKE_系统名称,但它只返回有关Linux内核的信息


谢谢

您可以尝试以下方式:

cmake_minimum_required(VERSION 2.8)

file(READ "/etc/issue" ETC_ISSUE)
string(REGEX MATCH "Debian|Ubuntu" DIST ${ETC_ISSUE})

if(DIST STREQUAL "Debian")
    message(STATUS ">>>> Found Debian <<<<")
elseif(DIST STREQUAL "Ubuntu")
    message(STATUS ">>>> Found Ubuntu <<<<")
else()
    message(STATUS ">>>> Found unknown distribution <<<<")
endif()

add_executable(main main.cpp)
cmake_最低要求(2.8版)
文件(读取“/etc/issue”etc\u issue)
字符串(正则表达式匹配“Debian | Ubuntu”DIST${ETC_ISSUE})
if(德比安区斯特雷夸尔)

消息(状态“>>>>发现Debian发现Ubuntu发现未知发行版这正是我需要的!非常感谢。此解决方案适用于像Ubuntu这样的Debian衍生产品,但不适用于Fedora。不幸的是Fedora返回
内核
`/etc/os版本`似乎更可靠一些。