diff options
| author | Vito Gamberini <vito.gamberini@kitware.com> | 2025-08-20 16:42:42 (GMT) |
|---|---|---|
| committer | Brad King <brad.king@kitware.com> | 2025-09-17 15:57:23 (GMT) |
| commit | b2e3e3e30e5601192577d15e043b33db96fe1661 (patch) | |
| tree | 914f9ccecb2ca54a86791cb41300a3cffaca54fb /Help/guide/tutorial/Step7/MathFunctions/MathLogger | |
| parent | 9e89400d13199b17abc40f8837a846d563465189 (diff) | |
| download | CMake-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')
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; +} +} |
