$extrastylesheet
libmesh_version.C
Go to the documentation of this file.
00001 // The libMesh Finite Element Library.
00002 // Copyright (C) 2002-2014 Benjamin S. Kirk, John W. Peterson, Roy H. Stogner
00003 
00004 // This library is free software; you can redistribute it and/or
00005 // modify it under the terms of the GNU Lesser General Public
00006 // License as published by the Free Software Foundation; either
00007 // version 2.1 of the License, or (at your option) any later version.
00008 
00009 // This library is distributed in the hope that it will be useful,
00010 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00011 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012 // Lesser General Public License for more details.
00013 
00014 // You should have received a copy of the GNU Lesser General Public
00015 // License along with this library; if not, write to the Free Software
00016 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00017 
00018 #include "libmesh/libmesh_version.h"
00019 
00020 void libMesh::libmesh_version_stdout()
00021 {
00022   std::cout << "--------------------------------------------------------" << std::endl;
00023   std::cout << "libMesh Library: Version = " << LIBMESH_LIB_VERSION;
00024   std::cout << " (" << get_libmesh_version() << ")" << std::endl << std::endl;
00025 
00026   std::cout << LIBMESH_LIB_RELEASE << std::endl << std::endl;
00027 
00028   std::cout << "Build Date   = " << LIBMESH_BUILD_DATE     << std::endl;
00029   std::cout << "Build Host   = " << LIBMESH_BUILD_HOST     << std::endl;
00030   std::cout << "Build User   = " << LIBMESH_BUILD_USER     << std::endl;
00031   std::cout << "Build Arch   = " << LIBMESH_BUILD_ARCH     << std::endl;
00032   std::cout << "Build Rev    = " << LIBMESH_BUILD_VERSION  << std::endl << std::endl;
00033 
00034   // CXXFLAGS is ambiguous wth multiple methods - could add all three but why not libmesh-config?
00035   //std::cout << "C++ Config   = " << LIBMESH_CXX << " " << LIBMESH_CXXFLAGS << std::endl;
00036   std::cout << "--------------------------------------------------------" << std::endl;
00037 
00038   return;
00039 }
00040 
00041 
00042 
00043 int libMesh::get_libmesh_version()
00044 {
00045   /* Note: return format follows the versioning convention xx.yy.zz where
00046 
00047      xx = major version number
00048      yy = minor version number
00049      zz = micro version number
00050 
00051      For example:
00052      v.   0.23  -> 002300 = 2300
00053      v   0.23.1 -> 002301 = 2301
00054      v. 10.23.2 -> 102302         */
00055 
00056   int major_version = 0;
00057   int minor_version = 0;
00058   int micro_version = 0;
00059 
00060 #ifdef LIBMESH_MAJOR_VERSION
00061   major_version = LIBMESH_MAJOR_VERSION;
00062 #endif
00063 
00064 #ifdef LIBMESH_MINOR_VERSION
00065   minor_version = LIBMESH_MINOR_VERSION;
00066 #endif
00067 
00068 #ifdef LIBMESH_MICRO_VERSION
00069   micro_version = LIBMESH_MICRO_VERSION;
00070 #endif
00071 
00072   return major_version*10000 + minor_version*100 + micro_version;
00073 }
00074 
00075 
00076 
00077 std::string libMesh::get_io_compatibility_version ()
00078 {
00079   std::string retval(LIBMESH_IO_COMPATIBILITY_VERSION);
00080   return retval;
00081 }