From bf5ca80c4d8c02b7709668e6afb8ae40c44601a5 Mon Sep 17 00:00:00 2001 From: Username404 Date: Sat, 31 Jul 2021 16:47:00 +0200 Subject: [PATCH] Add a Macro to Target.hpp and check for a std::threads implementation in Yerbacon.hpp. --- src/headers/Yerbacon.hpp | 4 ++++ src/headers/transpiler/Target.hpp | 7 ++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/headers/Yerbacon.hpp b/src/headers/Yerbacon.hpp index 8abb671..e58f8d0 100644 --- a/src/headers/Yerbacon.hpp +++ b/src/headers/Yerbacon.hpp @@ -6,6 +6,10 @@ #define YBCON_VERSION "UNKNOWN" #endif +#ifdef __STDC_NO_THREADS__ +#error "A valid std::threads implementation is required" +#endif + #include #include #include diff --git a/src/headers/transpiler/Target.hpp b/src/headers/transpiler/Target.hpp index 49403ee..ef30c8f 100644 --- a/src/headers/transpiler/Target.hpp +++ b/src/headers/transpiler/Target.hpp @@ -36,15 +36,16 @@ shared_ptr Target::forName(string_view name) { } } shared_ptr target; + #define ADDTARGET(X) target = make_shared(X()); break; switch (selected) { #ifdef LUA_HPP - case LUA: target = make_shared(LuaTarget()); break; + case LUA: ADDTARGET(LuaTarget) #endif #ifdef JS_HPP - case JS: target = make_shared(JsTarget()); break; + case JS: ADDTARGET(JsTarget) #endif #ifdef PY_HPP - case PY: target = make_shared(PyTarget()); break; + case PY: ADDTARGET(PyTarget) #endif case NONE: default: {