- Problem: 如何在軟體中加入版號?
- How:
- 工具: CMake (跨平台的 configuration tool, 可建立各平台的 build solution/project file)
- 流程:
- 在 project setting 檔案 (CMakeLists.txt) 內加入版號
set (APP_VERSION_MAJOR 1)
set (APP_VERSION_MINOR 0)
在 source code 中新增特定的預設 config.h.in 檔 (config.h 會是 build config.h.in 後的產物)
// the configured options and settings for App
#define APP_VERSION_MAJOR @APP_VERSION_MAJOR@
#define APP_VERSION_MINOR @APP_VERSION_MAJOR@
在 CMakeLists.txt 中指定此 config.h 檔及預設的 config.h.in參考檔
configure_file (
"${PROJECT_SOURCE_DIR}/config.h.in"
"${PROJECT_BINARY_DIR}/config.h"
))
如此就可以在 source code 中, include config.h 並使用 APP_VERSION_MAJOR, APP_VERSION_MINOR
另外, 若 build成 shared binary 的話, 也可以像 linux一樣設計成 app_3.1.2 這樣的 binary, 然後 app為 symbolic link to app_3.1.2
- CMakeLists.txt 中加入 target property VERSION 與 SONAME
set(APP_VERSION_STRING ${APP_VERSION_MAJOR}.${APP_VERSION_MINOR}.${APP_VERSION_PATCH})
set_target_properties(App PROPERTIES
VERSION ${APP_VERSION_STRING}
SOVERSION ${APP_VERSION_MAJOR}
)
Reference: CMake tutorial
沒有留言:
張貼留言