File: version.cpp.in

package info (click to toggle)
openmw 0.50.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 37,076 kB
  • sloc: cpp: 380,958; xml: 2,192; sh: 1,449; python: 911; makefile: 26; javascript: 5
file content (62 lines) | stat: -rw-r--r-- 1,610 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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include <components/version/version.hpp>

#include <filesystem>
#include <fstream>

namespace Version
{
    std::string_view getVersion()
    {
        return "@OPENMW_VERSION@";
    }

    std::string_view getCommitHash()
    {
        return "@OPENMW_VERSION_COMMITHASH@";
    }

    std::string_view getTagHash()
    {
        return "@OPENMW_VERSION_TAGHASH@";
    }

    int getLuaApiRevision()
    {
        return @OPENMW_LUA_API_REVISION@;
    }

    int getPostprocessingApiRevision()
    {
        return @OPENMW_POSTPROCESSING_API_REVISION@;
    }

    std::string getOpenmwVersionDescription()
    {
        std::string str = "OpenMW version ";
        str += getVersion();
        if (!getCommitHash().empty())
        {
            str += "\nRevision: ";
            str += getCommitHash().substr(0, 10);
        }
        return str;
    }

    bool checkResourcesVersion(const std::filesystem::path& resourcePath)
    {
        std::ifstream stream(resourcePath / "version");
        std::string version, commitHash, tagHash;
        std::getline(stream, version);
        std::getline(stream, commitHash);
        std::getline(stream, tagHash);
        return getVersion() == version && getCommitHash() == commitHash && getTagHash() == tagHash;
    }

    std::string_view getDocumentationUrl()
    {
        if constexpr (std::string_view("@OPENMW_VERSION_COMMITHASH@") == "@OPENMW_VERSION_TAGHASH@")
            return OPENMW_DOC_BASEURL "openmw-@OPENMW_VERSION_MAJOR@.@OPENMW_VERSION_MINOR@.@OPENMW_VERSION_RELEASE@/";
        else
            return OPENMW_DOC_BASEURL "latest/";
    }
}