printf_sources = [ 'asnprintf.c', 'printf-args.c', 'printf-parse.c', 'vasnprintf.c', 'printf.c', 'printf-extension.c', ] printf_args = gst_c_args + ['-DSTATIC=G_GNUC_INTERNAL'] # Don't have a need for that and it's not portable so just ignore for now printf_args += ['-UHAVE_LONG_DOUBLE'] # Just use internal emulation for printing long longs for now printf_args += ['-UHAVE_LONG_LONG_FORMAT'] # Don't need any of this widechar stuff, so just disable it for now printf_args += ['-UHAVE_WCHAR_T', '-UHAVE_WCSLEN', '-UHAVE_WINT_T'] if cc.has_argument('-Wno-format-nonliteral') printf_args += ['-Wno-format-nonliteral'] endif # Check if 'long long' works and what format can be used to print it # jm_AC_TYPE_LONG_LONG if cc.compiles('''long long ll = 1LL; int i = 63; int some_func (void) { long long llmax = (long long) -1; return ll << i | ll >> i | llmax / ll | llmax % ll; }''', name : 'long long') printf_args += ['-DHAVE_LONG_LONG'] have_long_long = true else have_long_long = false endif # The following uintmax_t/intmax_t checks are also in glib found_uintmax_t = false # Define HAVE_INTTYPES_H_WITH_UINTMAX if exists, # doesn't clash with , and declares uintmax_t. # jm_AC_HEADER_INTTYPES_H if cc.compiles('''#include #include uintmax_t i = (uintmax_t) -1; ''', name : 'uintmax_t in inttypes.h') printf_args += ['-DHAVE_INTTYPES_H_WITH_UINTMAX'] found_uintmax_t = true endif # Define HAVE_STDINT_H_WITH_UINTMAX if exists, # doesn't clash with , and declares uintmax_t. # jm_AC_HEADER_STDINT_H if cc.compiles('''#include #include uintmax_t i = (uintmax_t) -1; ''', name : 'uintmax_t in stdint.h') printf_args += ['-DHAVE_STDINT_H_WITH_UINTMAX'] found_uintmax_t = true endif # Define intmax_t to 'long' or 'long long' # if it is not already defined in or . # For simplicity, we assume that a header file defines 'intmax_t' # if and only if it defines 'uintmax_t'. printf_args += ['-DHAVE_INTMAX_T'] if not found_uintmax_t if have_long_long printf_args += ['-Dintmax_t=long long'] else printf_args += ['-Dintmax_t=long'] endif endif printf_lib = static_library('gstprintf', printf_sources, include_directories : [configinc], c_args : printf_args, install : false, pic: true, dependencies : [glib_dep])