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