bin_plugins_list = [ 'any', 'art', 'avr', 'bf', 'bflt', 'bios', 'bootimg', 'cgc', 'coff', 'dex', 'dmp64', 'dol', 'dyldcache', 'elf', 'elf64', 'gns1', 'java', 'le', 'luac', 'mach0', 'mach064', 'mbn', 'mdmp', 'mdt', 'menuet', 'mz', 'ne', 'nes', 'nin3ds', 'ninds', 'ningb', 'ningba', 'nro', 'nso', 'omf', 'qnx', 'p9', 'pe', 'pe64', 'pebble', 'prg', 'psxexe', 'pyc', 'sfc', 'smd', 'sms', 'spc700', 'symbols', 'te', 'vsf', 'wasm', 'xbe', 'xnu_kernelcache', 'z64', 'zimg', ] bin_xtr_plugins_list = [ 'fatmach0', 'sep64', # this was never built. # 'pemixed', ] bin_plugins = { 'base_name': 'rz_bin', 'base_struct': 'RzBinPlugin', 'list': bin_plugins_list, } bin_xtr_plugins = { 'base_name': 'rz_bin_xtr', 'base_struct': 'RzBinXtrPlugin', 'list': bin_xtr_plugins_list, } rz_bin_sources = [ 'bfile.c', 'bfile_string.c', 'bin.c', 'bin_demangle.c', 'bin_language.c', 'bobj.c', 'bobj_process.c', 'bobj_process_class.c', 'bobj_process_entry.c', 'bobj_process_field.c', 'bobj_process_file.c', 'bobj_process_import.c', 'bobj_process_map.c', 'bobj_process_section.c', 'bobj_process_string.c', 'bobj_process_symbol.c', 'bobj_process_reloc.c', 'dbginfo.c', 'filter.c', 'golang.c', 'relocs_patch.c', 'p/bin_any.c', 'p/bin_art.c', 'p/bin_avr.c', 'p/bin_bf.c', 'p/bin_bflt.c', 'p/bin_bios.c', 'p/bin_bootimg.c', 'p/bin_cgc.c', 'p/bin_coff.c', 'p/bin_dex.c', 'p/bin_dmp64.c', 'p/bin_dol.c', 'p/bin_dyldcache.c', 'p/bin_elf.c', 'p/bin_elf64.c', 'p/bin_gns1.c', 'p/bin_java.c', 'p/bin_le.c', 'p/bin_luac.c', 'p/bin_mach0.c', 'p/bin_mach064.c', 'p/bin_mbn.c', 'p/bin_mdmp.c', 'p/bin_mdt.c', 'p/bin_menuet.c', 'p/bin_mz.c', 'p/bin_ne.c', 'p/bin_nes.c', 'p/bin_nin3ds.c', 'p/bin_nin64.c', 'p/bin_ninds.c', 'p/bin_ningb.c', 'p/bin_ningba.c', 'p/bin_ninsnes.c', 'p/bin_nro.c', 'p/bin_nso.c', 'p/bin_omf.c', 'p/bin_p9.c', 'p/bin_pe.c', 'p/bin_pe64.c', 'p/bin_pebble.c', 'p/bin_prg.c', 'p/bin_psxexe.c', 'p/bin_pyc.c', 'p/bin_qnx.c', 'p/bin_smd.c', 'p/bin_sms.c', 'p/bin_spc700.c', 'p/bin_symbols.c', 'p/bin_te.c', 'p/bin_vsf.c', 'p/bin_wasm.c', 'p/bin_xbe.c', 'p/bin_xnu_kernelcache.c', 'p/bin_xtr_fatmach0.c', # this was never built. # 'p/bin_xtr_pemixed.c', 'p/bin_xtr_sep64.c', 'p/bin_zimg.c', 'format/bflt/bflt.c', 'format/coff/coff.c', 'format/coff/coff_reloc.c', 'format/dex/dex.c', 'format/dmp/dmp64.c', 'format/elf/elf.c', 'format/elf/elf64.c', 'format/elf/elf_arm.c', 'format/elf/elf64_arm.c', 'format/elf/elf_corefile.c', 'format/elf/elf64_corefile.c', 'format/elf/elf_dynamic.c', 'format/elf/elf64_dynamic.c', 'format/elf/elf_ehdr.c', 'format/elf/elf64_ehdr.c', 'format/elf/elf_hash.c', 'format/elf/elf64_hash.c', 'format/elf/elf_imports.c', 'format/elf/elf64_imports.c', 'format/elf/elf_map.c', 'format/elf/elf64_map.c', 'format/elf/elf_info.c', 'format/elf/elf64_info.c', 'format/elf/elf_misc.c', 'format/elf/elf64_misc.c', 'format/elf/elf_notes.c', 'format/elf/elf64_notes.c', 'format/elf/elf_parser.c', 'format/elf/elf64_parser.c', 'format/elf/elf_relocs.c', 'format/elf/elf64_relocs.c', 'format/elf/elf_relocs_conversion.c', 'format/elf/elf64_relocs_conversion.c', 'format/elf/elf_relocs_patching.c', 'format/elf/elf64_relocs_patching.c', 'format/elf/elf_sections.c', 'format/elf/elf64_sections.c', 'format/elf/elf_segments.c', 'format/elf/elf64_segments.c', 'format/elf/elf_strtab.c', 'format/elf/elf64_strtab.c', 'format/elf/elf_symbols.c', 'format/elf/elf64_symbols.c', 'format/gns1/gns1.c', 'format/java/class_attribute.c', 'format/java/class_const_pool.c', 'format/java/class_interface.c', 'format/java/class_bin.c', 'format/java/class_field.c', 'format/java/class_method.c', 'format/mach0/mach0_common.c', 'format/mach0/dyldcache.c', 'format/mach0/dyldcache_rebase.c', 'format/mach0/coresymbolication.c', 'format/mach0/fatmach0.c', 'format/mach0/kernelcache.c', 'format/mach0/mach0.c', 'format/mach0/mach0_relocs.c', 'format/mach0/mach0_chained_fixups.c', 'format/mach0/mach064.c', 'format/mach0/mach064_relocs.c', 'format/mach0/mach064_chained_fixups.c', 'format/mbn/mbn.c', 'format/xnu/rz_cf_dict.c', 'format/mdmp/mdmp.c', 'format/mdmp/mdmp_pe.c', 'format/mdmp/mdmp_pe64.c', 'format/mdt/mdt.c', 'format/le/le.c', 'format/luac/luac_common.c', 'format/luac/luac_bin.c', 'format/luac/v54/parse_54.c', 'format/luac/v53/parse_53.c', 'format/ne/ne.c', 'format/mz/mz.c', 'format/nxo/nxo.c', 'format/objc/mach064_classes.c', 'format/objc/mach0_classes.c', 'format/omf/omf.c', 'format/p9/p9bin.c', 'format/pe/dotnet.c', 'format/pe/pe.c', 'format/pe/pe64.c', 'format/pe/pe_info.c', 'format/pe/pe64_info.c', 'format/pe/pe_overlay.c', 'format/pe/pe64_overlay.c', 'format/pe/pe_hdr.c', 'format/pe/pe64_hdr.c', 'format/pe/pe_imports.c', 'format/pe/pe64_imports.c', 'format/pe/pe_relocs.c', 'format/pe/pe64_relocs.c', 'format/pe/pe_exports.c', 'format/pe/pe64_exports.c', 'format/pe/pe_rsrc.c', 'format/pe/pe64_rsrc.c', 'format/pe/pe_tls.c', 'format/pe/pe64_tls.c', 'format/pe/pe_security.c', 'format/pe/pe64_security.c', 'format/pe/pe_section.c', 'format/pe/pe64_section.c', 'format/pe/pe_clr.c', 'format/pe/pe64_clr.c', 'format/pe/pe_debug.c', 'format/pe/pe64_debug.c', 'format/pe/pemixed.c', 'format/pyc/marshal.c', 'format/pyc/pyc.c', 'format/pyc/pyc_magic.c', 'format/te/te.c', 'format/wasm/wasm.c', 'pdb/cab_extract.c', 'pdb/dbi.c', 'pdb/gdata.c', 'pdb/omap.c', 'pdb/pdb.c', 'pdb/pdb_downloader.c', 'pdb/stream_pe.c', 'pdb/tpi.c', 'pdb/symbol.c', 'pdb/modi.c', 'dwarf/abbrev.c', 'dwarf/addr.c', 'dwarf/aranges.c', 'dwarf/attr.c', 'dwarf/block.c', 'dwarf/enum.c', 'dwarf/endian_reader.c', 'dwarf/lists.c', 'dwarf/line.c', 'dwarf/line_str.c', 'dwarf/loclists.c', 'dwarf/op.c', 'dwarf/rnglists.c', 'dwarf/unit.c', 'dwarf/value.c', 'dwarf/str.c', 'dwarf/str_offsets.c', 'dwarf/dwarf.c', ] rz_bin_inc = [platform_inc, include_directories('format')] rz_bin = library('rz_bin', rz_bin_sources, include_directories: rz_bin_inc, c_args: ['-DRZ_API_BIN_ONLY=1'], dependencies: [ lz4_dep, libzstd_dep, yxml_dep, rz_util_dep, rz_demangler_dep, rz_socket_dep, rz_magic_dep, rz_hash_dep, rz_syscall_dep, rz_search_dep, rz_cons_dep, rz_io_dep, rz_type_dep, libmspack_dep, ], 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_bin_dep = declare_dependency(link_with: rz_bin, include_directories: rz_bin_inc) meson.override_dependency('rz_bin', rz_bin_dep) modules += { 'rz_bin': { 'target': rz_bin, 'dependencies': [ 'rz_magic', 'rz_util', 'rz_io', 'rz_search', 'rz_socket', 'rz_syscall', 'rz_type' ], 'plugins': [bin_plugins, bin_xtr_plugins] }} subdir('d')