1/* Declaration of macros and functions providing version -*- C++ -*- 2 and licensing information. 3 Copyright (C) 2001-2010 Roberto Bagnara <bagnara@cs.unipr.it> 4 Copyright (C) 2010-2016 BUGSENG srl (http://bugseng.com) 5 6This file is part of the Parma Polyhedra Library (PPL). 7 8The PPL is free software; you can redistribute it and/or modify it 9under the terms of the GNU General Public License as published by the 10Free Software Foundation; either version 3 of the License, or (at your 11option) any later version. 12 13The PPL is distributed in the hope that it will be useful, but WITHOUT 14ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 15FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 16for more details. 17 18You should have received a copy of the GNU General Public License 19along with this program; if not, write to the Free Software Foundation, 20Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1307, USA. 21 22For the most up-to-date information see the Parma Polyhedra Library 23site: http://bugseng.com/products/ppl/ . */ 24 25#ifndef PPL_version_hh 26#define PPL_version_hh 1 27 28//! The major number of the PPL version. 29/*! \ingroup PPL_CXX_interface */ 30#define PPL_VERSION_MAJOR @PPL_VERSION_MAJOR@ 31 32//! The minor number of the PPL version. 33/*! \ingroup PPL_CXX_interface */ 34#define PPL_VERSION_MINOR @PPL_VERSION_MINOR@ 35 36//! The revision number of the PPL version. 37/*! \ingroup PPL_CXX_interface */ 38#define PPL_VERSION_REVISION @PPL_VERSION_REVISION@ 39 40/*! \brief 41 The beta number of the PPL version. This is zero for official 42 releases and nonzero for development snapshots. 43 \ingroup PPL_CXX_interface 44*/ 45#define PPL_VERSION_BETA @PPL_VERSION_BETA@ 46 47//! A string containing the PPL version. 48/*! \ingroup PPL_CXX_interface 49 Let <CODE>M</CODE> and <CODE>m</CODE> denote the numbers associated 50 to PPL_VERSION_MAJOR and PPL_VERSION_MINOR, respectively. The 51 format of PPL_VERSION is <CODE>M "." m</CODE> if both 52 PPL_VERSION_REVISION (<CODE>r</CODE>) and PPL_VERSION_BETA 53 (<CODE>b</CODE>)are zero, <CODE>M "." m "pre" b</CODE> if 54 PPL_VERSION_REVISION is zero and PPL_VERSION_BETA is not zero, 55 <CODE>M "." m "." r</CODE> if PPL_VERSION_REVISION is not zero and 56 PPL_VERSION_BETA is zero, <CODE>M "." m "." r "pre" b</CODE> if 57 neither PPL_VERSION_REVISION nor PPL_VERSION_BETA are zero. 58*/ 59#define PPL_VERSION "@VERSION@" 60 61namespace Parma_Polyhedra_Library { 62 63//! \name Library Version Control Functions 64//@{ 65 66//! Returns the major number of the PPL version. 67unsigned 68version_major(); 69 70//! Returns the minor number of the PPL version. 71unsigned 72version_minor(); 73 74//! Returns the revision number of the PPL version. 75unsigned 76version_revision(); 77 78//! Returns the beta number of the PPL version. 79unsigned 80version_beta(); 81 82//! Returns a character string containing the PPL version. 83const char* version(); 84 85//! Returns a character string containing the PPL banner. 86/*! 87 The banner provides information about the PPL version, the licensing, 88 the lack of any warranty whatsoever, the C++ compiler used to build 89 the library, where to report bugs and where to look for further 90 information. 91*/ 92const char* banner(); 93 94//@} // Library Version Control Functions 95 96} // namespace Parma_Polyhedra_Library 97 98#endif // !defined(PPL_version_hh) 99