* 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
253 lines
6.4 KiB
Meson
253 lines
6.4 KiB
Meson
rz_analysis_sources = [
|
|
'analysis.c',
|
|
'arch_profile.c',
|
|
'arch_platform.c',
|
|
'block.c',
|
|
'function.c',
|
|
'jmptbl.c',
|
|
'cc.c',
|
|
'class.c',
|
|
'cond.c',
|
|
'cycles.c',
|
|
'data.c',
|
|
'diff.c',
|
|
'esil/esil.c',
|
|
'esil/esil_stats.c',
|
|
'esil/esil_trace.c',
|
|
'esil/esil_interrupt.c',
|
|
'esil/esil_sources.c',
|
|
'rzil/rzil_stats.c',
|
|
'rzil/rzil_trace.c',
|
|
'rzil/rzil.c',
|
|
'fcn.c',
|
|
'hint.c',
|
|
'il_trace.c',
|
|
'labels.c',
|
|
'meta.c',
|
|
'op.c',
|
|
'reflines.c',
|
|
'rtti.c',
|
|
'rtti_msvc.c',
|
|
'rtti_itanium.c',
|
|
'switch.c',
|
|
'dwarf_process.c',
|
|
'value.c',
|
|
'var.c',
|
|
'var_global.c',
|
|
'vtable.c',
|
|
'xrefs.c',
|
|
'serialize_analysis.c',
|
|
'serialize_typelink.c',
|
|
'type_pdb.c',
|
|
'typelink.c',
|
|
'p/analysis_6502.c',
|
|
'p/analysis_6502_cs.c',
|
|
'p/analysis_8051.c',
|
|
'p/analysis_amd29k.c',
|
|
'p/analysis_arm_cs.c',
|
|
'p/analysis_avr.c',
|
|
'p/analysis_bf.c',
|
|
'p/analysis_chip8.c',
|
|
'p/analysis_cr16.c',
|
|
'p/analysis_dalvik.c',
|
|
'p/analysis_ebc.c',
|
|
'p/analysis_gb.c',
|
|
'p/analysis_h8300.c',
|
|
'p/analysis_hexagon.c',
|
|
'p/analysis_i4004.c',
|
|
'p/analysis_i8080.c',
|
|
'p/analysis_java.c',
|
|
'p/analysis_luac.c',
|
|
'p/analysis_m68k_cs.c',
|
|
'p/analysis_m680x_cs.c',
|
|
'p/analysis_malbolge.c',
|
|
'p/analysis_mcore.c',
|
|
'p/analysis_mips_cs.c',
|
|
'p/analysis_msp430.c',
|
|
'p/analysis_null.c',
|
|
'p/analysis_or1k.c',
|
|
'p/analysis_pic.c',
|
|
'p/analysis_ppc_cs.c',
|
|
'p/analysis_propeller.c',
|
|
'p/analysis_pyc.c',
|
|
'p/analysis_rsp.c',
|
|
'p/analysis_snes.c',
|
|
'p/analysis_sparc_cs.c',
|
|
'p/analysis_spc700.c',
|
|
'p/analysis_sysz.c',
|
|
'p/analysis_tms320.c',
|
|
'p/analysis_tms320_c55x_plus.c',
|
|
#'p/analysis_tms320c64x.c',
|
|
'p/analysis_v810.c',
|
|
'p/analysis_v850.c',
|
|
'p/analysis_wasm.c',
|
|
'p/analysis_x86_cs.c',
|
|
'p/analysis_xap.c',
|
|
'p/analysis_xcore_cs.c',
|
|
#'arch/gb/meta_gb_cmt.c',
|
|
'../asm/arch/amd29k/amd29k.c',
|
|
'../asm/arch/avr/disassembler.c',
|
|
'../asm/arch/cr16/cr16_disas.c',
|
|
'../asm/arch/ebc/ebc_disas.c',
|
|
'../asm/arch/h8300/h8300_disas.c',
|
|
'../asm/arch/java/jvm.c',
|
|
'../asm/arch/mcore/mcore.c',
|
|
'../asm/arch/msp430/msp430_disas.c',
|
|
'../asm/arch/or1k/or1k_disas.c',
|
|
'../asm/arch/pic/pic_midrange.c',
|
|
'../asm/arch/ppc/libvle/vle.c',
|
|
'../asm/arch/propeller/propeller_disas.c',
|
|
'../asm/arch/rsp/rsp_idec.c',
|
|
'../asm/arch/tms320/tms320_dasm.c',
|
|
'../asm/arch/tms320/c55x_plus/ins.c',
|
|
'../asm/arch/tms320/c55x_plus/c55plus.c',
|
|
'../asm/arch/tms320/c55x_plus/c55plus_decode.c',
|
|
'../asm/arch/tms320/c55x_plus/decode_funcs.c',
|
|
'../asm/arch/tms320/c55x_plus/hashtable.c',
|
|
'../asm/arch/tms320/c55x_plus/utils.c',
|
|
'../asm/arch/v810/v810_disas.c',
|
|
'../asm/arch/v850/v850_disas.c',
|
|
'../asm/arch/wasm/wasm.c',
|
|
'../asm/arch/pyc/opcode_10.c',
|
|
'../asm/arch/pyc/opcode_11.c',
|
|
'../asm/arch/pyc/opcode_12.c',
|
|
'../asm/arch/pyc/opcode_13.c',
|
|
'../asm/arch/pyc/opcode_14.c',
|
|
'../asm/arch/pyc/opcode_15.c',
|
|
'../asm/arch/pyc/opcode_16.c',
|
|
'../asm/arch/pyc/opcode_20.c',
|
|
'../asm/arch/pyc/opcode_21.c',
|
|
'../asm/arch/pyc/opcode_22.c',
|
|
'../asm/arch/pyc/opcode_23.c',
|
|
'../asm/arch/pyc/opcode_24.c',
|
|
'../asm/arch/pyc/opcode_25.c',
|
|
'../asm/arch/pyc/opcode_26.c',
|
|
'../asm/arch/pyc/opcode_27.c',
|
|
'../asm/arch/pyc/opcode_2x.c',
|
|
'../asm/arch/pyc/opcode_30.c',
|
|
'../asm/arch/pyc/opcode_31.c',
|
|
'../asm/arch/pyc/opcode_32.c',
|
|
'../asm/arch/pyc/opcode_33.c',
|
|
'../asm/arch/pyc/opcode_34.c',
|
|
'../asm/arch/pyc/opcode_35.c',
|
|
'../asm/arch/pyc/opcode_36.c',
|
|
'../asm/arch/pyc/opcode_37.c',
|
|
'../asm/arch/pyc/opcode_38.c',
|
|
'../asm/arch/pyc/opcode_39.c',
|
|
'../asm/arch/pyc/opcode_3x.c',
|
|
'../asm/arch/pyc/opcode_analysis.c',
|
|
'../asm/arch/pyc/opcode_arg_fmt.c',
|
|
'../asm/arch/pyc/opcode.c',
|
|
'../asm/arch/pyc/pyc_dis.c',
|
|
'../asm/arch/luac/lua_arch.c',
|
|
'../asm/arch/luac/v54/analysis_54.c',
|
|
'../asm/arch/luac/v54/opcode_54.c',
|
|
'../asm/arch/luac/v53/analysis_53.c',
|
|
'../asm/arch/luac/v53/opcode_53.c'
|
|
]
|
|
|
|
if capstone_dep.version().split('.')[0].to_int() > 4
|
|
rz_analysis_sources += 'p/analysis_riscv_cs.c'
|
|
endif
|
|
|
|
if get_option('use_gpl')
|
|
rz_analysis_sources += [
|
|
'p/analysis_arc.c',
|
|
'p/analysis_cris.c',
|
|
'p/analysis_mips_gnu.c',
|
|
'p/analysis_nios2.c',
|
|
'p/analysis_riscv.c',
|
|
'p/analysis_sh.c',
|
|
'p/analysis_sparc_gnu.c',
|
|
'p/analysis_tricore.c',
|
|
'p/analysis_vax.c',
|
|
'p/analysis_xtensa.c',
|
|
'p/analysis_z80.c',
|
|
'../asm/arch/xtensa/gnu/xtensa-dis.c',
|
|
'../asm/arch/xtensa/gnu/elf32-xtensa.c',
|
|
'../asm/arch/xtensa/gnu/xtensa-isa.c',
|
|
'../asm/arch/xtensa/gnu/xtensa-modules.c',
|
|
]
|
|
endif
|
|
rz_analysis_inc = [
|
|
platform_inc,
|
|
include_directories(
|
|
'arch/gb',
|
|
)
|
|
]
|
|
|
|
rz_analysis = library('rz_analysis', rz_analysis_sources,
|
|
include_directories: rz_analysis_inc,
|
|
c_args: library_cflags,
|
|
dependencies: [
|
|
rz_util_dep,
|
|
rz_crypto_dep,
|
|
rz_reg_dep,
|
|
rz_syscall_dep,
|
|
rz_search_dep,
|
|
rz_cons_dep,
|
|
rz_flag_dep,
|
|
rz_hash_dep,
|
|
rz_diff_dep,
|
|
rz_parse_dep,
|
|
rz_asm_dep,
|
|
rz_bin_dep,
|
|
rz_type_dep,
|
|
rz_il_dep,
|
|
capstone_dep
|
|
],
|
|
install: true,
|
|
implicit_include_directories: false,
|
|
install_rpath: rpath_lib,
|
|
link_args: library_linkflags,
|
|
soversion: rizin_libversion,
|
|
name_suffix: lib_name_suffix,
|
|
name_prefix: lib_name_prefix,
|
|
)
|
|
|
|
rz_analysis_dep = declare_dependency(link_with: rz_analysis,
|
|
include_directories: rz_analysis_inc)
|
|
|
|
pkgconfig_mod.generate(rz_analysis,
|
|
subdirs: 'librz',
|
|
version: rizin_version,
|
|
name: 'rz_analysis',
|
|
filebase: 'rz_analysis',
|
|
requires: [
|
|
'rz_util',
|
|
'rz_crypto',
|
|
'rz_reg',
|
|
'rz_asm',
|
|
'rz_parse',
|
|
'rz_syscall',
|
|
'rz_search',
|
|
'rz_cons',
|
|
'rz_diff',
|
|
'rz_bin',
|
|
'rz_flag',
|
|
'rz_type'
|
|
],
|
|
description: 'rizin foundation libraries',
|
|
variables: [
|
|
'plugindir=@0@'.format(rizin_plugins),
|
|
],
|
|
)
|
|
|
|
if not is_static_libs_only
|
|
conf = configuration_data()
|
|
conf.set('RZ_VERSION', rizin_version)
|
|
conf.set('RIZIN_MODULE', rz_analysis.name())
|
|
conf.set('RIZIN_MODULE_DEPS', ' '.join(['rz_util', 'rz_crypto', 'rz_reg', 'rz_asm', 'rz_parse',
|
|
'rz_syscall', 'rz_search', 'rz_cons', 'rz_diff', 'rz_bin', 'rz_flag', '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_analysis.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
|