source: tspsg/src/version.h @ 1299ea5b49

appveyorimgbotreadme
Last change on this file since 1299ea5b49 was 1299ea5b49, checked in by Oleksii Serdiuk, 12 years ago

Updated version info to be set based on git tags.

'git describe' is now used for version definition. Major, minor and
release are taken from the latest git tag. Build is defined as number of
commits since the latest tag. If we're out of source, then .tag file
should contain output of 'git describe --abbrev=40' command.

Also, moved version related code from tspsg.pro to version.pri.

  • Property mode set to 100644
File size: 2.5 KB
Line 
1/*!
2 * \file version.h
3 * \author Copyright &copy; 2007-2011 Lёppa <contacts[at]oleksii[dot]name>
4 *
5 *  $Id: $Format:%h %ai %an$ $
6 *  $URL: http://tspsg.info/ $
7 *
8 * \brief Contains TSPSG version information defines.
9 *
10 *  <b>TSPSG: TSP Solver and Generator</b>
11 *
12 *  This file is part of TSPSG.
13 *
14 *  TSPSG is free software: you can redistribute it and/or modify
15 *  it under the terms of the GNU General Public License as published by
16 *  the Free Software Foundation, either version 3 of the License, or
17 *  (at your option) any later version.
18 *
19 *  TSPSG is distributed in the hope that it will be useful,
20 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
21 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
22 *  GNU General Public License for more details.
23 *
24 *  You should have received a copy of the GNU General Public License
25 *  along with TSPSG.  If not, see <http://www.gnu.org/licenses/>.
26 */
27
28#ifndef VERSION_H
29#define VERSION_H
30
31#ifndef BUILD_VERSION_MAJOR
32    //! Major version of current TSPSG build
33#   define BUILD_VERSION_MAJOR 0
34#endif // BUILD_VERSION_MAJOR
35#ifndef BUILD_VERSION_MINOR
36    //! Minor version of current TSPSG build
37#   define BUILD_VERSION_MINOR 0
38#endif // BUILD_VERSION_MINOR
39#ifndef BUILD_RELEASE
40    //! TSPSG release number
41#   define BUILD_RELEASE 0
42#endif // BUILD_RELEASE
43
44#ifndef BUILD_NUMBER
45    //! Current TSPSG build number
46#   define BUILD_NUMBER 0
47#endif // BUILD_NUMBER
48
49/*!
50 * \def BUILD_STATUS
51 * \brief TSPSG build status (e.g., alpha1, beta3)
52 */
53#ifdef DEBUG
54#   ifndef BUILD_STATUS
55#       define BUILD_STATUS_STR (debug build)
56#   else
57#       define BUILD_STATUS_STR (debug BUILD_STATUS)
58#   endif
59#else
60#   if !defined(TSPSG_RELEASE_BUILD)
61#       define BUILD_STATUS_STR (nightly build)
62#   elif !defined(BUILD_STATUS)
63#       define BUILD_STATUS_STR (build BUILD_NUMBER)
64#   else
65#       define BUILD_STATUS_STR (BUILD_STATUS)
66#   endif // TSPSG_RELEASE_BUILD
67#endif // DEBUG
68
69//! \internal \brief A helper for QUOTE(x).
70#define QUOTE_X(x) #x
71//! Used for "conversion" of \a x to quoted string
72#define QUOTE(x) QUOTE_X(x)
73
74//! Full version of TSPSG in the form: \c major.minor.release.build \c status.
75#define BUILD_VERSION QUOTE(BUILD_VERSION_MAJOR.BUILD_VERSION_MINOR.BUILD_RELEASE BUILD_STATUS_STR)
76
77/*!
78 * \def REVISION_STR
79 * \brief Git revision from which build was made
80 */
81#ifdef REVISION
82#   define REVISION_STR QUOTE(REVISION)
83#else
84#   define REVISION_STR "$Format:%H$"
85#endif
86
87#endif // VERSION_H
Note: See TracBrowser for help on using the repository browser.