OpenMS
VersionInfo.h
Go to the documentation of this file.
1 // --------------------------------------------------------------------------
2 // OpenMS -- Open-Source Mass Spectrometry
3 // --------------------------------------------------------------------------
4 // Copyright The OpenMS Team -- Eberhard Karls University Tuebingen,
5 // ETH Zurich, and Freie Universitaet Berlin 2002-2023.
6 //
7 // This software is released under a three-clause BSD license:
8 // * Redistributions of source code must retain the above copyright
9 // notice, this list of conditions and the following disclaimer.
10 // * Redistributions in binary form must reproduce the above copyright
11 // notice, this list of conditions and the following disclaimer in the
12 // documentation and/or other materials provided with the distribution.
13 // * Neither the name of any author or any participating institution
14 // may be used to endorse or promote products derived from this software
15 // without specific prior written permission.
16 // For a full list of authors, refer to the file AUTHORS.
17 // --------------------------------------------------------------------------
18 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21 // ARE DISCLAIMED. IN NO EVENT SHALL ANY OF THE AUTHORS OR THE CONTRIBUTING
22 // INSTITUTIONS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
23 // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
25 // OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
26 // WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
27 // OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
28 // ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 //
30 // --------------------------------------------------------------------------
31 // $Maintainer: Chris Bielow $
32 // $Authors: Clemens Groepl, Chris Bielow $
33 // --------------------------------------------------------------------------
34 
35 #pragma once
36 
37 #include <OpenMS/CONCEPT/Types.h>
39 
40 namespace OpenMS
41 {
42  class String;
43 
62  class OPENMS_DLLAPI VersionInfo
63  {
64 public:
65 
66  struct OPENMS_DLLAPI VersionDetails
67  {
68  Int version_major = 0;
69  Int version_minor = 0;
70  Int version_patch = 0;
72 
73  VersionDetails() = default;
74 
76  VersionDetails(const VersionDetails & other) = default;
77 
79  VersionDetails& operator=(const VersionDetails& other) = default;
80 
86  static VersionDetails create(const String & version);
87 
88  bool operator<(const VersionDetails & rhs) const;
89  bool operator==(const VersionDetails & rhs) const;
90  bool operator!=(const VersionDetails & rhs) const;
91  bool operator>(const VersionDetails & rhs) const;
92 
93  static const VersionDetails EMPTY; // 0.0.0 version for comparison
94  };
95 
97  static String getTime();
98 
100  static String getVersion();
101 
104 
116  static String getRevision();
117 
129  static String getBranch();
130 
131  };
132 
133 }
134 
A more convenient string class.
Definition: String.h:60
Version information class.
Definition: VersionInfo.h:63
static VersionDetails getVersionStruct()
Return the version number of OpenMS.
static String getTime()
Return the build time of OpenMS.
static String getBranch()
Return the branch name from revision control system, e.g. git.
static String getRevision()
Return the revision number from revision control system, e.g. git.
static String getVersion()
Return the version number of OpenMS.
int Int
Signed integer type.
Definition: Types.h:102
Main OpenMS namespace.
Definition: FeatureDeconvolution.h:48
Definition: VersionInfo.h:67
bool operator!=(const VersionDetails &rhs) const
static VersionDetails create(const String &version)
parse String and return as proper struct
bool operator==(const VersionDetails &rhs) const
VersionDetails & operator=(const VersionDetails &other)=default
Copy assignment.
String pre_release_identifier
Definition: VersionInfo.h:71
bool operator<(const VersionDetails &rhs) const
static const VersionDetails EMPTY
Definition: VersionInfo.h:93
VersionDetails(const VersionDetails &other)=default
Copy constructor.
bool operator>(const VersionDetails &rhs) const