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 namespace v8 { 9 namespace internal { 10 11 class Version { 12 public: 13 // Return the various version components. 14 static int GetMajor() { return major_; } 15 static int GetMinor() { return minor_; } 16 static int GetBuild() { return build_; } 17 static int GetPatch() { return patch_; } 18 static bool IsCandidate() { return candidate_; } 19 static int Hash() { return (major_ << 20) ^ (minor_ << 10) ^ patch_; } 20 21 // Calculate the V8 version string. 22 static void GetString(Vector<char> str); 23 24 // Calculate the SONAME for the V8 shared library. 25 static void GetSONAME(Vector<char> str); 26 27 static const char* GetVersion() { return version_string_; } 28 29 private: 30 // NOTE: can't make these really const because of test-version.cc. 31 static int major_; 32 static int minor_; 33 static int build_; 34 static int patch_; 35 static bool candidate_; 36 static const char* soname_; 37 static const char* version_string_; 38 39 // In test-version.cc. 40 friend void SetVersion(int major, int minor, int build, int patch, 41 bool candidate, const char* soname); 42 }; 43 44 } } // namespace v8::internal 45 46 #endif // V8_VERSION_H_ 47