CBuild
C++ build system with scripts written in c++
Loading...
Searching...
No Matches
print.cpp
Go to the documentation of this file.
1
21// C++ libraries
22#include "stdarg.h"
23#include "stdio.h"
24// Project heades
26namespace CBuild {
27bool verbose = false;
28bool none = false;
29bool toogle = true;
30void print_internal(std::string msg, CBuild::color fg) {
31 // Create buffer
32 std::string buff;
33 // Load ANSI start code in buffer
34 buff = "\u001b[";
35 // Load color
36 int f = fg;
37 // Push collor to buffer
38 buff += std::to_string(f);
39 // Push ANSI end code to buffer
40 buff += "m";
41 // Push message to buffer
42 buff += msg;
43 // Push ANSI reset code to buffer
44 buff += "\u001b[0m";
45 // Print buffer with \n
46 puts(buff.c_str());
47 fflush(stdout);
48}
49void printf_internal(CBuild::color fg, std::string msg, va_list va) {
50 // Create buffer
51 std::string buff;
52 // Load ANSI start code in buffer
53 buff = "\u001b[";
54 // Load color
55 int f = fg;
56 // Push collor to buffer
57 buff += std::to_string(f);
58 // Push ANSI end code to buffer
59 buff += "m";
60 // Push message to buffer
61 buff += msg;
62 // Push ANSI reset code to buffer
63 buff += "\u001b[0m";
64 // Print buffer with \n
65 vprintf(buff.c_str(), va);
66 fflush(stdout);
67}
68} // namespace CBuild
69/* print.hpp */
70void CBuild::print(std::string msg, color fg) {
71 // If print enabled - do it
74}
75void CBuild::print_full(std::string msg, color fg) {
76 // If verbose print enabled - do it
79}
80void CBuild::printf(CBuild::color fg, const char* fmt, ...) {
81 // If print enabled - do it
83 va_list va;
84 va_start(va, fmt);
85 CBuild::printf_internal(fg, fmt, va);
86 va_end(va);
87 }
88}
89void CBuild::printf_full(CBuild::color fg, const char* fmt, ...) {
90 // If verbose print enabled - do it
92 va_list va;
93 va_start(va, fmt);
94 CBuild::printf_internal(fg, fmt, va);
95 va_end(va);
96 }
97}
99 CBuild::verbose = true;
100}
102 CBuild::none = true;
103}
Filebuffer for CBuild ecosystem.
Definition Build.hpp:34
void void printf_full(color fg, const char *fmt,...) __attribute__((format(printf
Some poor printf implementation for verbouse-only prints.
Definition print.cpp:89
void print_internal(std::string msg, CBuild::color fg)
Definition print.cpp:30
void void void print_verbose()
Enable verbose flag.
Definition print.cpp:98
void print(std::string msg, color fg=CBuild::WHITE)
Print colored text to STDOUT.
Definition print.cpp:70
color
Text color.
Definition print.hpp:32
bool toogle
Definition print.cpp:29
void printf_internal(CBuild::color fg, std::string msg, va_list va)
Definition print.cpp:49
void printf(color fg, const char *fmt,...) __attribute__((format(printf
Some poor printf implementation.
Definition print.cpp:80
void print_toggle()
Toogle print betwen none and currently selected level.
Definition print.cpp:104
void print_none()
Fully disable all print though CBuild::print.
Definition print.cpp:101
bool none
Definition print.cpp:28
void print_full(std::string msg, color fg=CBuild::WHITE)
Print colored text to STDOUT if verbose flag is set.
Definition print.cpp:75
bool verbose
Definition print.cpp:27
Custom print that support color codes.