我有一个项目CMakeLists.txt
尝试读取可能存在或不存在的文件。文件丢失不是问题,脚本可以处理这两种情况。如果我们可以检测到已知的 Linux 发行版,这将用于稍微调整编译环境:
file (READ /etc/redhat-release RHREL)
if (RHREL MATCHES "Red Hat Enterprise Linux Server release 6*")
# tweak for RHEL6
elseif (RHREL MATCHES "Red Hat Enterprise Linux Server release 7*")
# tweak for RHEL7
else()
# either read failed, or we didn't match a known RHEL release
# fallback to reasonable defaults
endif()
问题是当file(READ...)
失败它似乎正在使用输出一条消息SEND_ERROR
范围。这意味着我的配置继续包罗万象else()
正如我所期望的,但是在配置结束时CMake
拒绝生成Makefile
.
我怎样才能跑file(READ)
这样我就可以在本地处理错误并防止它们使整个配置失败?
您可以先检查文件是否存在(注意,如果存在但不可读,您仍然会遇到问题):
if (EXISTS /etc/redhat-release)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)