这将在cmake-time设置版本:
set_target_properties(${THIS_LIB} PROPERTIES SOVERSION ${PROJECT_VERSION})
但是我使用从git中提取一些信息的脚本(它是脏的还是错误的分支等)。
例如,他们可以在构建时生成包含所有这些信息的version.cpp
:
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/version.cpp
DEPENDS
${GIT_COMMIT_DIRTINESS_FILE}
COMMAND ${CMAKE_COMMAND}
-DSRC=${CMAKE_CURRENT_SOURCE_DIR}/version.cpp.in
-DDST=${CMAKE_CURRENT_BINARY_DIR}/version.cpp
-P ${CMAKE_SOURCE_DIR}/cmake/configure-file.cmake
)
因此,可执行文件现在具有有关源树状态的各种信息。
如何在SOVERSION上执行相同类型的操作,因此在包中lib会显示为libmy.so.0.0.1.SHA.~dirty
?