如何在CMake中区分Ubuntu和Debian



我需要在CMakelists.txt中区分Ubuntu和Debian。有人知道怎么做吗?我尝试使用CMAKE_SYSTEM和CMAKE_SYSTEM_NAME,但它只返回有关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)

/etc/issue文件(其中包含您正在使用的发行版的名称)读入ETC_ISSUE变量。然后选择Debian或Ubuntu并将结果保存在DIST中。现在您可以使用if命令检查DIST

最新更新