在后续'make'运行中强制刷新 cmake 脚本



在我的cmake脚本中,我确定当前日期并将其交给我的c++程序源,以便将构建日期编译到程序中。问题是,在随后的make运行中,cmake根本没有运行,日期不会更新。

如何强制cmake刷新其变量并仅使用make重新编译程序?或者:将构建日期编译为二进制文件的最佳方法是什么?

cmake脚本包含以下内容:

INCLUDE(Today)
TODAY(DATE)
ADD_DEFINITIONS(
    ...
    -DBUILD_DATE="${DATE}"
)
您可以使用

自定义目标来执行所需的任何内容。 自定义目标始终被视为过时,并在每次生成时运行。

add_custom_target(RerunCmake ${CMAKE_COMMAND} ${CMAKE_SOURCE_DIR})
add_dependencies(YourTarget RerunCmake)

但是,例如,Visual Studio会在每次生成后要求您重新加载项目,因为项目文件在磁盘上发生了更改。

也许最好创建一个自定义目标,该目标仅使用正确的日期更新头文件,以便 cmake 不会在每次构建时重新运行

最新更新