版本号都需要各地项目; 在安装程序,代码,工具链等我鄙视重复。 我希望我的版本号将被存储在一个中央权威的位置。
我与C / C ++的工作,并在各种平台上使用Qt。 在Qt,QMAKE项目指定喜欢的版本号:
VERSION = 1.2.3
在代码中,我使用类似像version.h中头部:
#define VERSION_MAJ 1
#define VERSION_MIN 2
#define VERSION_REV 3
#define VERSION_STRING \"VERSION_MAJ\" "." \"VERSION_MIN\" "." \"VERSION_REV\"
我安装的工具链有对C预处理支持,让我可以使用version.h中指定的版本相同。 不过,我不知道如何qmake将使用相同的版本号。 我以为我可以预处理亲文件,但作为#字符意味着亲文件和注释的C预处理器会翻倒,将无法正常工作。
任何人都知道的一个很好的方式,以保持我的版本号集中?
如果你想成为能够存储在C头文件的版本号,你可以这样做,然后将它们导入到项目文件中的Qt工程变量。 下面喜欢的东西应该工作:
version.h中:
#define MY_MAJOR_VERSION 3
#define MY_MINOR_VERSION 1
的.pro
HEADERS += Version.h
VERSION_MAJOR = MY_MAJOR_VERSION
VERSION_MINOR = MY_MINOR_VERSION
做这样一轮的好处是,你就可以使用你的权威的头文件,如果你需要编译项目从Qt的远的其他部分。
我用这样的事情在我的构建系统
#.pro file
#Application version
VERSION_MAJOR = 1
VERSION_MINOR = 0
VERSION_BUILD = 0
DEFINES += "VERSION_MAJOR=$$VERSION_MAJOR"\
"VERSION_MINOR=$$VERSION_MINOR"\
"VERSION_BUILD=$$VERSION_BUILD"
#Target version
VERSION = $${VERSION_MAJOR}.$${VERSION_MINOR}.$${VERSION_BUILD}
之后,你可以使用VERSION_MAJOR和其他人在你的应用程序正常宏。