Skip to content

Commit 2ff27b9

Browse files
nmm0cz4rs
authored andcommitted
#1692: cmake: make version consistent and only modified in one place (the VERSION file). This also allows us to print out the version in the banner, which is useful if not git info is available
1 parent ae489a2 commit 2ff27b9

File tree

5 files changed

+40
-28
lines changed

5 files changed

+40
-28
lines changed

CMakeLists.txt

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
cmake_minimum_required(VERSION 3.17 FATAL_ERROR)
2-
project(vt VERSION 1.1.0)
2+
3+
file(READ "VERSION" _vt_version_str)
4+
string(STRIP "${_vt_version_str}" _vt_version_str)
5+
project(vt VERSION ${_vt_version_str})
36

47
# To generate output file with compilation errors and warnings
58
# CMake generator needs to be known

cmake/load_doxygen.cmake

+3-3
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ if (${vt_doxygen_enabled})
1010
set(doxygen_out ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile)
1111

1212
set(DOXYGEN_PROJECT_NAME "vt")
13-
set(VERSION_MAJOR "1")
14-
set(VERSION_MINOR "0")
15-
set(VERSION_PATCH "0")
13+
set(VERSION_MAJOR "${PROJECT_VERSION_MAJOR}")
14+
set(VERSION_MINOR "${PROJECT_VERSION_MINOR}")
15+
set(VERSION_PATCH "${PROJECT_VERSION_PATCH}")
1616
set(DOXYGEN_INPUT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src/")
1717
set(DOXYGEN_CHECKPOINT_SHARED_DOCS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/lib/checkpoint/docs/shared")
1818
set(DOXYGEN_CHECKPOINT_EXAMPLE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/lib/checkpoint/examples")

src/vt/configs/generated/vt_git_revision.h

+3
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@
4646

4747
#include <string>
4848

49+
extern int const vt_version_major;
50+
extern int const vt_version_minor;
51+
extern int const vt_version_patch;
4952
extern std::string const vt_git_sha1;
5053
extern std::string const vt_git_exact_tag;
5154
extern std::string const vt_git_refspec;

src/vt/runtime/runtime_banner.cc

+24-24
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ void Runtime::printStartupBanner() {
164164
#endif
165165

166166
std::string dirty = "";
167-
if (strncmp(vt_git_clean_status.c_str(), "DIRTY", 5) == 0) {
167+
if (vt_git_clean_status == "DIRTY") {
168168
dirty = red + std::string("*dirty*") + reset;
169169
}
170170

@@ -174,29 +174,29 @@ void Runtime::printStartupBanner() {
174174
auto const version = std::to_string(std::get<0>(version_tuple));
175175
auto const subversion = std::to_string(std::get<1>(version_tuple));
176176

177-
auto f1 = fmt::format("{} {}{}\n", reg(init), reg(mode), emph(mode_type + thd));
178-
auto f2a = fmt::format("{}Program: {} ({})\n", green,
179-
emph(getAppConfig()->prog_name), emph(getAppConfig()->argv_prog_name));
180-
auto f2b = fmt::format("{}Running on: {}\n", green, emph(all_node));
181-
auto f3 = fmt::format("{}Machine Hostname: {}\n", green, emph(hostname));
182-
auto f3a = fmt::format("{}MPI Version: {}.{}\n", green, emph(version), emph(subversion));
183-
auto f3b = fmt::format("{}MPI Max tag: {}\n", green, emph(max_tag_str));
184-
185-
auto f4 = fmt::format("{}Build SHA: {}\n", green, emph(vt_git_sha1));
186-
auto f5 = fmt::format("{}Build Ref: {}\n", green, emph(vt_git_refspec));
187-
auto f6 = fmt::format("{}Description: {} {}\n", green, emph(vt_git_description), dirty);
188-
auto f7 = fmt::format("{}Compile-time Features Enabled:{}\n", green, reset);
189-
190-
fmt::print("{}{}{}", vt_pre, f1, reset);
191-
fmt::print("{}{}{}", vt_pre, f2a, reset);
192-
fmt::print("{}{}{}", vt_pre, f2b, reset);
193-
fmt::print("{}{}{}", vt_pre, f3, reset);
194-
fmt::print("{}{}{}", vt_pre, f3a, reset);
195-
fmt::print("{}{}{}", vt_pre, f3b, reset);
196-
fmt::print("{}{}{}", vt_pre, f4, reset);
197-
fmt::print("{}{}{}", vt_pre, f5, reset);
198-
fmt::print("{}{}{}", vt_pre, f6, reset);
199-
fmt::print("{}{}{}", vt_pre, f7, reset);
177+
auto vt_version_string = fmt::format("{}.{}.{}", vt_version_major, vt_version_minor, vt_version_patch);
178+
std::array< std::string, 11 > info_lines = {
179+
fmt::format("{}Version: {}\n", green, emph(vt_version_string)),
180+
181+
fmt::format("{} {}{}\n", reg(init), reg(mode), emph(mode_type + thd)),
182+
fmt::format("{}Program: {} ({})\n", green,
183+
emph(getAppConfig()->prog_name), emph(getAppConfig()->argv_prog_name)),
184+
fmt::format("{}Running on: {}\n", green, emph(all_node)),
185+
fmt::format("{}Machine Hostname: {}\n", green, emph(hostname)),
186+
fmt::format("{}MPI Version: {}.{}\n", green, emph(version), emph(subversion)),
187+
fmt::format("{}MPI Max tag: {}\n", green, emph(max_tag_str)),
188+
189+
fmt::format("{}Build SHA: {}\n", green, emph(vt_git_sha1)),
190+
fmt::format("{}Build Ref: {}\n", green, emph(vt_git_refspec)),
191+
fmt::format("{}Description: {} {}\n", green, emph(vt_git_description), dirty),
192+
fmt::format("{}Compile-time Features Enabled:{}\n", green, reset)
193+
};
194+
195+
for (auto &&line: info_lines)
196+
{
197+
fmt::print("{}{}{}", vt_pre, line, reset);
198+
}
199+
200200
for (size_t i = 0; i < features.size(); i++) {
201201
fmt::print("{}\t{}\n", vt_pre, emph(features.at(i)));
202202
}

vt_git_revision.cc.in

+6
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,18 @@
4545

4646
#include <string>
4747

48+
#define VT_VERSION_MAJOR @PROJECT_VERSION_MAJOR@
49+
#define VT_VERSION_MINOR @PROJECT_VERSION_MINOR@
50+
#define VT_VERSION_PATCH @PROJECT_VERSION_PATCH@
4851
#define VT_GIT_SHA1 "@GIT_SHA1@"
4952
#define VT_GIT_EXACT_TAG "@GIT_EXACT_TAG@"
5053
#define VT_GIT_REFSPEC "@GIT_REFSPEC@"
5154
#define VT_GIT_DESCRIPTION "@GIT_DESCRIPTION@"
5255
#define VT_GIT_CLEAN_STATUS "@GIT_CLEAN_STATUS@"
5356

57+
int const vt_version_major = VT_VERSION_MAJOR;
58+
int const vt_version_minor = VT_VERSION_MINOR;
59+
int const vt_version_patch = VT_VERSION_PATCH;
5460
std::string const vt_git_sha1 = VT_GIT_SHA1;
5561
std::string const vt_git_exact_tag = VT_GIT_EXACT_TAG;
5662
std::string const vt_git_refspec = VT_GIT_REFSPEC;

0 commit comments

Comments
 (0)