我正在开发一个项目,其中内部版本号存储在项目根目录中名为“BuildNumber.txt”的文件中。我想做的是让CMake读取该文件中的数字并设置一个可应用于头文件的变量。
#define build_number "@BUILD_NUMBER@";
使用configure_file,可以使用CMake变量替换上面的.in文件中的占位符。是否有可能让CMake将BuildNumber.txt中的数字读入变量?
答案 0 :(得分:23)
您可以使用CMake命令file (STRINGS ...)
来实现此目的。假设内部版本号位于文件BuildNumber.txt
中的一行中,以下命令会将其读入CMake变量BUILD_NUMBER
:
file (STRINGS "BuildNumber.txt" BUILD_NUMBER)
答案 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)
我认为这可能会有所帮助。