Separate user and dev builds

This commit is contained in:
wheremyfoodat 2023-07-02 22:36:45 +03:00
parent cba1b9f39b
commit 0b2ff6c5c8
9 changed files with 50 additions and 18 deletions

View file

@ -30,24 +30,31 @@ using s32 = std::int32_t;
using s64 = std::int64_t;
namespace Helpers {
[[noreturn]] static void panic(const char* fmt, ...) {
std::va_list args;
va_start(args, fmt);
// Unconditional panic, unlike panicDev which does not panic on user builds
template <class... Args>
[[noreturn]] static void panic(const char* fmt, Args&&... args) {
std::cout << termcolor::on_red << "[FATAL] ";
std::vprintf(fmt, args);
std::printf(fmt, args...);
std::cout << termcolor::reset << "\n";
va_end(args);
exit(1);
}
#ifdef PANDA3DS_LIMITED_PANICS
template <class... Args>
static void panicDev(const char* fmt, Args&&... args) {}
#else
template <class... Args>
[[noreturn]] static void panicDev(const char* fmt, Args&&... args) {
panic(fmt, args...);
}
#endif
static void warn(const char* fmt, ...) {
std::va_list args;
va_start(args, fmt);
template <class... Args>
static void warn(const char* fmt, Args&&... args) {
std::cout << termcolor::on_red << "[Warning] ";
std::vprintf(fmt, args);
std::printf(fmt, args...);
std::cout << termcolor::reset << "\n";
va_end(args);
}
static constexpr bool buildingInDebugMode() {
@ -57,6 +64,13 @@ namespace Helpers {
return true;
}
static constexpr bool isUserBuild() {
#ifdef PANDA3DS_USER_BUILD
return true;
#endif
return false;
}
static void debug_printf(const char* fmt, ...) {
if constexpr (buildingInDebugMode()) {
std::va_list args;