cdata.set('HAVE_' + os_name.to_upper(), 1)
-foreach attr : ['malloc', 'nonnull', 'warn_unused_result']
- cc.has_function_attribute(attr)
+foreach attr : ['malloc', 'nonnull', 'warn_unused_result', 'packed', 'format']
+ if cc.has_function_attribute(attr)
+ cdata.set('HAVE_ATTR_' + attr.to_upper(), 1,
+ description: '__attribute__((__@0@__))'.format(attr))
+ endif
endforeach
+if cc.compiles('''
+ _Static_assert(1, "ok");
+ int main(void) { return 0; }
+''')
+ cdata.set('HAVE_STATIC_ASSERT', 1,
+ description: 'C11 _Static_assert()')
+endif
+
check_headers = [
'alloca.h',
'arpa/inet.h',
elif os_name == 'sunos'
subdir('solaris')
elif os_name == 'windows'
- subdir('mingw')
+ subdir('windows')
endif
foreach h : check_headers
endif
endforeach
+src_getopt = []
if not cdata.has('HAVE_GETOPT_H') or not cc.has_function('getopt_long', prefix: have_prefix, args: cc_defs)
- src_lib_common += ['getopt.c', 'getopt1.c']
+ src_getopt = ['getopt.c', 'getopt1.c']
+ src_lib_common += src_getopt
endif
if not opt_miniupnpc.disabled()
endif
endif
-if opt_curses.auto() and os_name == 'windows'
- message('curses does not link under MinGW')
-else
+if not opt_curses.disabled()
# The meta-dependency covers more alternatives, but is only available in 0.54+
curses_name = meson_version.version_compare('>=0.54') ? 'curses' : 'ncurses'
dep_curses = dependency(curses_name, required: opt_curses, static: static)
# Some distributions do not supply pkg-config files for readline
if opt_readline.auto() and os_name == 'windows'
- message('readline does not link under MinGW')
+ message('readline not available on Windows')
else
dep_readline = dependency('readline', required: opt_readline, static: static)
if not dep_readline.found()
exe_sptps_test = executable(
'sptps_test',
- sources: 'sptps_test.c',
+ sources: [src_getopt, 'sptps_test.c'],
dependencies: deps_lib_common,
link_with: lib_common,
implicit_include_directories: false,
exe_sptps_keypair = executable(
'sptps_keypair',
- sources: 'sptps_keypair.c',
+ sources: [src_getopt, 'sptps_keypair.c'],
dependencies: deps_lib_common,
link_with: lib_common,
implicit_include_directories: false,