|
@@ -300,11 +300,6 @@ else
|
|
|
xkbcommon = dependency('xkbcommon', required: get_option('xkbcommon'),
|
|
|
method: 'pkg-config', static: enable_static)
|
|
|
endif
|
|
|
-slirp = not_found
|
|
|
-if config_host.has_key('CONFIG_SLIRP')
|
|
|
- slirp = declare_dependency(compile_args: config_host['SLIRP_CFLAGS'].split(),
|
|
|
- link_args: config_host['SLIRP_LIBS'].split())
|
|
|
-endif
|
|
|
vde = not_found
|
|
|
if config_host.has_key('CONFIG_VDE')
|
|
|
vde = declare_dependency(link_args: config_host['VDE_LIBS'].split())
|
|
@@ -978,7 +973,88 @@ if capstone_opt == 'internal'
|
|
|
capstone = declare_dependency(link_with: libcapstone,
|
|
|
include_directories: 'capstone/include/capstone')
|
|
|
endif
|
|
|
+
|
|
|
+slirp = not_found
|
|
|
+slirp_opt = 'disabled'
|
|
|
+if have_system
|
|
|
+ slirp_opt = get_option('slirp')
|
|
|
+ if slirp_opt in ['enabled', 'auto', 'system']
|
|
|
+ have_internal = fs.exists(meson.current_source_dir() / 'slirp/meson.build')
|
|
|
+ slirp = dependency('slirp', static: enable_static,
|
|
|
+ method: 'pkg-config',
|
|
|
+ required: slirp_opt == 'system' or
|
|
|
+ slirp_opt == 'enabled' and not have_internal)
|
|
|
+ if slirp.found()
|
|
|
+ slirp_opt = 'system'
|
|
|
+ elif have_internal
|
|
|
+ slirp_opt = 'internal'
|
|
|
+ else
|
|
|
+ slirp_opt = 'disabled'
|
|
|
+ endif
|
|
|
+ endif
|
|
|
+ if slirp_opt == 'internal'
|
|
|
+ slirp_deps = []
|
|
|
+ if targetos == 'windows'
|
|
|
+ slirp_deps = cc.find_library('iphlpapi')
|
|
|
+ endif
|
|
|
+ slirp_conf = configuration_data()
|
|
|
+ slirp_conf.set('SLIRP_MAJOR_VERSION', meson.project_version().split('.')[0])
|
|
|
+ slirp_conf.set('SLIRP_MINOR_VERSION', meson.project_version().split('.')[1])
|
|
|
+ slirp_conf.set('SLIRP_MICRO_VERSION', meson.project_version().split('.')[2])
|
|
|
+ slirp_conf.set_quoted('SLIRP_VERSION_STRING', meson.project_version())
|
|
|
+ slirp_cargs = ['-DG_LOG_DOMAIN="Slirp"']
|
|
|
+ slirp_files = [
|
|
|
+ 'slirp/src/arp_table.c',
|
|
|
+ 'slirp/src/bootp.c',
|
|
|
+ 'slirp/src/cksum.c',
|
|
|
+ 'slirp/src/dhcpv6.c',
|
|
|
+ 'slirp/src/dnssearch.c',
|
|
|
+ 'slirp/src/if.c',
|
|
|
+ 'slirp/src/ip6_icmp.c',
|
|
|
+ 'slirp/src/ip6_input.c',
|
|
|
+ 'slirp/src/ip6_output.c',
|
|
|
+ 'slirp/src/ip_icmp.c',
|
|
|
+ 'slirp/src/ip_input.c',
|
|
|
+ 'slirp/src/ip_output.c',
|
|
|
+ 'slirp/src/mbuf.c',
|
|
|
+ 'slirp/src/misc.c',
|
|
|
+ 'slirp/src/ncsi.c',
|
|
|
+ 'slirp/src/ndp_table.c',
|
|
|
+ 'slirp/src/sbuf.c',
|
|
|
+ 'slirp/src/slirp.c',
|
|
|
+ 'slirp/src/socket.c',
|
|
|
+ 'slirp/src/state.c',
|
|
|
+ 'slirp/src/stream.c',
|
|
|
+ 'slirp/src/tcp_input.c',
|
|
|
+ 'slirp/src/tcp_output.c',
|
|
|
+ 'slirp/src/tcp_subr.c',
|
|
|
+ 'slirp/src/tcp_timer.c',
|
|
|
+ 'slirp/src/tftp.c',
|
|
|
+ 'slirp/src/udp.c',
|
|
|
+ 'slirp/src/udp6.c',
|
|
|
+ 'slirp/src/util.c',
|
|
|
+ 'slirp/src/version.c',
|
|
|
+ 'slirp/src/vmstate.c',
|
|
|
+ ]
|
|
|
+
|
|
|
+ configure_file(
|
|
|
+ input : 'slirp/src/libslirp-version.h.in',
|
|
|
+ output : 'libslirp-version.h',
|
|
|
+ configuration: slirp_conf)
|
|
|
+
|
|
|
+ slirp_inc = include_directories('slirp', 'slirp/src')
|
|
|
+ libslirp = static_library('slirp',
|
|
|
+ sources: slirp_files,
|
|
|
+ c_args: slirp_cargs,
|
|
|
+ include_directories: slirp_inc)
|
|
|
+ slirp = declare_dependency(link_with: libslirp,
|
|
|
+ dependencies: slirp_deps,
|
|
|
+ include_directories: slirp_inc)
|
|
|
+ endif
|
|
|
+endif
|
|
|
+
|
|
|
config_host_data.set('CONFIG_CAPSTONE', capstone.found())
|
|
|
+config_host_data.set('CONFIG_SLIRP', slirp.found())
|
|
|
|
|
|
genh += configure_file(output: 'config-host.h', configuration: config_host_data)
|
|
|
|
|
@@ -1656,8 +1732,8 @@ summary_info += {'python': '@0@ (version: @1@)'.format(python.full_pa
|
|
|
summary_info += {'sphinx-build': config_host['SPHINX_BUILD']}
|
|
|
summary_info += {'genisoimage': config_host['GENISOIMAGE']}
|
|
|
# TODO: add back version
|
|
|
-summary_info += {'slirp support': config_host.has_key('CONFIG_SLIRP')}
|
|
|
-if config_host.has_key('CONFIG_SLIRP')
|
|
|
+summary_info += {'slirp support': slirp_opt == 'disabled' ? false : slirp_opt}
|
|
|
+if slirp_opt != 'disabled'
|
|
|
summary_info += {'smbd': config_host['CONFIG_SMBD_COMMAND']}
|
|
|
endif
|
|
|
summary_info += {'module support': config_host.has_key('CONFIG_MODULES')}
|