rizin/librz/io/meson.build
2026-03-25 14:34:07 +00:00

148 lines
2.5 KiB
Meson

io_plugins_list = [
'ar',
'fd',
'bochs',
'debug',
'default',
'dmp',
'gdb',
'gzip',
'http',
'ihex',
'srec',
'mach',
'malloc',
'null',
'procpid',
'ptrace',
'self',
'shm',
'sparse',
'tcp',
'titxt',
'winkd',
'winedbg',
'zip'
]
if get_option('use_gpl')
io_plugins_list += 'qnx'
endif
if host_machine.system() == 'windows'
io_plugins_list+= [
'windbg',
'w32dbg',
'w32',
]
endif
io_plugins = {
'base_name': 'rz_io',
'base_struct': 'RzIOPlugin',
'list': io_plugins_list,
}
rz_io_sources = [
'io.c',
'io_bounds.c',
'io_fd.c',
'io_map.c',
'io_memory.c',
'io_cache.c',
'io_desc.c',
'io_plugin.c',
'ioutils.c',
'p_cache.c',
'serialize_io.c',
'p/io_ar.c',
'p/io_fd.c',
'p/io_bochs.c',
'p/io_debug.c',
'p/io_dmp.c',
'p/io_default.c',
'p/io_gdb.c',
'p/io_gzip.c',
'p/io_http.c',
'p/io_ihex.c',
'p/io_mach.c',
'p/io_malloc.c',
'p/io_null.c',
'p/io_procpid.c',
'p/io_ptrace.c',
'p/io_self.c',
'p/io_shm.c',
'p/io_sparse.c',
'p/io_srec.c',
'p/io_tcp.c',
'p/io_winkd.c',
'p/io_winedbg.c',
'p/io_zip.c',
'p/io_titxt.c',
]
if host_machine.system() == 'windows'
rz_io_sources += [
'p/io_windbg.c',
'p/io_w32.c',
'p/io_w32dbg.c',
]
endif
rz_io_deps = [
dependency('rzgdb'),
dependency('rzwinkd'),
libzip_dep,
dependency('rzar'),
th,
lrt,
rz_util_dep,
rz_socket_dep,
rz_hash_dep,
rz_crypto_dep,
rz_cons_dep,
platform_deps,
]
if host_machine.system() == 'sunos'
rz_io_deps += [
cc.find_library('socket'),
cc.find_library('nsl'),
cc.find_library('proc'),
]
endif
if get_option('use_gpl')
rz_io_deps += dependency('rzqnx')
rz_io_sources += 'p/io_qnx.c'
endif
if host_machine.system() == 'windows'
rz_io_deps += dependency('rzw32dbg_wrap')
endif
if use_ptrace_wrap
rz_io_deps += dependency('ptrace-wrap', default_options: ['is_static_build=' + is_static_build.to_string()])
endif
rz_io = library('rz_io', rz_io_sources,
include_directories: platform_inc,
dependencies: rz_io_deps,
install: true,
implicit_include_directories: false,
install_rpath: rpath_lib,
soversion: rizin_libversion,
version: rizin_version,
name_suffix: lib_name_suffix,
name_prefix: lib_name_prefix,
)
rz_io_dep = declare_dependency(link_with: rz_io,
include_directories: platform_inc)
meson.override_dependency('rz_io', rz_io_dep)
modules += { 'rz_io': {
'target': rz_io,
'dependencies': ['rz_util', 'rz_socket', 'rz_hash', 'rz_crypto', 'rz_cons'],
'plugins': [io_plugins]
}}