【问题标题】:Is there a way to differentiate between Fedora and CentOS on CMake?有没有办法在 CMake 上区分 Fedora 和 CentOS?
【发布时间】:2019-08-05 13:10:10
【问题描述】:

我需要在 CentOS 而不是 Fedora 上构建。我见过以前的post,但它只检查它是 Windows、Linux 还是其他平台。

【问题讨论】:

    标签: cmake


    【解决方案1】:

    检查/etc/os-release 的内容是否有效? https://www.freedesktop.org/software/systemd/man/os-release.html

    您可以直接读入文件,它会包含类似NAME="Ubuntu" 的行。 使用file() 解析它并获取NAME 字段。

    file(STRINGS /etc/os-release distro REGEX "^NAME=")
    string(REGEX REPLACE "NAME=\"(.*)\"" "\\1" distro "${distro}")
    file(STRINGS /etc/os-release disversion REGEX "^VERSION_ID=")
    string(REGEX REPLACE "VERSION_ID=\"(.*)\"" "\\1" disversion "${disversion}")
    message("found ${distro}.${disversion}")
    

    输出

    found Ubuntu.20.04
    

    【讨论】:

    • 行得通!这是上面带有条件的代码:file(STRINGS /etc/os-release distro REGEX "^NAME=") string(REGEX REPLACE "NAME=\"(.*)\"" "\\1" distro "${distro}") if( ${distro} STREQUAL "CentOS Linux" ) ... BUILD INSTRUCTIONS ... endif()
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-26
    • 1970-01-01
    • 1970-01-01
    • 2011-05-30
    • 2020-09-18
    • 1970-01-01
    相关资源
    最近更新 更多