]> Dogcows Code - chaz/yoink/blobdiff - src/stlplus/portability/build.cpp
import stlplus 3.7
[chaz/yoink] / src / stlplus / portability / build.cpp
index e591a34cbd6105456b97e599c4d4d95dc278bcc5..83679d4cb6c7173ec26e2800411a4efbeb4feda1 100644 (file)
@@ -1,60 +1,88 @@
-////////////////////////////////////////////////////////////////////////////////
-
-//   Author:    Andy Rushton
-//   Copyright: (c) Southampton University 1999-2004
-//              (c) Andy Rushton           2004-2009
-//   License:   BSD License, see ../docs/license.html
-
-////////////////////////////////////////////////////////////////////////////////
-#include "build.hpp"
-#include "version.hpp"
-#include "dprintf.hpp"
-////////////////////////////////////////////////////////////////////////////////
-
-namespace stlplus
-{
-
-  ////////////////////////////////////////////////////////////////////////////////
-  // report the platform-specific details of this build
-
-  std::string build(void)
-  {
-    ////////////////////////////////////////////////////////////////////////////////
-    // work out the platform
-
-#ifdef _WIN32
-    std::string platform("Windows");
-#else
-    // at present there are no variations between different Unix platforms so
-    // they all map onto the generic Unix platform
-    std::string platform("Generic Unix");
-#endif
-
-    ////////////////////////////////////////////////////////////////////////////////
-    // work out the compiler
-
-#if defined __GNUC__
-    std::string compiler(dformat("gcc v%s",__VERSION__));
-#elif defined _MSC_VER
-    std::string compiler(dformat("MSVC v%0.2f",((float)_MSC_VER)/100.0));
-#elif defined __BORLANDC__
-    std::string compiler(dformat("Borland v%d.%d",__BORLANDC__/256,__BORLANDC__/16%16));
-#else
-    std::string compiler("unknown compiler");
-#endif
-
-    ////////////////////////////////////////////////////////////////////////////////
-    // work out the kind of build
-    // there are two variants - debug and release
-
-#ifndef NDEBUG
-    std::string variant("debug");
-#else
-    std::string variant("release");
-#endif
-
-    return std::string("STLplus v") + version() + ", " + platform + ", " + compiler + ", " + variant;
-  }
-
-////////////////////////////////////////////////////////////////////////////////
-} // end namespace stlplus
+////////////////////////////////////////////////////////////////////////////////\r
+\r
+//   Author:    Andy Rushton\r
+//   Copyright: (c) Southampton University 1999-2004\r
+//              (c) Andy Rushton           2004 onwards\r
+//   License:   BSD License, see ../docs/license.html\r
+\r
+// report the platform-specific details of this build\r
+\r
+////////////////////////////////////////////////////////////////////////////////\r
+#include "build.hpp"\r
+#include "version.hpp"\r
+#include "dprintf.hpp"\r
+////////////////////////////////////////////////////////////////////////////////\r
+\r
+namespace stlplus\r
+{\r
+\r
+  // STLplus version in the form "STLplus v3.0" - see version.hpp for a way of getting just the version number\r
+  std::string stlplus_version(void)\r
+  {\r
+    return std::string("STLplus v") + version();\r
+  }\r
+\r
+  // platform is the target operating system in the form "Windows" or "Generic Unix"\r
+  std::string platform(void)\r
+  {\r
+#if defined _WIN32\r
+    return std::string("Windows");\r
+#else\r
+    // at present there are no variations between different Unix platforms so\r
+    // they all map onto the generic Unix platform\r
+    return std::string("Generic Unix");\r
+#endif\r
+  }\r
+\r
+  // compiler_name is the short name of the compiler, e.g. "gcc" or "MSVC"\r
+  std::string compiler_name(void)\r
+  {\r
+#if defined __GNUC__\r
+    return std::string("gcc");\r
+#elif defined _MSC_VER\r
+    return std::string("MSVC");\r
+#elif defined __BORLANDC__\r
+    return std::string("Borland");\r
+#else\r
+    return std::string("unknown compiler");\r
+#endif\r
+  }\r
+\r
+  // compiler_version is the version string of the compiler e.g. "3.4" for gcc or "15.00" for MSVC\r
+  std::string compiler_version(void)\r
+  {\r
+#if defined __GNUC__\r
+    return dformat("%d.%d.%d",__GNUC__,__GNUC_MINOR__,__GNUC_PATCHLEVEL__);\r
+#elif defined _MSC_VER\r
+    return dformat("%0.2f",((float)_MSC_VER)/100.0);\r
+#elif defined __BORLANDC__\r
+    return dformat("%d.%d%d",__BORLANDC__/256,__BORLANDC__/16%16,__BORLANDC__%16);\r
+#else\r
+    return std::string();\r
+#endif\r
+  }\r
+\r
+  // compiler is the compilation system and version above combined into a human- readable form e.g. "gcc v3.4"\r
+  std::string compiler(void)\r
+  {\r
+    return compiler_name() + std::string(" v") + compiler_version();\r
+  }\r
+\r
+  // variant is the kind of build - "debug" or "release"\r
+  std::string variant(void)\r
+  {\r
+#ifndef NDEBUG\r
+    return std::string("debug");\r
+#else\r
+    return std::string("release");\r
+#endif\r
+\r
+  }\r
+\r
+  std::string build(void)\r
+  {\r
+    return stlplus_version() + ", " + platform() + ", " + compiler() + ", " + variant();\r
+  }\r
+\r
+////////////////////////////////////////////////////////////////////////////////\r
+} // end namespace stlplus\r
This page took 0.0196 seconds and 4 git commands to generate.