diff --git a/src/utils/BuildInfo.cpp b/src/utils/BuildInfo.cpp new file mode 100644 index 0000000000000000000000000000000000000000..377e4af868fe9f4507e10c48de8fbf6272932433 --- /dev/null +++ b/src/utils/BuildInfo.cpp @@ -0,0 +1,17 @@ +#include <BuildInfo.hpp> +#include <pastis_build_info.hpp> + +std::string BuildInfo::type() +{ + return PASTIS_BUILD_TYPE; +} + +std::string BuildInfo::compiler() +{ + return PASTIS_BUILD_COMPILER; +} + +std::string BuildInfo::kokkosDevices() +{ + return PASTIS_BUILD_KOKKOS_DEVICES; +} diff --git a/src/utils/BuildInfo.hpp b/src/utils/BuildInfo.hpp new file mode 100644 index 0000000000000000000000000000000000000000..4fce84540f71f4d7556b6552146f0e6eaaecdf2d --- /dev/null +++ b/src/utils/BuildInfo.hpp @@ -0,0 +1,13 @@ +#ifndef BUILD_INFO_HPP +#define BUILD_INFO_HPP + +#include <string> + +struct BuildInfo +{ + static std::string type(); + static std::string compiler(); + static std::string kokkosDevices(); +}; + +#endif // BUILD_INFO_HPP diff --git a/src/utils/CMakeLists.txt b/src/utils/CMakeLists.txt index 3599d7ae878000f1c7f5251a050f8ca54bd986d7..1da880f33b95ff9a0696a7ef0ecab0f96860604a 100644 --- a/src/utils/CMakeLists.txt +++ b/src/utils/CMakeLists.txt @@ -5,6 +5,7 @@ include_directories(${CMAKE_CURRENT_BINARY_DIR}) add_library( PastisUtils + BuildInfo.cpp BacktraceManager.cpp ConsoleManager.cpp FPEManager.cpp @@ -99,3 +100,8 @@ endif() configure_file("${CMAKE_CURRENT_SOURCE_DIR}/pastis_config.hpp.in" "${CMAKE_CURRENT_BINARY_DIR}/pastis_config.hpp" @ONLY) + +# Generates pastis_build_info.hpp +configure_file("${CMAKE_CURRENT_SOURCE_DIR}/pastis_build_info.hpp.in" + "${CMAKE_CURRENT_BINARY_DIR}/pastis_build_info.hpp" + @ONLY) diff --git a/src/utils/PastisUtils.cpp b/src/utils/PastisUtils.cpp index 4149fabe36f0d0ee86c18600e866d30529ad6fbd..4fea1e5d8e2ff8adf6d144123558601d4e67b29c 100644 --- a/src/utils/PastisUtils.cpp +++ b/src/utils/PastisUtils.cpp @@ -2,6 +2,8 @@ #include <Kokkos_Core.hpp> #include <RevisionInfo.hpp> +#include <BuildInfo.hpp> + #include <rang.hpp> #include <FPEManager.hpp> @@ -24,8 +26,7 @@ std::string initialize(int& argc, char* argv[]) << rang::fg::reset <<" -------------------------" << '\n'; - std::cout << "tag: " << rang::fg::reset - << rang::style::bold << RevisionInfo::gitTag() << rang::style::reset << '\n'; + std::cout << "tag: " << rang::style::bold << RevisionInfo::gitTag() << rang::style::reset << '\n'; std::cout << "HEAD: " << rang::style::bold << RevisionInfo::gitHead() << rang::style::reset << '\n'; std::cout << "hash: " << rang::style::bold << RevisionInfo::gitHash() << rang::style::reset << " ("; @@ -35,6 +36,15 @@ std::string initialize(int& argc, char* argv[]) std::cout << rang::fgB::red << "dirty" << rang::fg::reset; } std::cout << ")\n"; + std::cout << "-------------------- " + << rang::fg::green + << "build info" + << rang::fg::reset + <<" -----------------------" + << '\n'; + std::cout << "type: " << rang::style::bold << BuildInfo::type() << rang::style::reset << '\n'; + std::cout << "compiler: " << rang::style::bold << BuildInfo::compiler() << rang::style::reset << '\n'; + std::cout << "devices: " << rang::style::bold << BuildInfo::kokkosDevices() << rang::style::reset << '\n'; std::cout << "-------------------------------------------------------\n"; { CLI::App app{"Pastis help"}; diff --git a/src/utils/pastis_build_info.hpp.in b/src/utils/pastis_build_info.hpp.in new file mode 100644 index 0000000000000000000000000000000000000000..cd8756fc6bebedb8277b4d05bbbae280343bc686 --- /dev/null +++ b/src/utils/pastis_build_info.hpp.in @@ -0,0 +1,8 @@ +#ifndef PASTIS_BUILD_INFO_HPP +#define PASTIS_BUILD_INFO_HPP + +#define PASTIS_BUILD_TYPE "@CMAKE_BUILD_TYPE@" +#define PASTIS_BUILD_COMPILER "@CMAKE_CXX_COMPILER@" +#define PASTIS_BUILD_KOKKOS_DEVICES "@KOKKOS_GMAKE_DEVICES@" + +#endif // PASTIS_BUILD_INFO_HPP diff --git a/src/utils/pastis_config.hpp.in b/src/utils/pastis_config.hpp.in index aa8d0505a453931c6dd777a64b10f242ca358eb7..b27b12f70b2a5c397bb029d6f793dd8389ac78ad 100644 --- a/src/utils/pastis_config.hpp.in +++ b/src/utils/pastis_config.hpp.in @@ -6,4 +6,6 @@ #cmakedefine SYSTEM_IS_DARWIN #cmakedefine SYSTEM_IS_WINDOWS +#define PASTIS_BUILD_TYPE "@CMAKE_BUILD_TYPE@" + #endif // PASTIS_CONFIG_HPP