c++ - CMAKE__LINK_EXECUTABLE 支持生成器表达式?
问题描述
我使用自定义链接器命令构建自定义 cmake 工具链文件(并且它有效)。喜欢:
set(CMAKE_CXX_LINK_EXECUTABLE "<CMAKE_CXX_COMPILER>
<CMAKE_CXX_LINK_FLAGS>
<LINK_FLAGS>
<OBJECTS>
<LINK_LIBRARIES>
--meta /home/user/some_dir/meta.txt -o <TARGET_BASE>.exe")
我想自动从目标中提取目录并为其添加相对路径以获得元的完整路径。喜欢:
set(CMAKE_CXX_LINK_EXECUTABLE "<CMAKE_CXX_COMPILER>
<CMAKE_CXX_LINK_FLAGS>
<LINK_FLAGS>
<OBJECTS>
<LINK_LIBRARIES>
--meta $<TARGET_CMAKE_DIR:${TARGET}>/some_dir/meta.txt -o <TARGET_BASE>.exe")
在文档中我没有找到任何有用的东西:https ://cmake.org/cmake/help/latest/variable/CMAKE_LANG_LINK_EXECUTABLE.html
有可能吗?提前致谢!
解决方案
据我了解,生成器表达式在“规则”变量中不起作用。
在此类变量中执行的唯一扩展是<varname>
扩展。
的可能值varname
似乎是硬编码的。扩展是在Source/cmRulePlaceholderExpander.cxx源中执行的,在这里可以找到扩展变量的所有可能名称。(注意:其中许多名称有条件地可用于扩展)。
不幸的是,没有TARGET_DIR
或类似的变量被扩展。
推荐阅读
- pyqt5 - QAction.triggered 通过在上下文菜单中定义动态项并在 python 中的 pyqt5 中连接来更改变量的值
- vue.js - 部署到产品时出现 VueJS 错误:DOMException:“操作不安全。”
- javascript - 检查javascript中的虚假值
- jquery - 通过 htaccess(静态网站)从 URL 中删除 .html
- php - 我想创建一个获取图像、扩展名和图像大小的表,并用 PHP 将其放入表中?
- javascript - React react-number-format 应用错误的 decimalScale
- flutter - Flutter - 在 FutureBuilder 中等待 setState 然后加载组件
- angular - 子路由上的页面重新加载不起作用
- plsql - 如何避免 Informatica 中的垃圾字符
- unit-testing - 是否可以克隆/分支先前引发异常的传奇