19

我正在开发一个项目,其中内部版本号存储在项目根目录下名为“BuildNumber.txt”的文件中。我想做的是让 CMake 从此文件中读取数字并设置一个可应用于头文件的变量。

安装程序.h.in

#define build_number "@BUILD_NUMBER@";

使用 configure_file,可以用 CMake 变量替换上述 .in 文件中的占位符。是否可以让 CMake 将 BuildNumber.txt 中的数字读入变量?

4

2 回答 2

32

file (STRINGS ...)为此,您可以使用 CMake 命令。假设内部版本号位于文件BuildNumber.txt中的一行,以下命令会将其读入 CMake 变量BUILD_NUMBER

file (STRINGS "BuildNumber.txt" BUILD_NUMBER)

另请参阅文件命令参考

于 2011-04-21T13:49:26.990 回答
3

我不知道您的操作系统,但我假设您使用的是 Windows 或 Linux。

if (UNIX)
  set (show_contents_prog cat)
elseif (WIN32)
  set (show_contents_prog type)
endif (WIN32)

execute_process(COMMAND ${show_contents_prog} input.txt OUTPUT_VARIABLE file_contents)

我认为这可能会有所帮助。

于 2011-04-21T04:23:26.800 回答