在Cmake中扩展变量

时间:2019-02-20 23:55:31

标签: cmake

我是新的cmake用户,试图定义资源文件以在可执行文件中显示版本信息。我在获取变量以正确扩展时遇到问题。我在CMakeLists.txt中使用以下代码

set(
FILE_VERSION_MAJOR " 1"
FILE_VERSION_MINOR " 2"
FILE_VERSION_PATCH " 3")

set(FILE_VERSION ${FILE_VERSION_MAJOR}, ${FILE_VERSION_MINOR}, ${FILE_VERSION_PATCH}, 0)

configure_file(
  src/resource.rc.in
  resource.rc
  )

哪个连接到我resource.rc.in

中的这一行
#define VER_FILE_VERSION @FILE_VERSION@

这在我的resource.rc文件中导致以下结果

#define VER_FILE_VERSION 
@FILE_VERSION_MAJOR@,;@FILE_VERSION_MINOR@,;@FILE_VERSION_PATCH@,;0

如何在resource.rc文件中将最终的VER_FILE_VERSION显示为1、2、3、0?

*注意,我的问题不是关于使用命令行

1 个答案:

答案 0 :(得分:0)

这里有两个问题:

  1. 您在设置#distinct-result时错过了引号。因此,您使用','不带引号,就声明了一个列表
  2. 您的第一组尝试设置多个变量。这不起作用。

有了此CMakeLists.txt,一切都会按预期进行:

FILE_VERSION