Line data Source code
1 : // Copyright 2009 the V8 project authors. All rights reserved.
2 : // Use of this source code is governed by a BSD-style license that can be
3 : // found in the LICENSE file.
4 :
5 : #ifndef V8_VERSION_H_
6 : #define V8_VERSION_H_
7 :
8 : #include <cstdint>
9 :
10 : #include "src/base/functional.h"
11 :
12 : namespace v8 {
13 : namespace internal {
14 :
15 : template <typename T>
16 : class Vector;
17 :
18 : class V8_EXPORT Version {
19 : public:
20 : // Return the various version components.
21 62769 : static int GetMajor() { return major_; }
22 62769 : static int GetMinor() { return minor_; }
23 62769 : static int GetBuild() { return build_; }
24 62769 : static int GetPatch() { return patch_; }
25 62764 : static const char* GetEmbedder() { return embedder_; }
26 62769 : static bool IsCandidate() { return candidate_; }
27 1020 : static uint32_t Hash() {
28 : return static_cast<uint32_t>(
29 1020 : base::hash_combine(major_, minor_, build_, patch_));
30 : }
31 :
32 : // Calculate the V8 version string.
33 : static void GetString(Vector<char> str);
34 :
35 : // Calculate the SONAME for the V8 shared library.
36 : static void GetSONAME(Vector<char> str);
37 :
38 33 : static const char* GetVersion() { return version_string_; }
39 :
40 : private:
41 : // NOTE: can't make these really const because of test-version.cc.
42 : static int major_;
43 : static int minor_;
44 : static int build_;
45 : static int patch_;
46 : static const char* embedder_;
47 : static bool candidate_;
48 : static const char* soname_;
49 : static const char* version_string_;
50 :
51 : // In test-version.cc.
52 : friend void SetVersion(int major, int minor, int build, int patch,
53 : const char* embedder, bool candidate,
54 : const char* soname);
55 : };
56 :
57 : } // namespace internal
58 : } // namespace v8
59 :
60 : #endif // V8_VERSION_H_
|