dtk中有这么一段
# create dtkwidget_config.h file
defineTest(updateDtkCoreConfigFile) {
config_content += $$quote($${LITERAL_HASH}define DTK_VERSION_MAJOR $$VER_MAJ)
config_content += $$quote($${LITERAL_HASH}define DTK_VERSION_MINOR $$VER_MIN)
config_content += $$quote($${LITERAL_HASH}define DTK_VERSION_PATCH $$VER_PAT)
config_content += $$quote($${LITERAL_HASH}define DTK_VERSION_BUILD $$VER_BUI)
config_content += $$quote($${LITERAL_HASH}define DTK_VERSION_STR \"$$VERSION\")
config_content += $$quote(//)
for(file, includes.files) {
file = $$quote($$basename(file))
!isEqual(file, DtkCore):contains(file, D[A-Za-z0-9_]+) {
config_content += $$quote($${LITERAL_HASH}define DTKCORE_CLASS_$$file)
}
}
!write_file($$PWD/dtkcore_config.h, config_content):return(false)
return(true)
}
替换成cmake的话
可以写
set(DTK_VERSION_MAJOR ${PROJECT_VERSION_MAJOR})
set(DTK_VERSION_MINOR ${PROJECT_VERSION_MINOR})
set(DTK_VERSION_PATCH ${PROJECT_VERSION_PATCH})
set(DTK_VERSION_BUILD 0)
set(DTK_VERSION_STR "\"${PROJECT_VERSION}\"")
configure_file (
"${PROJECT_SOURCE_DIR}/src/dtkcore_config.h.in"
"${PROJECT_BINARY_DIR}/src/dtkcore_config.h"
)
配置模板文件
#define DTK_VERSION_MAJOR @[email protected]
#define DTK_VERSION_MINOR @[email protected]
#define DTK_VERSION_PATCH @[email protected]
#define DTK_VERSION_BUILD @[email protected]
#define DTK_VERSION_STR @[email protected]
// TODO
// DTKCORE_CLASS_XXXX
最后生成
#define DTK_VERSION_MAJOR 2
#define DTK_VERSION_MINOR 0
#define DTK_VERSION_PATCH 9
#define DTK_VERSION_BUILD 0
#define DTK_VERSION_STR "2.0.9"
// TODO
// DTKCORE_CLASS_XXXX
与系统里的
底下还有一节,目前还不知道怎么弄