mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-06 05:40:54 -06:00
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
This commit is contained in:
committed by
Brad King
parent
9e89400d13
commit
b2e3e3e30e
@@ -0,0 +1,6 @@
|
||||
add_library(MathLogger INTERFACE)
|
||||
|
||||
target_sources(MathLogger
|
||||
INTERFACE
|
||||
FILE_SET HEADERS
|
||||
)
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
#pragma once
|
||||
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
|
||||
namespace mathlogger {
|
||||
inline void WriteLog(std::string const& msg)
|
||||
{
|
||||
std::cout << msg;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user