File: GenerateVersion.cmake

package info (click to toggle)
apitrace 13.0%2Brepack-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 13,752 kB
  • sloc: cpp: 183,974; python: 33,969; ansic: 25,566; sh: 169; makefile: 88; sed: 3
file content (31 lines) | stat: -rw-r--r-- 1,330 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# https://docs.github.com/en/actions/reference/environment-variables#default-environment-variables
if ("$ENV{GITHUB_ACTIONS}" STREQUAL "true")
    if ("$ENV{GITHUB_REF}" MATCHES [[^refs/tags/([^/]*)$]])
        set (APITRACE_VERSION "${CMAKE_MATCH_1}")
    else ()
        # Git describe doesn't work with shallow clones
        string (SUBSTRING "$ENV{GITHUB_SHA}" 0 8 GIT_SHORT_SHA)
        set (APITRACE_VERSION "git-${GIT_SHORT_SHA} $ENV{GITHUB_SERVER_URL}/$ENV{GITHUB_REPOSITORY}/actions/runs/$ENV{GITHUB_RUN_ID}")
    endif ()
elseif (GIT_EXECUTABLE)
    get_filename_component (SRC_DIR ${SRC} DIRECTORY)
    # Generate a git-describe version string from Git repository tags
    execute_process (
        COMMAND "${GIT_EXECUTABLE}" describe --tags --dirty --match "*"
        WORKING_DIRECTORY ${SRC_DIR}
        OUTPUT_VARIABLE GIT_DESCRIBE_VERSION
        RESULT_VARIABLE GIT_DESCRIBE_ERROR_CODE
        OUTPUT_STRIP_TRAILING_WHITESPACE
    )
    if (NOT GIT_DESCRIBE_ERROR_CODE)
        set (APITRACE_VERSION "${GIT_DESCRIBE_VERSION}")
    endif ()
endif ()

if (NOT DEFINED APITRACE_VERSION)
    set (APITRACE_VERSION 0.0-unknown)
    message (WARNING "Failed to determine APITRACE_VERSION. Using default version \"${APITRACE_VERSION}\".")
endif ()

# propagate version into header
configure_file (${SRC} ${DST} @ONLY)