rizin/librz/bin/meson.build

318 lines
6.6 KiB
Meson

bin_plugins = [
'any',
'art',
'avr',
'bf',
'bflt',
'bios',
'bootimg',
'cgc',
'coff',
'dex',
'dmp64',
'dol',
'dyldcache',
'elf',
'elf64',
'java',
'le',
'luac',
'mach0',
'mach064',
'mbn',
'mdmp',
'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_ldr_plugins = [
'ldr_linux',
]
bin_xtr_plugins = [
'xtr_fatmach0',
'xtr_sep64',
]
rz_bin_sources = [
'bfile.c',
'bfile_string.c',
'bin.c',
'bin_language.c',
'bobj.c',
'dbginfo.c',
'dwarf.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_java.c',
'p/bin_ldr_linux.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_menuet.c',
'p/bin_mz.c',
'p/bin_ne.c',
'p/bin_nes.c',
'p/bin_nin3ds.c',
'p/bin_ninds.c',
'p/bin_ningb.c',
'p/bin_ningba.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_sfc.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',
'p/bin_xtr_pemixed.c',
'p/bin_xtr_sep64.c',
'p/bin_z64.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_relocs.c',
'format/elf/elf64_relocs.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/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/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_rebase.c',
'format/mach0/mach064.c',
'format/mach0/mach064_relocs.c',
'format/mach0/mach064_rebase.c',
'format/xnu/rz_cf_dict.c',
'format/mdmp/mdmp.c',
'format/mdmp/mdmp_pe.c',
'format/mdmp/mdmp_pe64.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_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',
'format/zimg/zimg.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'
]
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,
yxml_dep,
rz_util_dep,
rz_demangler_dep,
rz_socket_dep,
rz_magic_dep,
rz_hash_dep,
rz_syscall_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)
pkgconfig_mod.generate(rz_bin,
subdirs: 'librz',
version: rizin_version,
name: 'rz_bin',
filebase: 'rz_bin',
requires: pkgconfig_magic_requires + [
'rz_util',
'rz_io',
'rz_socket',
'rz_syscall',
'rz_type'
],
description: 'rizin foundation libraries',
variables: [
'plugindir=@0@'.format(rizin_plugins),
'datdir=@0@'.format(rizin_datdir_rz),
],
)
if not is_static_libs_only
conf = configuration_data()
conf.set('RZ_VERSION', rizin_version)
conf.set('RIZIN_MODULE', rz_bin.name())
conf.set('RIZIN_MODULE_DEPS', ' '.join(['rz_util', 'rz_io', 'rz_socket', 'rz_syscall', 'rz_type']))
conf.set('PACKAGE_RELATIVE_PATH', cmake_package_relative_path)
conf.set('INSTALL_INCDIR', rizin_incdir)
conf.set('INSTALL_LIBDIR', rizin_libdir)
conf.set('INSTALL_PLUGDIR', rizin_plugins)
conf.set('rizin_libname', rz_bin.name())
cmake_mod.configure_package_config_file(
name: conf.get('rizin_libname'),
input: '../RzModulesConfig.cmake.in',
install_dir: rizin_cmakedir / conf.get('rizin_libname'),
configuration: conf,
)
endif
subdir('d')