Home | History | Annotate | Download | only in src
      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 void Version::GetString(Vector<char> str) {
     29   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   if (GetPatch() > 0) {
     36     SNPrintF(str, "%d.%d.%d.%d%s%s",
     37              GetMajor(), GetMinor(), GetBuild(), GetPatch(), candidate,
     38              is_simulator);
     39   } else {
     40     SNPrintF(str, "%d.%d.%d%s%s",
     41              GetMajor(), GetMinor(), GetBuild(), candidate,
     42              is_simulator);
     43   }
     44 }
     45 
     46 
     47 // Calculate the SONAME for the V8 shared library.
     48 void Version::GetSONAME(Vector<char> str) {
     49   if (soname_ == NULL || *soname_ == '\0') {
     50     // Generate generic SONAME if no specific SONAME is defined.
     51     const char* candidate = IsCandidate() ? "-candidate" : "";
     52     if (GetPatch() > 0) {
     53       SNPrintF(str, "libv8-%d.%d.%d.%d%s.so",
     54                GetMajor(), GetMinor(), GetBuild(), GetPatch(), candidate);
     55     } else {
     56       SNPrintF(str, "libv8-%d.%d.%d%s.so",
     57                GetMajor(), GetMinor(), GetBuild(), candidate);
     58     }
     59   } else {
     60     // Use specific SONAME.
     61     SNPrintF(str, "%s", soname_);
     62   }
     63 }
     64 
     65 }  // namespace internal
     66 }  // namespace v8
     67