rizin/librz/bin/meson.build
Riccardo Schirone 47e1cb8335
Provide CMake config files for CMake projects (#2057)
* 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
2021-12-17 09:16:25 +00:00

223 lines
5.3 KiB
Meson

rz_bin_sources = [
'bin.c',
'bin_language.c',
'dbginfo.c',
'dwarf.c',
'filter.c',
'bfile.c',
'bobj.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/pe.c',
'format/pe/pe64.c',
'format/pe/pemixed.c',
'format/pe/pe_misc.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/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'] + library_cflags,
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,
],
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_bin_dep = declare_dependency(link_with: rz_bin,
include_directories: rz_bin_inc)
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),
],
)
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