mirror of
https://github.com/yhirose/cpp-httplib
synced 2024-11-21 14:29:10 -07:00
Use git to get full project version (#519)
This gets us the full version (aka with the patch version), instead of just major and minor version from user agent. Falls back to the user agent if it fails.
This commit is contained in:
parent
24bdb736f0
commit
ec00fe5d5b
1 changed files with 19 additions and 6 deletions
|
@ -53,12 +53,25 @@
|
||||||
]]
|
]]
|
||||||
cmake_minimum_required(VERSION 3.12.0 FATAL_ERROR)
|
cmake_minimum_required(VERSION 3.12.0 FATAL_ERROR)
|
||||||
|
|
||||||
# Get the user agent and use it as a version
|
# Gets the latest tag as a string like "v0.6.6"
|
||||||
# This gets the string with the user agent from the header.
|
# Can silently fail if git isn't on the system
|
||||||
# This is so the maintainer doesn't actually need to update this manually.
|
execute_process(COMMAND git describe --tags --abbrev=0
|
||||||
file(STRINGS httplib.h _user_agent_match REGEX "User\-Agent.*cpp\-httplib/([0-9]+\.?)+")
|
OUTPUT_VARIABLE _raw_version_string
|
||||||
# Need to pull out just the version for use
|
ERROR_VARIABLE _git_tag_error
|
||||||
string(REGEX MATCH "([0-9]+\\.?)+" _httplib_version "${_user_agent_match}")
|
)
|
||||||
|
|
||||||
|
# execute_process can fail silenty, so check for an error
|
||||||
|
# if there was an error, just use the user agent as a version
|
||||||
|
if(_git_tag_error)
|
||||||
|
message(WARNING "cpp-httplib failed to find the latest git tag, falling back to using user agent as the version.")
|
||||||
|
# Get the user agent and use it as a version
|
||||||
|
# This gets the string with the user agent from the header.
|
||||||
|
# This is so the maintainer doesn't actually need to update this manually.
|
||||||
|
file(STRINGS httplib.h _raw_version_string REGEX "User\-Agent.*cpp\-httplib/([0-9]+\.?)+")
|
||||||
|
endif()
|
||||||
|
# Needed since git tags have "v" prefixing them.
|
||||||
|
# Also used if the fallback to user agent string is being used.
|
||||||
|
string(REGEX MATCH "([0-9]+\\.?)+" _httplib_version "${_raw_version_string}")
|
||||||
|
|
||||||
project(httplib VERSION ${_httplib_version} LANGUAGES CXX)
|
project(httplib VERSION ${_httplib_version} LANGUAGES CXX)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue