summaryrefslogtreecommitdiff
path: root/src/contrib/SDL-3.2.20/build-scripts/showrev.sh
blob: 764d3a431571c9ca6638c1a59c3a52b8871a2db4 (plain)
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#!/bin/sh
#
# Print the current source revision, if available

SDL_ROOT=$(dirname $0)/..
cd $SDL_ROOT

if [ -e ./VERSION.txt ]; then
    cat ./VERSION.txt
    exit 0
fi

major=$(sed -ne 's/^#define SDL_MAJOR_VERSION  *//p' include/SDL3/SDL_version.h)
minor=$(sed -ne 's/^#define SDL_MINOR_VERSION  *//p' include/SDL3/SDL_version.h)
micro=$(sed -ne 's/^#define SDL_MICRO_VERSION  *//p' include/SDL3/SDL_version.h)
version="${major}.${minor}.${micro}"

if [ -x "$(command -v git)" ]; then
    rev="$(git describe --tags --long 2>/dev/null)"
    if [ -n "$rev" ]; then
        # e.g. release-2.24.0-542-g96361fc47
        # or release-2.24.1-5-g36b987dab
        # or prerelease-2.23.2-0-gcb46e1b3f
        echo "$rev"
        exit 0
    fi

    rev="$(git describe --always --tags --long 2>/dev/null)"
    if [ -n "$rev" ]; then
        # Just a truncated sha1, e.g. 96361fc47.
        # Turn it into e.g. 2.25.0-g96361fc47
        echo "${version}-g${rev}"
        exit 0
    fi
fi

if [ -x "$(command -v p4)" ]; then
    rev="$(p4 changes -m1 ./...\#have 2>/dev/null| awk '{print $2}')"
    if [ $? = 0 ]; then
        # e.g. 2.25.0-p7511446
        echo "${version}-p${rev}"
        exit 0
    fi
fi

# best we can do
echo "${version}-no-vcs"
exit 0