CMake:从文件中读取内部版本号以设置变量

时间:2011-04-20 22:34:40

标签: cmake build-numbers

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

setup.h.in

#define build_number "@BUILD_NUMBER@";

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

2 个答案:

答案 0 :(得分:23)

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

file (STRINGS "BuildNumber.txt" BUILD_NUMBER)

另见file command reference

答案 1 :(得分:2)

我不知道您的操作系统,但我认为您使用的是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)

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