cmake - 如何在 CMake 中输出生成器表达式的结果?

标签 cmake

我有以下简单的 CMake 代码:

cmake_minimum_required(VERSION 3.1)

project(PrintGenerators)

set(TEST_OR_GENERATOR "$<$<OR:0,0,1>:YAY!>")

message(STATUS ${TEST_OR_GENERATOR}) # Print out the result of the build

我希望此代码打印出来 YAY! ,但事实并非如此。我反而得到 $<$<OR:0,0,1>:YAY!>作为输出。如何在配置期间打印计算的生成器表达式的结果?

最佳答案

How do I print the result of the evaluated generator expression during configuration?



你不能。生成器表达式适用于在配置阶段并不完全了解的事物:它们取决于构建类型,在多重配置的情况下generators仅在构建阶段才知道。

但是,您可以将生成器表达式的值保存到文件中,但该文件只会在配置阶段结束时写入:
file(GENERATE OUTPUT <filename> CONTENT <string-with-generator-expression>)

更详细的说明file(GENERATOR)documentation .

关于cmake - 如何在 CMake 中输出生成器表达式的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51353110/

相关文章:

c++ - 使用 CMake 的 C++ 项目(多个库和可执行文件)的单个共享预编译头文件

cmake - 如何防止 CMake 从 add_subdirectory() 包含的项目中安装 ()-ing 目标?

c++ - Qt、cmake 和 qhelpgenerator

linux - 如何让 CMake 找到我的替代 Boost 安装?

c++ - CMake "uuid"链接失败

gcc - CMake 文件中的 add_definitions 和 set 有什么区别

c - 如何检查某些关键字/属性的编译器支持?

CMake 找不到我的库文件

cmake - CMake ENDIF和ELSE参数的目的

matlab - Cmake FindMatlab 找不到正确的版本