/***********************************************************************************************************************************
Build Flags Generated by Configure
***********************************************************************************************************************************/
#include "version.h"

// Are test code and asserts disabled? NDEBUG can be confusing to work with because, when debugging, #ifndef NDEBUG must be used for
// #defines, so also #define DEBUG in this case to make #ifdefs simpler.
#undef NDEBUG

#ifndef NDEBUG
    #define DEBUG
#endif

// Does the compiler provide _Static_assert()?
#undef HAVE_STATIC_ASSERT

// Does the compiler provide __builtin_types_compatible_p()?
#undef HAVE_BUILTIN_TYPES_COMPATIBLE_P

// Is libbacktrace present?
#undef HAVE_LIBBACKTRACE

// Is liblz4 present?
#undef HAVE_LIBLZ4

// Is libzstd present?
#undef HAVE_LIBZST

// Is libssh2 present?
#undef HAVE_LIBSSH2

// Configuration path
#undef CFGOPTDEF_CONFIG_PATH

// Require zlib const input buffer
#define ZLIB_CONST

// Indicate that a function does not return
#define FN_NO_RETURN                                                __attribute__((__noreturn__))

// Indicate that a function should always be inlined
#define FN_INLINE_ALWAYS                                            __attribute__((always_inline)) static inline

// Indicate that a function is formatted like printf (and provide format and args position)
#define FN_PRINTF(fmt, args)                                        __attribute__((format(printf, fmt, args)))

// Extern function/variable required by other compilation units. Changing these to static is a meson-only feature.
#define FN_EXTERN                                                   extern
#define VR_EXTERN_DECLARE                                           extern
#define VR_EXTERN_DEFINE
