new: add some basic documentation about version dectction
(cherry picked from commit 130fe26e62
)
This commit is contained in:
parent
dd92a7a040
commit
71f3c3a49b
@ -124,7 +124,7 @@ elseif(USE_VERSION_FROM_GIT_TAG)
|
||||
endif()
|
||||
|
||||
if (NOT GIT_REVISION)
|
||||
set(GIT_REVISION ${FREEERDP_VERSION})
|
||||
set(GIT_REVISION ${FREERDP_VERSION})
|
||||
endif()
|
||||
|
||||
message(STATUS "Git Revision ${GIT_REVISION}")
|
||||
|
35
docs/version_detection.md
Normal file
35
docs/version_detection.md
Normal file
@ -0,0 +1,35 @@
|
||||
As FreeRDPs is build on different OS with different build tools and methods the
|
||||
"version detection" has grown historically.
|
||||
This document quickly describes how it's currently used.
|
||||
|
||||
When doing a `xfreerdp /version` for example the following is shown
|
||||
|
||||
`This is FreeRDP version 3.0.0-dev (c99c4cecddee4e5b914b122bc1531d47a668bb8e)`
|
||||
|
||||
The first part ist the Version as defined in `RAW_VERSION_STRING` and the second part, in braces,
|
||||
the `GIT_REVISON` of this version.
|
||||
|
||||
`RAW_VERSION_STRING` is very vital as it determines the version used for libraries as well also for
|
||||
all sub-projects as WinPR.
|
||||
|
||||
As default both variables are equal.
|
||||
|
||||
For nightly or development builds it is often of advantage to have the actual version from git
|
||||
instead of having the hard coded value set in CMakeLists.txt. For this the cmake variable `USE_VERSION_FROM_GIT_TAG`
|
||||
can be set. In order for this to work you need a) source checkout and b) git command line utility.
|
||||
If enabled the information from the last git tag (in the format major.minor.patch-extra like
|
||||
2.6.0-android12) will be used.
|
||||
|
||||
If you are building FreeRDP and can't use git because it's not available or the source is not in an
|
||||
git repository - for example when building packages - the files `.source_tag` and `.source_version`
|
||||
in the top-level source directory can be used. `.source_tag` is equal to `RAW_VERSION_STRING` and
|
||||
need to contain the version in the same format as the git tag. `.source_version` is used to pre-fill
|
||||
`GIT_REVISON`. Although mostly used for that it must not contain a git commit or tag - it can be
|
||||
used to set additional arbitrary information. Our recommendation for packagers is to create
|
||||
`.source_version` when importing and set it to the upstream commit or tag to simplify issue
|
||||
tracking.
|
||||
|
||||
As summary the different mechanisms are applied in that order:
|
||||
* `.source_tag` and `.source_version` if found
|
||||
* version set from the last git tag if `RAW_VERSION_STRING` is set
|
||||
* hard coded version in CMakeLists.txt
|
Loading…
Reference in New Issue
Block a user