Reuse macro to format version string
Change-Id: Ib21f2d8f06b6594dae410681d16a738b8b75c89a
diff --git a/include/ceres/version.h b/include/ceres/version.h
index 2d5d000..fe6c288 100644
--- a/include/ceres/version.h
+++ b/include/ceres/version.h
@@ -40,10 +40,16 @@
#define CERES_TO_STRING_HELPER(x) #x
#define CERES_TO_STRING(x) CERES_TO_STRING_HELPER(x)
+// clang-format off
+#define CERES_SEMVER_VERSION(MAJOR, MINOR, PATCH) \
+ CERES_TO_STRING(MAJOR) "." \
+ CERES_TO_STRING(MINOR) "." \
+ CERES_TO_STRING(PATCH)
+// clang-format on
+
// The Ceres version as a string; for example "1.9.0".
-#define CERES_VERSION_STRING \
- CERES_TO_STRING(CERES_VERSION_MAJOR) \
- "." CERES_TO_STRING(CERES_VERSION_MINOR) "." CERES_TO_STRING( \
- CERES_VERSION_REVISION)
+#define CERES_VERSION_STRING \
+ CERES_SEMVER_VERSION( \
+ CERES_VERSION_MAJOR, CERES_VERSION_MINOR, CERES_VERSION_REVISION)
#endif // CERES_PUBLIC_VERSION_H_
diff --git a/internal/ceres/solver_utils.cc b/internal/ceres/solver_utils.cc
index 3356f3b..f5fbf05 100644
--- a/internal/ceres/solver_utils.cc
+++ b/internal/ceres/solver_utils.cc
@@ -40,17 +40,12 @@
namespace ceres::internal {
-// clang-format off
-#define CERES_EIGEN_VERSION \
- CERES_TO_STRING(EIGEN_WORLD_VERSION) "." \
- CERES_TO_STRING(EIGEN_MAJOR_VERSION) "." \
- CERES_TO_STRING(EIGEN_MINOR_VERSION)
-// clang-format on
-
constexpr char kVersion[] =
// clang-format off
- CERES_VERSION_STRING
- "-eigen-(" CERES_EIGEN_VERSION ")"
+ CERES_VERSION_STRING "-eigen-("
+ CERES_SEMVER_VERSION(EIGEN_WORLD_VERSION,
+ EIGEN_MAJOR_VERSION,
+ EIGEN_MINOR_VERSION) ")"
#ifdef CERES_NO_LAPACK
"-no_lapack"