GCC Code Coverage Report
Directory: ./ Exec Total Coverage
File: include/crocoddyl/core/utils/version.hpp Lines: 5 5 100.0 %
Date: 2024-02-13 11:12:33 Branches: 7 14 50.0 %

Line Branch Exec Source
1
///////////////////////////////////////////////////////////////////////////////
2
// BSD 3-Clause License
3
//
4
// Copyright (C) 2019, LAAS-CNRS
5
// Copyright note valid unless otherwise stated in individual files.
6
// All rights reserved.
7
///////////////////////////////////////////////////////////////////////////////
8
9
#ifndef CROCODDYL_CORE_UTILS_VERSION_HPP_
10
#define CROCODDYL_CORE_UTILS_VERSION_HPP_
11
12
#include <sstream>
13
#include <string>
14
15
#include "crocoddyl/config.hh"
16
17
namespace crocoddyl {
18
19
///
20
/// \brief Returns the current version of Crocoddyl as a string using
21
///        the following standard:
22
///        CROCODDYL_MINOR_VERSION.CROCODDYL_MINOR_VERSION.CROCODDYL_PATCH_VERSION
23
///
24
10
inline std::string printVersion(const std::string& delimiter = ".") {
25
20
  std::ostringstream oss;
26

10
  oss << CROCODDYL_MAJOR_VERSION << delimiter << CROCODDYL_MINOR_VERSION
27

10
      << delimiter << CROCODDYL_PATCH_VERSION;
28
20
  return oss.str();
29
}
30
31
///
32
/// \brief Checks if the current version of Crocoddyl is at least the version
33
/// provided
34
///        by the input arguments.
35
///
36
/// \param[in] major_version Major version to check.
37
/// \param[in] minor_version Minor version to check.
38
/// \param[in] patch_version Patch version to check.
39
///
40
/// \returns true if the current version of Pinocchio is greater than the
41
/// version provided
42
///        by the input arguments.
43
///
44
inline bool checkVersionAtLeast(int major_version, int minor_version,
45
                                int patch_version) {
46
  return CROCODDYL_MAJOR_VERSION > major_version ||
47
         (CROCODDYL_MAJOR_VERSION >= major_version &&
48
          (CROCODDYL_MINOR_VERSION > minor_version ||
49
           (CROCODDYL_MINOR_VERSION >= minor_version &&
50
            CROCODDYL_PATCH_VERSION >= patch_version)));
51
}
52
}  // namespace crocoddyl
53
54
#endif  // CROCODDYL_CORE_UTILS_VERSION_HPP_