如何从程序中访问CmakeCache.txt中的变量?

时间:2019-07-02 19:59:33

标签: caching cmake

我正在尝试使用cmake编译程序,并将-DCOMMIT_NUM:STRING =“ some_number”作为cmake的命令行参数传入。 我在CMakeCache.txt文件中看到了此变量,但是我不确定如何在程序中访问它。我需要打印COMMIT_NUM。 我尝试打印此变量。 我收到的错误是未在范围中声明COMMIT_NUM。

无处不在,所以请给我些帮助吗? 谢谢

1 个答案:

答案 0 :(得分:0)

您的COMMIT_NUM是CMake变量。因此,它仅在CMake中可用。

如果您希望程序可以访问此信息,则必须使CMake将其转发到您的程序。

我假设您所说的“程序”是在CMake中定义的C / C ++程序,类似add_executable(targetName)。然后,要转发变量,您可以使用:

target_compile_definitions(targetName PUBLIC COMMIT_NUM=${COMMIT_NUM})

然后,在程序的任何编译单元内,您都应可以访问其值与您赋予CMake相同的宏COMMIT_NUM