在CMake脚本中使用尖括号的变量 [英] Variables with angle brackets in CMake scripts

查看:1422
本文介绍了在CMake脚本中使用尖括号的变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我注意到CMake不仅可以使用 $ {VAR_NAME} 语法中的变量,还可以在< VAR_NAME> 语法。例如,以下代码:

  IF(NOT CMAKE_CXX_LINK_EXECUTABLE)
SET(CMAKE_CXX_LINK_EXECUTABLE
< CMAKE_CXX_COMPILER> ;< FLAGS>< CMAKE_CXX_LINK_FLAGS>< LINK_FLAGS>< OBJECTS> -o< TARGET>< LINK_LIBRARIES>)
ENDIF(NOT CMAKE_CXX_LINK_EXECUTABLE)
/ pre>

CMakeCXXInformation.cmake 脚本中的CMake modules文件夹中找到。



在文档中没有找到任何关于使用尖括号的语法的解释。有人使用这样的语法,可以解释其含义吗?

解决方案

此语法特定于定义编译和链接的规则。



这些规则在CMake中添加对新语言的支持时就会发挥作用,参见 share / cmake / Modules / CMakeAddNewLanguage.txt 了解更多信息。


I noticed that CMake can use variables not only in ${VAR_NAME} syntax, but also in <VAR_NAME> syntax. For example, following code:

IF(NOT CMAKE_CXX_LINK_EXECUTABLE)
  SET(CMAKE_CXX_LINK_EXECUTABLE
    "<CMAKE_CXX_COMPILER>  <FLAGS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS>  -o <TARGET> <LINK_LIBRARIES>")
ENDIF(NOT CMAKE_CXX_LINK_EXECUTABLE)

was found in CMake modules folder in script named CMakeCXXInformation.cmake.

I didn't find any explanation about syntax using angle brackets in the documentation. Has someone used such syntax who can explain its meaning?

解决方案

This syntax is specific to defining rules for compiling and linking. It's used by internal CMake machinery and not intended to be used by CMake users.

These rules are come in play when adding support for new language in CMake, see share/cmake/Modules/CMakeAddNewLanguage.txt for more info on this.

这篇关于在CMake脚本中使用尖括号的变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆