cmake: specify project version

We currently do not set up a project version within CMake, meaning that
it can't be use by other projects including libgit2 as a sub-project and
also not by other tools like IDEs.

This commit changes this to always set up a project version, but instead
of extracting it from the "version.h" header we now set it up directly.
This is mostly to avoid mis-use of the previous `LIBGIT2_VERSION`
variables, as we should now always use the `libgit2_VERSION` ones that
are set up by CMake if one provides the "VERSION" keyword to the
`project()` call. While this is one more moving target we need to adjust
on releases, this commit also adjusts our release script to verify that
the project version was incremented as expected.
This commit is contained in:
Patrick Steinhardt
2020-06-05 10:07:33 +02:00
parent 325375e3b6
commit 19eb1e4bb7
3 changed files with 22 additions and 23 deletions

View File

@@ -40,6 +40,15 @@ def verify_version(version):
'SOVERSION': [ '"{}.{}"'.format(version.major, version.minor), None ],
}
# Parse CMakeLists
with open('CMakeLists.txt') as f:
for line in f.readlines():
if line.startswith('project(libgit2 VERSION "{}"'.format(version)):
break
else:
raise Error("cmake: invalid project definition")
# Parse version.h
with open('include/git2/version.h') as f:
lines = f.readlines()