目前我是怎麼做的。 在建設開始目前,我產生version.h中具有源代碼的當前版本APPLICATION_VERSION。哪個應用程序正在使用哪個。如果應用程序的任何依賴項被更改,爲應用程序生成獨特的版本?
問題這種方法是,如果任何文件中源改變了它迫使每個應用程序被重建。
我要生成version.h中任何只要任何其他依賴留下version.txt改變爲二進制相關應用程序。 目前我正在使用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的依賴性更改爲避免改變應用程序的版本。
我認爲,這是更好地只使用'的extern的std :: string版本;'而不是功能。 – arrowd
@arrowdodger:對於簡單的情況,我完全同意。例如。只有一個版本字符串在我的例子中。但是,當有更多的信息比單個數字或需要各種格式時,我認爲一套方法可以更加可擴展。 –
@andre謝謝你會嘗試這個。 –