Line data Source code
1 : // Copyright 2012 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 : #include "src/version.h"
6 :
7 : #include "include/v8-version-string.h"
8 : #include "include/v8-version.h"
9 : #include "src/utils.h"
10 :
11 : // Define SONAME to have the build system put a specific SONAME into the
12 : // shared library instead the generic SONAME generated from the V8 version
13 : // number. This define is mainly used by the build system script.
14 : #define SONAME ""
15 :
16 : namespace v8 {
17 : namespace internal {
18 :
19 : int Version::major_ = V8_MAJOR_VERSION;
20 : int Version::minor_ = V8_MINOR_VERSION;
21 : int Version::build_ = V8_BUILD_NUMBER;
22 : int Version::patch_ = V8_PATCH_LEVEL;
23 : bool Version::candidate_ = (V8_IS_CANDIDATE_VERSION != 0);
24 : const char* Version::soname_ = SONAME;
25 : const char* Version::version_string_ = V8_VERSION_STRING;
26 :
27 : // Calculate the V8 version string.
28 112 : void Version::GetString(Vector<char> str) {
29 112 : const char* candidate = IsCandidate() ? " (candidate)" : "";
30 : #ifdef USE_SIMULATOR
31 : const char* is_simulator = " SIMULATOR";
32 : #else
33 : const char* is_simulator = "";
34 : #endif // USE_SIMULATOR
35 112 : if (GetPatch() > 0) {
36 : SNPrintF(str, "%d.%d.%d.%d%s%s",
37 : GetMajor(), GetMinor(), GetBuild(), GetPatch(), candidate,
38 56 : is_simulator);
39 : } else {
40 : SNPrintF(str, "%d.%d.%d%s%s",
41 : GetMajor(), GetMinor(), GetBuild(), candidate,
42 56 : is_simulator);
43 : }
44 112 : }
45 :
46 :
47 : // Calculate the SONAME for the V8 shared library.
48 112 : void Version::GetSONAME(Vector<char> str) {
49 112 : if (soname_ == NULL || *soname_ == '\0') {
50 : // Generate generic SONAME if no specific SONAME is defined.
51 56 : const char* candidate = IsCandidate() ? "-candidate" : "";
52 56 : if (GetPatch() > 0) {
53 : SNPrintF(str, "libv8-%d.%d.%d.%d%s.so",
54 28 : GetMajor(), GetMinor(), GetBuild(), GetPatch(), candidate);
55 : } else {
56 : SNPrintF(str, "libv8-%d.%d.%d%s.so",
57 28 : GetMajor(), GetMinor(), GetBuild(), candidate);
58 : }
59 : } else {
60 : // Use specific SONAME.
61 56 : SNPrintF(str, "%s", soname_);
62 : }
63 112 : }
64 :
65 : } // namespace internal
66 : } // namespace v8
|