Back to home page

EIC code displayed by LXR

 
 

    


Warning, /acts/Core/ActsVersion.hpp.in is written in an unsupported language. File is not indexed.

0001 // This file is part of the ACTS project.
0002 //
0003 // Copyright (C) 2016 CERN for the benefit of the ACTS project
0004 //
0005 // This Source Code Form is subject to the terms of the Mozilla Public
0006 // License, v. 2.0. If a copy of the MPL was not distributed with this
0007 // file, You can obtain one at https://mozilla.org/MPL/2.0/.
0008 
0009 #pragma once
0010 
0011 //  Caution: this is the only Acts header that is guaranteed
0012 //  to change with every Acts release. Including this header
0013 //  will cause a recompile every time a new Acts version is
0014 //  used.
0015 
0016 #include <iosfwd>
0017 #include <optional>
0018 #include <string_view>
0019 
0020 namespace Acts {
0021 
0022 // clang-format does not like the CMake @...@ replacement variables
0023 // clang-format off
0024 constexpr unsigned int VersionMajor = @PROJECT_VERSION_MAJOR@u;
0025 constexpr unsigned int VersionMinor = @PROJECT_VERSION_MINOR@u;
0026 constexpr unsigned int VersionPatch = @PROJECT_VERSION_PATCH@u;
0027 // clang-format on
0028 constexpr unsigned int Version =
0029     10000u * VersionMajor + 100u * VersionMinor + VersionPatch;
0030 constexpr std::optional<std::string_view> CommitHash = @_acts_commit_hash@;
0031 constexpr std::optional<std::string_view> CommitHashShort = @_acts_commit_hash_short@;
0032 
0033 struct VersionInfo {
0034   unsigned int versionMajor;
0035   unsigned int versionMinor;
0036   unsigned int versionPatch;
0037   std::optional<std::string_view> commitHash;
0038 
0039   VersionInfo() = delete;
0040 
0041   static VersionInfo fromHeader() {
0042     return VersionInfo(VersionMajor, VersionMinor, VersionPatch, CommitHash);
0043   }
0044 
0045   static VersionInfo fromLibrary();
0046 
0047   VersionInfo withoutCommit() const;
0048 
0049   bool operator==(const VersionInfo& other) const;
0050 
0051   friend std::ostream& operator<<(std::ostream& os, const VersionInfo& vi);
0052 
0053  private:
0054   VersionInfo(unsigned int majorIn, unsigned int minorIn, unsigned int patchIn,
0055               std::optional<std::string_view> commitHashIn);
0056 };
0057 
0058 }  // namespace Acts