fix(cmake): fixed tag fetching fallback (that is indeed needed).

Signed-off-by: Federico Di Pierro <nierro92@gmail.com>
This commit is contained in:
Federico Di Pierro
2023-02-07 12:45:43 +01:00
committed by poiana
parent b978e71919
commit d5907f612c

View File

@@ -19,29 +19,35 @@ if(NOT FALCO_VERSION)
# Try to obtain the exact git tag # Try to obtain the exact git tag
git_get_exact_tag(FALCO_TAG) git_get_exact_tag(FALCO_TAG)
if(NOT FALCO_TAG) if(NOT FALCO_TAG)
# Fetch current hash # Obtain the closest tag
get_git_head_revision(refspec FALCO_HASH) git_describe(FALCO_VERSION "--always" "--tags" "--abbrev=7")
if(NOT FALCO_HASH OR FALCO_HASH MATCHES "NOTFOUND$") if(FALCO_VERSION MATCHES "NOTFOUND$")
set(FALCO_VERSION "0.0.0") # Fetch current hash
else() get_git_head_revision(refspec FALCO_HASH)
# Obtain the closest tag if(NOT FALCO_HASH OR FALCO_HASH MATCHES "NOTFOUND$")
git_get_latest_tag(FALCO_LATEST_TAG)
if(NOT FALCO_LATEST_TAG OR FALCO_LATEST_TAG MATCHES "NOTFOUND$")
set(FALCO_VERSION "0.0.0") set(FALCO_VERSION "0.0.0")
else() else()
# Compute commit delta since tag # Obtain the closest tag
git_get_delta_from_tag(FALCO_DELTA ${FALCO_LATEST_TAG} ${FALCO_HASH}) git_get_latest_tag(FALCO_LATEST_TAG)
if(NOT FALCO_DELTA OR FALCO_DELTA MATCHES "NOTFOUND$") if(NOT FALCO_LATEST_TAG OR FALCO_LATEST_TAG MATCHES "NOTFOUND$")
set(FALCO_VERSION "0.0.0") set(FALCO_VERSION "0.0.0")
else() else()
# Cut hash to 7 bytes # Compute commit delta since tag
string(SUBSTRING ${FALCO_HASH} 0 7 FALCO_HASH) git_get_delta_from_tag(FALCO_DELTA ${FALCO_LATEST_TAG} ${FALCO_HASH})
# Format FALCO_VERSION to be semver with prerelease and build part if(NOT FALCO_DELTA OR FALCO_DELTA MATCHES "NOTFOUND$")
set(FALCO_VERSION set(FALCO_VERSION "0.0.0")
"${FALCO_LATEST_TAG}-${FALCO_DELTA}+${FALCO_HASH}") else()
endif() # Cut hash to 7 bytes
string(SUBSTRING ${FALCO_HASH} 0 7 FALCO_HASH)
# Format FALCO_VERSION to be semver with prerelease and build part
set(FALCO_VERSION
"${FALCO_LATEST_TAG}-${FALCO_DELTA}+${FALCO_HASH}")
endif()
endif()
endif() endif()
endif() endif()
# Format FALCO_VERSION to be semver with prerelease and build part
string(REPLACE "-g" "+" FALCO_VERSION "${FALCO_VERSION}")
else() else()
# A tag has been found: use it as the Falco version # A tag has been found: use it as the Falco version
set(FALCO_VERSION "${FALCO_TAG}") set(FALCO_VERSION "${FALCO_TAG}")