diff --git a/source/blender/blenkernel/BKE_blender_version.h b/source/blender/blenkernel/BKE_blender_version.h index 5848c8a3aa5..6cf267cdace 100644 --- a/source/blender/blenkernel/BKE_blender_version.h +++ b/source/blender/blenkernel/BKE_blender_version.h @@ -26,6 +26,8 @@ extern "C" { #define BLENDER_VERSION_PATCH 0 /** Blender release cycle stage: alpha/beta/rc/release. */ #define BLENDER_VERSION_CYCLE alpha +/** Blender release type suffix. LTS or blank. */ +#define BLENDER_VERSION_SUFFIX /* Blender file format version. */ #define BLENDER_FILE_VERSION BLENDER_VERSION @@ -50,6 +52,9 @@ const char *BKE_blender_version_string_compact(void); /** Returns true when version cycle is alpha, otherwise (beta, rc) returns false. */ bool BKE_blender_version_is_alpha(void); +/** Returns true when version suffix is LTS, otherwise returns false. */ +bool BKE_blender_version_is_lts(void); + /** * Fill in given string buffer with user-readable formatted file version and subversion (if * provided). diff --git a/source/blender/blenkernel/intern/blender.cc b/source/blender/blenkernel/intern/blender.cc index 50970e07d67..0f99da4a19e 100644 --- a/source/blender/blenkernel/intern/blender.cc +++ b/source/blender/blenkernel/intern/blender.cc @@ -97,34 +97,48 @@ static char blender_version_string_compact[48] = ""; static void blender_version_init() { const char *version_cycle = ""; + const char *version_cycle_compact = ""; if (STREQ(STRINGIFY(BLENDER_VERSION_CYCLE), "alpha")) { version_cycle = " Alpha"; + version_cycle_compact = " a"; } else if (STREQ(STRINGIFY(BLENDER_VERSION_CYCLE), "beta")) { version_cycle = " Beta"; + version_cycle_compact = " b"; } else if (STREQ(STRINGIFY(BLENDER_VERSION_CYCLE), "rc")) { version_cycle = " Release Candidate"; + version_cycle_compact = " RC"; } else if (STREQ(STRINGIFY(BLENDER_VERSION_CYCLE), "release")) { version_cycle = ""; + version_cycle_compact = ""; } else { BLI_assert_msg(0, "Invalid Blender version cycle"); } + const char *version_patch = ""; + if (!STREQ(STRINGIFY(BLENDER_VERSION_PATCH), "0")) { + version_patch = "." STRINGIFY(BLENDER_VERSION_PATCH); + } + + const char *version_suffix = BKE_blender_version_is_lts() ? " LTS" : ""; + SNPRINTF(blender_version_string, - "%d.%01d.%d%s", + "%d.%01d%s%s%s", BLENDER_VERSION / 100, BLENDER_VERSION % 100, - BLENDER_VERSION_PATCH, + version_patch, + version_suffix, version_cycle); SNPRINTF(blender_version_string_compact, - "%d.%01d%s", + "%d.%01d%s%s", BLENDER_VERSION / 100, BLENDER_VERSION % 100, - version_cycle); + version_patch, + version_cycle_compact); } const char *BKE_blender_version_string() @@ -163,6 +177,11 @@ bool BKE_blender_version_is_alpha() return is_alpha; } +bool BKE_blender_version_is_lts() +{ + return STREQ(STRINGIFY(BLENDER_VERSION_SUFFIX), "LTS"); +} + /** \} */ /* -------------------------------------------------------------------- */ diff --git a/source/blender/editors/space_info/info_stats.cc b/source/blender/editors/space_info/info_stats.cc index de3592cae47..a12851aade6 100644 --- a/source/blender/editors/space_info/info_stats.cc +++ b/source/blender/editors/space_info/info_stats.cc @@ -716,7 +716,8 @@ const char *ED_info_statusbar_string_ex(Main *bmain, if (info[0]) { ofs += BLI_snprintf_rlen(info + ofs, len - ofs, " | "); } - ofs += BLI_snprintf_rlen(info + ofs, len - ofs, IFACE_("%s"), BKE_blender_version_string()); + ofs += BLI_snprintf_rlen( + info + ofs, len - ofs, IFACE_("%s"), BKE_blender_version_string_compact()); } return info; diff --git a/source/blender/windowmanager/intern/wm_window.cc b/source/blender/windowmanager/intern/wm_window.cc index 3dafce6b4a6..11735749d3c 100644 --- a/source/blender/windowmanager/intern/wm_window.cc +++ b/source/blender/windowmanager/intern/wm_window.cc @@ -539,7 +539,7 @@ void WM_window_title(wmWindowManager *wm, wmWindow *win, const char *title) } str += " - Blender "; - str += BKE_blender_version_string_compact(); + str += BKE_blender_version_string(); GHOST_SetTitle(handle, str.c_str());