summaryrefslogtreecommitdiffstats
path: root/Help/guide/tutorial/Step7/MathFunctions/MathLogger
diff options
context:
space:
mode:
authorVito Gamberini <vito.gamberini@kitware.com>2025-08-20 16:42:42 (GMT)
committerBrad King <brad.king@kitware.com>2025-09-17 15:57:23 (GMT)
commitb2e3e3e30e5601192577d15e043b33db96fe1661 (patch)
tree914f9ccecb2ca54a86791cb41300a3cffaca54fb /Help/guide/tutorial/Step7/MathFunctions/MathLogger
parent9e89400d13199b17abc40f8837a846d563465189 (diff)
downloadCMake-b2e3e3e30e5601192577d15e043b33db96fe1661.zip
CMake-b2e3e3e30e5601192577d15e043b33db96fe1661.tar.gz
CMake-b2e3e3e30e5601192577d15e043b33db96fe1661.tar.bz2
Tutorial: Rewrite using conventions enabled by CMake 3.23
This is a full re-write of the CMake Tutorial for CMake 3.23, both the functionality it provides, as well as the modern workflows that developers use when interfacing with CMake. Issue: #22663, #23086, #23799, #26053, #26105, #26153, #26914
Diffstat (limited to 'Help/guide/tutorial/Step7/MathFunctions/MathLogger')
-rw-r--r--Help/guide/tutorial/Step7/MathFunctions/MathLogger/CMakeLists.txt6
-rw-r--r--Help/guide/tutorial/Step7/MathFunctions/MathLogger/MathFormatting.h27
-rw-r--r--Help/guide/tutorial/Step7/MathFunctions/MathLogger/MathLogger.h22
-rw-r--r--Help/guide/tutorial/Step7/MathFunctions/MathLogger/MathOutput.h11
4 files changed, 66 insertions, 0 deletions
diff --git a/Help/guide/tutorial/Step7/MathFunctions/MathLogger/CMakeLists.txt b/Help/guide/tutorial/Step7/MathFunctions/MathLogger/CMakeLists.txt
new file mode 100644
index 0000000..b20151f
--- /dev/null
+++ b/Help/guide/tutorial/Step7/MathFunctions/MathLogger/CMakeLists.txt
@@ -0,0 +1,6 @@
+add_library(MathLogger INTERFACE)
+
+target_sources(MathLogger
+ INTERFACE
+ FILE_SET HEADERS
+)
diff --git a/Help/guide/tutorial/Step7/MathFunctions/MathLogger/MathFormatting.h b/Help/guide/tutorial/Step7/MathFunctions/MathLogger/MathFormatting.h
new file mode 100644
index 0000000..3b6d61c
--- /dev/null
+++ b/Help/guide/tutorial/Step7/MathFunctions/MathLogger/MathFormatting.h
@@ -0,0 +1,27 @@
+#pragma once
+
+#include <string>
+
+namespace mathlogger {
+
+enum LogLevel
+{
+ INFO,
+ WARN,
+ ERROR,
+};
+
+inline std::string FormatLog(LogLevel level, std::string const& message)
+{
+ switch (level) {
+ case INFO:
+ return "INFO: " + message;
+ case WARN:
+ return "WARN: " + message;
+ case ERROR:
+ return "ERROR: " + message;
+ }
+ return "UNKNOWN: " + message;
+}
+
+}
diff --git a/Help/guide/tutorial/Step7/MathFunctions/MathLogger/MathLogger.h b/Help/guide/tutorial/Step7/MathFunctions/MathLogger/MathLogger.h
new file mode 100644
index 0000000..ef7b31a
--- /dev/null
+++ b/Help/guide/tutorial/Step7/MathFunctions/MathLogger/MathLogger.h
@@ -0,0 +1,22 @@
+#pragma once
+
+#include <string>
+
+#include "MathFormatting.h"
+#include "MathOutput.h"
+
+namespace mathlogger {
+
+struct Logger
+{
+ LogLevel level = INFO;
+
+ void SetLevel(LogLevel new_level) { level = new_level; }
+ void Log(std::string const& message)
+ {
+ std::string formatted = FormatLog(level, message);
+ WriteLog(formatted);
+ }
+};
+
+}
diff --git a/Help/guide/tutorial/Step7/MathFunctions/MathLogger/MathOutput.h b/Help/guide/tutorial/Step7/MathFunctions/MathLogger/MathOutput.h
new file mode 100644
index 0000000..63f0aeb
--- /dev/null
+++ b/Help/guide/tutorial/Step7/MathFunctions/MathLogger/MathOutput.h
@@ -0,0 +1,11 @@
+#pragma once
+
+#include <iostream>
+#include <string>
+
+namespace mathlogger {
+inline void WriteLog(std::string const& msg)
+{
+ std::cout << msg;
+}
+}