我正在开发一个项目,其中内部版本号存储在项目根目录下名为“BuildNumber.txt”的文件中。我想做的是让 CMake 从此文件中读取数字并设置一个可应用于头文件的变量。
安装程序.h.in
#define build_number "@BUILD_NUMBER@";
使用 configure_file,可以用 CMake 变量替换上述 .in 文件中的占位符。是否可以让 CMake 将 BuildNumber.txt 中的数字读入变量?
我正在开发一个项目,其中内部版本号存储在项目根目录下名为“BuildNumber.txt”的文件中。我想做的是让 CMake 从此文件中读取数字并设置一个可应用于头文件的变量。
#define build_number "@BUILD_NUMBER@";
使用 configure_file,可以用 CMake 变量替换上述 .in 文件中的占位符。是否可以让 CMake 将 BuildNumber.txt 中的数字读入变量?
file (STRINGS ...)
为此,您可以使用 CMake 命令。假设内部版本号位于文件BuildNumber.txt
中的一行,以下命令会将其读入 CMake 变量BUILD_NUMBER
:
file (STRINGS "BuildNumber.txt" BUILD_NUMBER)
另请参阅文件命令参考。
我不知道您的操作系统,但我假设您使用的是 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)
我认为这可能会有所帮助。