From 7d2c2c52e2c1f42364cf16ffa5f86b60943e737a Mon Sep 17 00:00:00 2001 From: Riyyi Date: Fri, 22 Jul 2022 22:27:22 +0200 Subject: [PATCH] Util: Add compiler detection using preprocessor directives --- src/util/meta/compiler.h | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 src/util/meta/compiler.h diff --git a/src/util/meta/compiler.h b/src/util/meta/compiler.h new file mode 100644 index 0000000..fd899b1 --- /dev/null +++ b/src/util/meta/compiler.h @@ -0,0 +1,27 @@ +/* + * Copyright (C) 2022 Riyyi + * + * SPDX-License-Identifier: MIT + */ + +#pragma once + +// Compiler +#if defined(__clang__) + #define GCC +#elif defined(__GNUG__) || (defined(__GNUC__) && defined(__cplusplus)) + #define GCC +#elif defined(__INTEL_COMPILER) // Supports some GCC extensions + #define GCC +#elif defined(_MSC_VER) + #define MSVC +#endif + +// Non-standard function macro +#ifdef GCC + #define FUNCTION_MACRO __PRETTY_FUNCTION__ // GCC extension +#elif MSVC + #define FUNCTION_MACRO __FUNCSIG__ +#else + #define FUNCTION_MACRO __func__ // C99 +#endif