* Remove wrong librz.pc.in file * Add plugindir variable to .pc files to allow easy plugin configuration * Add CMake config files to find Rizin in CMake projects * Add CI jobs to check cmake files * Provide workaround for mesonbuild/meson#9702 * Use .lib suffix and no prefix on MSVC to make CMake files work * Disable cmake files on static libraries build
520 lines
8.8 KiB
Meson
520 lines
8.8 KiB
Meson
analysis_plugins = [
|
|
'6502',
|
|
'8051',
|
|
'amd29k',
|
|
'arm_cs',
|
|
'avr',
|
|
'bf',
|
|
'chip8',
|
|
'cr16',
|
|
'dalvik',
|
|
'ebc',
|
|
'gb',
|
|
'h8300',
|
|
'hexagon',
|
|
'i4004',
|
|
'i8080',
|
|
'java',
|
|
'luac',
|
|
'm68k_cs',
|
|
'm680x_cs',
|
|
'malbolge',
|
|
'mcore',
|
|
'mips_cs',
|
|
'msp430',
|
|
'null',
|
|
'or1k',
|
|
'pic',
|
|
'ppc_cs',
|
|
'propeller',
|
|
'pyc',
|
|
'rsp',
|
|
'snes',
|
|
'sparc_cs',
|
|
'spc700',
|
|
'sysz',
|
|
'tms320',
|
|
#'tms320c64x',
|
|
'v810',
|
|
'v850',
|
|
'wasm',
|
|
'x86_cs',
|
|
'xap',
|
|
'xcore_cs',
|
|
]
|
|
|
|
asm_plugins = [
|
|
'6502',
|
|
'8051',
|
|
'amd29k',
|
|
'arm_as',
|
|
'arm_cs',
|
|
'avr',
|
|
'bf',
|
|
'chip8',
|
|
'cr16',
|
|
'dalvik',
|
|
'dcpu16',
|
|
'ebc',
|
|
'gb',
|
|
'h8300',
|
|
'hexagon',
|
|
'i4004',
|
|
'i8080',
|
|
'java',
|
|
'lh5801',
|
|
'lm32',
|
|
'luac',
|
|
'm68k_cs',
|
|
'm680x_cs',
|
|
'malbolge',
|
|
'mcore',
|
|
'mcs96',
|
|
'mips_cs',
|
|
'msp430',
|
|
'or1k',
|
|
'pic',
|
|
'ppc_as',
|
|
'ppc_cs',
|
|
'propeller',
|
|
'pyc',
|
|
'rsp',
|
|
'snes',
|
|
'sparc_cs',
|
|
'spc700',
|
|
'sysz',
|
|
'tms320',
|
|
'tms320c64x',
|
|
'v810',
|
|
'v850',
|
|
'wasm',
|
|
'x86_as',
|
|
'x86_cs',
|
|
'x86_nasm',
|
|
'x86_nz',
|
|
'xap',
|
|
'xcore_cs',
|
|
]
|
|
|
|
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',
|
|
]
|
|
|
|
bp_plugins = [
|
|
'arm',
|
|
'bf',
|
|
'mips',
|
|
'ppc',
|
|
'sh',
|
|
'x86'
|
|
]
|
|
|
|
core_plugins = [
|
|
'java',
|
|
]
|
|
|
|
crypto_plugins = [
|
|
'aes',
|
|
'aes_cbc',
|
|
'base64',
|
|
'base91',
|
|
'blowfish',
|
|
'cps2',
|
|
'des',
|
|
'punycode',
|
|
'rc2',
|
|
'rc4',
|
|
'rc6',
|
|
'rol',
|
|
'ror',
|
|
'rot',
|
|
'serpent',
|
|
'xor',
|
|
]
|
|
|
|
debug_plugins = [
|
|
'bf',
|
|
'bochs',
|
|
'esil',
|
|
'gdb',
|
|
'io',
|
|
'native',
|
|
'null',
|
|
'rap',
|
|
'winkd'
|
|
]
|
|
|
|
egg_plugins = [
|
|
'exec',
|
|
#'shya',
|
|
'xor'
|
|
]
|
|
|
|
io_plugins = [
|
|
'ar',
|
|
'fd',
|
|
'bfdbg',
|
|
'bochs',
|
|
'debug',
|
|
'default',
|
|
'gdb',
|
|
'gprobe',
|
|
'gzip',
|
|
'http',
|
|
'ihex',
|
|
'srec',
|
|
'mach',
|
|
'malloc',
|
|
'null',
|
|
'procpid',
|
|
'ptrace',
|
|
'rzk',
|
|
'rzpipe',
|
|
'rzweb',
|
|
'rap',
|
|
'self',
|
|
'shm',
|
|
'sparse',
|
|
'tcp',
|
|
'winkd',
|
|
'winedbg',
|
|
'zip'
|
|
]
|
|
|
|
lang_plugins = [
|
|
'lib',
|
|
'pipe',
|
|
'rust',
|
|
'vala'
|
|
]
|
|
|
|
if host_machine.system() != 'windows'
|
|
lang_plugins += [
|
|
'c',
|
|
'cpipe'
|
|
]
|
|
endif
|
|
|
|
parse_plugins = [
|
|
'6502_pseudo',
|
|
'arm_pseudo',
|
|
'att2intel',
|
|
'avr_pseudo',
|
|
'chip8_pseudo',
|
|
'tms320_pseudo',
|
|
'dalvik_pseudo',
|
|
'm68k_pseudo',
|
|
'mips_pseudo',
|
|
'ppc_pseudo',
|
|
'v850_pseudo',
|
|
'wasm_pseudo',
|
|
'x86_pseudo',
|
|
]
|
|
|
|
demangler_plugins = [
|
|
'java',
|
|
'msvc',
|
|
'objc',
|
|
]
|
|
|
|
if capstone_dep.version().split('.')[0].to_int() > 4
|
|
analysis_plugins += 'riscv_cs'
|
|
asm_plugins += 'riscv_cs'
|
|
endif
|
|
|
|
if get_option('use_gpl')
|
|
io_plugins += 'qnx'
|
|
debug_plugins += 'qnx'
|
|
demangler_plugins += ['cpp', 'rust']
|
|
analysis_plugins += [
|
|
'arc',
|
|
'cris',
|
|
'mips_gnu',
|
|
'nios2',
|
|
'riscv',
|
|
'sh',
|
|
'sparc_gnu',
|
|
'tricore',
|
|
'vax',
|
|
'xtensa',
|
|
'z80',
|
|
]
|
|
asm_plugins += [
|
|
'arc',
|
|
'cris_gnu',
|
|
'hppa_gnu',
|
|
'lanai_gnu',
|
|
'mips_gnu',
|
|
'nios2',
|
|
'riscv',
|
|
'sh',
|
|
'sparc_gnu',
|
|
'tricore',
|
|
'vax',
|
|
'xtensa',
|
|
'z80',
|
|
]
|
|
parse_plugins += [
|
|
'sh_pseudo',
|
|
'riscv_pseudo',
|
|
'z80_pseudo'
|
|
]
|
|
endif
|
|
|
|
if host_machine.system() == 'windows'
|
|
io_plugins += [
|
|
'windbg',
|
|
'w32dbg',
|
|
'w32',
|
|
]
|
|
debug_plugins += 'windbg'
|
|
endif
|
|
|
|
if get_option('use_swift_demangler')
|
|
demangler_plugins += 'swift'
|
|
endif
|
|
|
|
include_files =[
|
|
'include/rznaked.h',
|
|
'include/rz_agraph.h',
|
|
'include/rz_analysis.h',
|
|
'include/rz_arch.h',
|
|
'include/rz_asm.h',
|
|
'include/rz_basefind.h',
|
|
'include/rz_bin.h',
|
|
'include/rz_bin_dwarf.h',
|
|
'include/rz_bind.h',
|
|
'include/rz_bp.h',
|
|
'include/rz_cmd.h',
|
|
'include/rz_cmp.h',
|
|
'include/rz_config.h',
|
|
'include/rz_cons.h',
|
|
'include/rz_core.h',
|
|
'include/rz_crypto.h',
|
|
'include/rz_debug.h',
|
|
'include/rz_demangler.h',
|
|
'include/rz_diff.h',
|
|
'include/rz_egg.h',
|
|
'include/rz_endian.h',
|
|
'include/rz_flag.h',
|
|
'include/rz_flirt.h',
|
|
'include/rz_getopt.h',
|
|
'include/rz_heap_glibc.h',
|
|
'include/rz_heap_jemalloc.h',
|
|
'include/rz_il.h',
|
|
'include/rz_io.h',
|
|
'include/rz_lang.h',
|
|
'include/rz_lib.h',
|
|
'include/rz_list.h',
|
|
'include/rz_magic.h',
|
|
'include/rz_main.h',
|
|
'include/rz_msg_digest.h',
|
|
'include/rz_parse.h',
|
|
'include/rz_pdb.h',
|
|
'include/rz_project.h',
|
|
'include/rz_reg.h',
|
|
'include/rz_regex.h',
|
|
'include/rz_search.h',
|
|
'include/rz_sign.h',
|
|
'include/rz_skiplist.h',
|
|
'include/rz_skyline.h',
|
|
'include/rz_socket.h',
|
|
'include/rz_syscall.h',
|
|
'include/rz_th.h',
|
|
'include/rz_type.h',
|
|
'include/rz_types.h',
|
|
'include/rz_types_base.h',
|
|
'include/rz_types_overflow.h',
|
|
'include/rz_util.h',
|
|
'include/rz_vector.h',
|
|
'include/rz_windows_heap.h',
|
|
]
|
|
install_headers(include_files, install_dir: rizin_incdir)
|
|
|
|
rz_util_files = [
|
|
'include/rz_util/rz_alloc.h',
|
|
'include/rz_util/rz_annotated_code.h',
|
|
'include/rz_util/rz_ascii_table.h',
|
|
'include/rz_util/rz_asn1.h',
|
|
'include/rz_util/rz_assert.h',
|
|
'include/rz_util/rz_base64.h',
|
|
'include/rz_util/rz_base91.h',
|
|
'include/rz_util/rz_big.h',
|
|
'include/rz_util/rz_bitmap.h',
|
|
'include/rz_util/rz_bitvector.h',
|
|
'include/rz_util/rz_buf.h',
|
|
'include/rz_util/rz_debruijn.h',
|
|
'include/rz_util/rz_event.h',
|
|
'include/rz_util/rz_file.h',
|
|
'include/rz_util/rz_graph.h',
|
|
'include/rz_util/rz_graph_drawable.h',
|
|
'include/rz_util/rz_hex.h',
|
|
'include/rz_util/rz_idpool.h',
|
|
'include/rz_util/rz_intervaltree.h',
|
|
'include/rz_util/rz_itv.h',
|
|
'include/rz_util/rz_json.h',
|
|
'include/rz_util/rz_log.h',
|
|
'include/rz_util/rz_luhn.h',
|
|
'include/rz_util/rz_mem.h',
|
|
'include/rz_util/rz_name.h',
|
|
'include/rz_util/rz_num.h',
|
|
'include/rz_util/rz_path.h',
|
|
'include/rz_util/rz_panels.h',
|
|
'include/rz_util/rz_pj.h',
|
|
'include/rz_util/rz_pkcs7.h',
|
|
'include/rz_util/rz_pool.h',
|
|
'include/rz_util/rz_print.h',
|
|
'include/rz_util/rz_protobuf.h',
|
|
'include/rz_util/rz_punycode.h',
|
|
'include/rz_util/rz_queue.h',
|
|
'include/rz_util/rz_range.h',
|
|
'include/rz_util/rz_rbtree.h',
|
|
'include/rz_util/rz_serialize.h',
|
|
'include/rz_util/rz_signal.h',
|
|
'include/rz_util/rz_spaces.h',
|
|
'include/rz_util/rz_stack.h',
|
|
'include/rz_util/rz_str.h',
|
|
'include/rz_util/rz_str_constpool.h',
|
|
'include/rz_util/rz_str_search.h',
|
|
'include/rz_util/rz_str_util.h',
|
|
'include/rz_util/rz_strbuf.h',
|
|
'include/rz_util/rz_strpool.h',
|
|
'include/rz_util/rz_subprocess.h',
|
|
'include/rz_util/rz_sys.h',
|
|
'include/rz_util/rz_table.h',
|
|
'include/rz_util/rz_time.h',
|
|
'include/rz_util/rz_tree.h',
|
|
'include/rz_util/rz_uleb128.h',
|
|
'include/rz_util/rz_utf16.h',
|
|
'include/rz_util/rz_utf32.h',
|
|
'include/rz_util/rz_utf8.h',
|
|
'include/rz_util/rz_x509.h',
|
|
]
|
|
install_headers(rz_util_files, install_dir: join_paths(rizin_incdir, 'rz_util'))
|
|
|
|
rz_il_definitions_files = [
|
|
'include/rz_il/definitions/bag.h',
|
|
'include/rz_il/definitions/bool.h',
|
|
'include/rz_il/definitions/definitions.h',
|
|
'include/rz_il/definitions/effect.h',
|
|
'include/rz_il/definitions/mem.h',
|
|
'include/rz_il/definitions/value.h',
|
|
'include/rz_il/definitions/variable.h',
|
|
]
|
|
install_headers(rz_il_definitions_files, install_dir: join_paths(rizin_incdir, 'rz_il', 'definitions'))
|
|
|
|
rz_il_files = [
|
|
'include/rz_il/rzil_opcodes.h',
|
|
'include/rz_il/rzil_vm_events.h',
|
|
'include/rz_il/rzil_vm.h',
|
|
'include/rz_il/vm_layer.h',
|
|
]
|
|
install_headers(rz_il_files, install_dir: join_paths(rizin_incdir, 'rz_il'))
|
|
|
|
rz_crypto_files = [
|
|
'include/rz_crypto/rz_des.h'
|
|
]
|
|
install_headers(rz_crypto_files, install_dir: join_paths(rizin_incdir, 'rz_crypto'))
|
|
|
|
if get_option('use_gpl')
|
|
sflib_common_files = [
|
|
'include/sflib/common/sftypes.h',
|
|
'include/sflib/common/sfsocketcall.h'
|
|
]
|
|
|
|
sflib_arch = [
|
|
'linux-x86-64',
|
|
'linux-x86-32',
|
|
'linux-arm-64',
|
|
'linux-arm-32',
|
|
'darwin-x86-64',
|
|
'darwin-x86-32',
|
|
'darwin-arm-64'
|
|
]
|
|
|
|
sflib_arch_files = [
|
|
'sflib.h',
|
|
'sfsyscall.h',
|
|
'sfsysnr.h'
|
|
]
|
|
|
|
install_headers(sflib_common_files, install_dir: join_paths(rizin_incdir, 'sflib/common'))
|
|
foreach arch : sflib_arch
|
|
foreach file : sflib_arch_files
|
|
install_headers(join_paths('include/sflib', arch, file), install_dir: join_paths(rizin_incdir, 'sflib', arch))
|
|
endforeach
|
|
endforeach
|
|
endif
|
|
|
|
if not is_static_libs_only
|
|
conf = configuration_data()
|
|
conf.set('RZ_VERSION', rizin_version)
|
|
conf.set('INSTALL_PLUGDIR', rizin_plugins)
|
|
cmake_mod.configure_package_config_file(
|
|
name: 'Rizin',
|
|
input: 'RizinConfig.cmake.in',
|
|
install_dir: rizin_cmakedir / 'Rizin',
|
|
configuration: conf,
|
|
)
|
|
endif
|