目前我在做什么。在构建开始时目前我正在生成具有当前版本的源代码作为 APPLICATION_VERSION 的 version.h。每个应用程序都在使用它。
这种方法的问题在于,如果源文件中的任何文件发生更改,它会强制重新构建每个应用程序。
只有在为该二进制文件更改任何其他离开 version.txt 的依赖项时,我才想生成与应用程序相关的 version.h any。目前我正在使用 cmake 进行构建过程。什么是解决问题的好方法?
编辑更多细节:
我的目录结构是这样的:
app/
common/
version.h
app1/
main.c
other source file
app2
main.c
other source file
lib/
third party libs.
每个应用程序 main.c 都包含 version.h。所以只有 main.c 会在版本发生变化时被重新编译。所以编译对我来说不是问题。问题是假设我修改了一个只影响 app1 的依赖项。现在,如果我正在构建应用程序。version.h 将随着源代码版本的更改而更改。由于 version.h 中的更改,它将更改应用程序 app1 和 app2 的版本。如果没有更改 app1 的依赖项,我想避免更改应用程序的版本。