mirror of
https://github.com/radareorg/radare2.git
synced 2024-11-23 05:09:43 +00:00
Simplify meson logic and use ole's PR to fix Windows ##build
* Kudos to @oleavr for reproducing, spotting and fixing the bug! * Context https://github.com/mesonbuild/meson/pull/9918
This commit is contained in:
parent
feaa4e7f73
commit
50bf4d5918
17
.github/workflows/windows.yml
vendored
17
.github/workflows/windows.yml
vendored
@ -41,6 +41,8 @@ jobs:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- uses: actions/setup-python@v2
|
||||
# with:
|
||||
# python-version: '3.7'
|
||||
- name: Preparing nmake
|
||||
uses: ilammy/msvc-dev-cmd@v1
|
||||
with:
|
||||
@ -48,7 +50,8 @@ jobs:
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install meson ninja r2pipe wget
|
||||
pip install git+https://github.com/frida/meson.git@f7f25b19a8d71cebf8e2934733eb041eb6862eee
|
||||
pip install ninja r2pipe wget
|
||||
- name: Extract r2 version
|
||||
run: echo "##[set-output name=branch;]$( cd sys; python version.py )"
|
||||
id: r2v
|
||||
@ -59,7 +62,7 @@ jobs:
|
||||
call configure
|
||||
call make
|
||||
- name: Test executable
|
||||
continue-on-error: true
|
||||
# continue-on-error: true
|
||||
shell: cmd
|
||||
run: |
|
||||
cd prefix\bin
|
||||
@ -71,10 +74,13 @@ jobs:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- uses: actions/setup-python@v2
|
||||
# with:
|
||||
# python-version: '3.7'
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install meson ninja r2pipe wget
|
||||
pip install git+https://github.com/frida/meson.git@f7f25b19a8d71cebf8e2934733eb041eb6862eee
|
||||
pip install ninja r2pipe wget
|
||||
- name: Extract r2 version
|
||||
run: echo "##[set-output name=branch;]$( cd sys;python version.py )"
|
||||
id: r2v
|
||||
@ -110,6 +116,8 @@ jobs:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- uses: actions/setup-python@v2
|
||||
# with:
|
||||
# python-version: '3.7'
|
||||
- name: Preparing nmake
|
||||
uses: ilammy/msvc-dev-cmd@v1
|
||||
with:
|
||||
@ -117,7 +125,8 @@ jobs:
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install meson ninja r2pipe wget
|
||||
pip install git+https://github.com/frida/meson.git@f7f25b19a8d71cebf8e2934733eb041eb6862eee
|
||||
pip install ninja r2pipe wget
|
||||
- name: Extract r2 version
|
||||
run: echo "##[set-output name=branch;]$( cd sys; python version.py )"
|
||||
id: r2v
|
||||
|
28
binr/meson.build
Normal file
28
binr/meson.build
Normal file
@ -0,0 +1,28 @@
|
||||
|
||||
cli_option = get_option('cli')
|
||||
if cli_option.auto()
|
||||
cli_enabled = not meson.is_subproject()
|
||||
else
|
||||
cli_enabled = cli_option.enabled()
|
||||
endif
|
||||
if cli_enabled
|
||||
if get_option('blob')
|
||||
subdir('blob')
|
||||
else
|
||||
subdir('rahash2')
|
||||
subdir('rarun2')
|
||||
subdir('rasm2')
|
||||
subdir('rabin2')
|
||||
subdir('radare2')
|
||||
subdir('ragg2')
|
||||
subdir('r2agent')
|
||||
subdir('radiff2')
|
||||
subdir('rafind2')
|
||||
subdir('rasign2')
|
||||
subdir('ravc2')
|
||||
subdir('rax2')
|
||||
endif
|
||||
subdir('r2pm')
|
||||
subdir('r2r')
|
||||
endif
|
||||
|
@ -26,6 +26,7 @@ r_cons = library('r_cons', r_cons_sources,
|
||||
include_directories: [platform_inc],
|
||||
c_args: library_cflags,
|
||||
dependencies: [r_util_dep],
|
||||
link_with: [r_util],
|
||||
install: true,
|
||||
implicit_include_directories: false,
|
||||
install_rpath: rpath_lib,
|
||||
|
@ -25,6 +25,7 @@ r_crypto_sources = [
|
||||
r_crypto = library('r_crypto', r_crypto_sources,
|
||||
include_directories: [platform_inc],
|
||||
dependencies: [r_util_dep],
|
||||
link_with: [r_util],
|
||||
c_args: library_cflags,
|
||||
install: true,
|
||||
implicit_include_directories: false,
|
||||
|
@ -82,6 +82,7 @@ endif
|
||||
|
||||
r_io = library('r_io', r_io_sources,
|
||||
include_directories: platform_inc,
|
||||
link_with: [r_util, r_socket],
|
||||
dependencies: r_io_deps,
|
||||
c_args: library_cflags,
|
||||
install: true,
|
||||
|
@ -10,15 +10,16 @@ r_socket_sources = [
|
||||
'run.c',
|
||||
]
|
||||
|
||||
dependencies = [utl, r_util_dep, platform_deps]
|
||||
r_util_deps = [utl, r_util_dep, platform_deps]
|
||||
|
||||
if use_sys_openssl
|
||||
dependencies += [sys_openssl]
|
||||
r_util_deps += [sys_openssl]
|
||||
endif
|
||||
|
||||
r_socket = library('r_socket', r_socket_sources,
|
||||
include_directories: [platform_inc],
|
||||
dependencies: dependencies,
|
||||
dependencies: r_util_deps,
|
||||
link_with: [r_util],
|
||||
c_args: library_cflags,
|
||||
install: true,
|
||||
implicit_include_directories: false,
|
||||
|
@ -87,9 +87,9 @@ r_util_sources = [
|
||||
'sys_w32.c',
|
||||
'zip.c',
|
||||
'protobuf.c',
|
||||
join_paths('regex','regcomp.c'),
|
||||
join_paths('regex','regexec.c'),
|
||||
join_paths('regex','regerror.c')
|
||||
'regex/regcomp.c',
|
||||
'regex/regexec.c',
|
||||
'regex/regerror.c'
|
||||
]
|
||||
|
||||
if get_option('sdb_cgen')
|
||||
|
1
make.bat
1
make.bat
@ -4,6 +4,7 @@ if "%*" == "clean" (
|
||||
wsl rm -rf b vs
|
||||
exit /b 0
|
||||
)
|
||||
|
||||
call ninja.exe --version > NUL 2> NUL && (
|
||||
if EXIST b (
|
||||
REM meson compile -C b
|
||||
|
233
meson.build
233
meson.build
@ -97,7 +97,7 @@ else
|
||||
endif
|
||||
|
||||
platform_deps = []
|
||||
platform_inc = ['.', join_paths('libr','include')]
|
||||
platform_inc = ['.', 'libr/include']
|
||||
if host_machine.system() == 'windows'
|
||||
platform_deps = [cc.find_library('ws2_32'), cc.find_library('wininet'), cc.find_library('psapi')]
|
||||
endif
|
||||
@ -117,6 +117,7 @@ if get_option('wasan')
|
||||
# add_project_arguments('/Z7', language: 'c') # generate .symbols instead of .pdb
|
||||
# add_project_arguments('/guard:cf', language: 'c')
|
||||
endif
|
||||
|
||||
if cc.get_id() == 'clang-cl'
|
||||
add_project_arguments('-D__STDC__=1', language: 'c')
|
||||
add_project_arguments('-D_CRT_DECLARE_NONSTDC_NAMES ', language: 'c')
|
||||
@ -125,7 +126,7 @@ if cc.get_id() == 'clang-cl'
|
||||
endif
|
||||
|
||||
if get_option('default_library') == 'shared'
|
||||
if host_machine.system() != 'windows' or cc.get_id()!='msvc' and cc.get_id()!='clang-cl'
|
||||
if host_machine.system() != 'windows' or cc.get_id() != 'msvc' and cc.get_id() != 'clang-cl'
|
||||
add_project_arguments('-fvisibility=hidden', language: 'c')
|
||||
endif
|
||||
endif
|
||||
@ -135,7 +136,7 @@ library_cflags = ['-DR2_PLUGIN_INCORE=1']
|
||||
if host_machine.system() == 'windows'
|
||||
r2_prefix = '.'
|
||||
r2_libdir = 'lib'
|
||||
r2_incdir = join_paths('include', 'libr')
|
||||
r2_incdir = 'include/libr'
|
||||
r2_datdir = 'share'
|
||||
|
||||
opts1 = [
|
||||
@ -235,7 +236,7 @@ conf_data.set('plugins_parse', '&r_parse_plugin_' + ', &r_parse_plugin_'.join(pa
|
||||
#)
|
||||
|
||||
config_h = configure_file(
|
||||
input: join_paths('libr','config.h.in'),
|
||||
input: 'libr/config.h.in',
|
||||
output: 'config.h',
|
||||
configuration: conf_data
|
||||
)
|
||||
@ -385,10 +386,10 @@ foreach item : [
|
||||
endforeach
|
||||
|
||||
r_userconf_h = configure_file(
|
||||
input: join_paths('libr','include','r_userconf.h.acr'),
|
||||
input: 'libr/include/r_userconf.h.acr',
|
||||
output: 'r_userconf.h',
|
||||
configuration: userconf,
|
||||
install_dir: join_paths(r2_incdir)
|
||||
install_dir: r2_incdir
|
||||
)
|
||||
|
||||
versionconf = configuration_data()
|
||||
@ -406,7 +407,7 @@ r_version_h = configure_file(
|
||||
input: 'libr/include/r_version.h.in',
|
||||
output: 'r_version.h',
|
||||
configuration: versionconf,
|
||||
install_dir: join_paths(r2_incdir)
|
||||
install_dir: r2_incdir
|
||||
)
|
||||
|
||||
# Copy missing header
|
||||
@ -423,75 +424,39 @@ libr_pc = configure_file(
|
||||
install_dir: join_paths(get_option('libdir'), 'pkgconfig')
|
||||
)
|
||||
|
||||
# handle zlib dependency
|
||||
zlib_dep = dependency('zlib', required: false)
|
||||
if not zlib_dep.found() or not get_option('use_sys_zlib')
|
||||
message('Use bundled zlib')
|
||||
|
||||
zlib_files = [
|
||||
join_paths('shlr','zip','zlib','adler32.c'),
|
||||
join_paths('shlr','zip','zlib','compress.c'),
|
||||
join_paths('shlr','zip','zlib','crc32.c'),
|
||||
join_paths('shlr','zip','zlib','deflate.c'),
|
||||
join_paths('shlr','zip','zlib','gzclose.c'),
|
||||
join_paths('shlr','zip','zlib','gzlib.c'),
|
||||
join_paths('shlr','zip','zlib','gzread.c'),
|
||||
join_paths('shlr','zip','zlib','gzwrite.c'),
|
||||
join_paths('shlr','zip','zlib','infback.c'),
|
||||
join_paths('shlr','zip','zlib','inffast.c'),
|
||||
join_paths('shlr','zip','zlib','inflate.c'),
|
||||
join_paths('shlr','zip','zlib','inftrees.c'),
|
||||
join_paths('shlr','zip','zlib','trees.c'),
|
||||
join_paths('shlr','zip','zlib','uncompr.c'),
|
||||
join_paths('shlr','zip','zlib','zutil.c')
|
||||
]
|
||||
|
||||
zlib_inc = [platform_inc, include_directories(join_paths('shlr','zip','zlib'))]
|
||||
|
||||
libr2zlib = static_library('r2zlib', zlib_files,
|
||||
include_directories: zlib_inc,
|
||||
implicit_include_directories: false
|
||||
)
|
||||
|
||||
zlib_dep = declare_dependency(
|
||||
link_with: libr2zlib,
|
||||
include_directories: zlib_inc
|
||||
)
|
||||
else
|
||||
message('Use system-provided zlib library')
|
||||
endif
|
||||
subdir('shlr/zip')
|
||||
|
||||
|
||||
# handle sdb dependency
|
||||
# NOTE: copying most of the stuff from sdb to here for the moment, since we
|
||||
# should use subpackages to handle this well
|
||||
sdb_files = [
|
||||
join_paths('shlr','sdb','src','array.c'),
|
||||
join_paths('shlr','sdb','src','base64.c'),
|
||||
join_paths('shlr','sdb','src','buffer.c'),
|
||||
join_paths('shlr','sdb','src','set.c'),
|
||||
join_paths('shlr','sdb','src','cdb.c'),
|
||||
join_paths('shlr','sdb','src','cdb_make.c'),
|
||||
join_paths('shlr','sdb','src','dict.c'),
|
||||
join_paths('shlr','sdb','src','diff.c'),
|
||||
join_paths('shlr','sdb','src','disk.c'),
|
||||
join_paths('shlr','sdb','src','fmt.c'),
|
||||
join_paths('shlr','sdb','src','ht_uu.c'),
|
||||
join_paths('shlr','sdb','src','ht_up.c'),
|
||||
join_paths('shlr','sdb','src','ht_pp.c'),
|
||||
join_paths('shlr','sdb','src','ht_pu.c'),
|
||||
join_paths('shlr','sdb','src','journal.c'),
|
||||
join_paths('shlr','sdb','src','json.c'),
|
||||
join_paths('shlr','sdb','src','lock.c'),
|
||||
join_paths('shlr','sdb','src','ls.c'),
|
||||
join_paths('shlr','sdb','src','match.c'),
|
||||
join_paths('shlr','sdb','src','ns.c'),
|
||||
join_paths('shlr','sdb','src','num.c'),
|
||||
join_paths('shlr','sdb','src','query.c'),
|
||||
join_paths('shlr','sdb','src','sdb.c'),
|
||||
join_paths('shlr','sdb','src','sdbht.c'),
|
||||
join_paths('shlr','sdb','src','util.c'),
|
||||
join_paths('shlr','sdb','src','text.c')
|
||||
'shlr/sdb/src/array.c',
|
||||
'shlr/sdb/src/base64.c',
|
||||
'shlr/sdb/src/buffer.c',
|
||||
'shlr/sdb/src/set.c',
|
||||
'shlr/sdb/src/cdb.c',
|
||||
'shlr/sdb/src/cdb_make.c',
|
||||
'shlr/sdb/src/dict.c',
|
||||
'shlr/sdb/src/diff.c',
|
||||
'shlr/sdb/src/disk.c',
|
||||
'shlr/sdb/src/fmt.c',
|
||||
'shlr/sdb/src/ht_uu.c',
|
||||
'shlr/sdb/src/ht_up.c',
|
||||
'shlr/sdb/src/ht_pp.c',
|
||||
'shlr/sdb/src/ht_pu.c',
|
||||
'shlr/sdb/src/journal.c',
|
||||
'shlr/sdb/src/json.c',
|
||||
'shlr/sdb/src/lock.c',
|
||||
'shlr/sdb/src/ls.c',
|
||||
'shlr/sdb/src/match.c',
|
||||
'shlr/sdb/src/ns.c',
|
||||
'shlr/sdb/src/num.c',
|
||||
'shlr/sdb/src/query.c',
|
||||
'shlr/sdb/src/sdb.c',
|
||||
'shlr/sdb/src/sdbht.c',
|
||||
'shlr/sdb/src/util.c',
|
||||
'shlr/sdb/src/text.c'
|
||||
]
|
||||
|
||||
sdb_inc = [platform_inc, include_directories(join_paths('shlr','sdb','src'))]
|
||||
@ -506,22 +471,22 @@ endif
|
||||
run_command(py3_exe, '-c', 'with open("shlr/sdb/src/sdb_version.h", "w") as f: f.write("#define SDB_VERSION \"' + sdb_version + '\"")')
|
||||
|
||||
sdb_inc_files = [
|
||||
join_paths('shlr','sdb','src','buffer.h'),
|
||||
join_paths('shlr','sdb','src','cdb.h'),
|
||||
join_paths('shlr','sdb','src','set.h'),
|
||||
join_paths('shlr','sdb','src','cdb_make.h'),
|
||||
join_paths('shlr','sdb','src','config.h'),
|
||||
join_paths('shlr','sdb','src','dict.h'),
|
||||
join_paths('shlr','sdb','src','ht_inc.h'),
|
||||
join_paths('shlr','sdb','src','ht_pp.h'),
|
||||
join_paths('shlr','sdb','src','ht_up.h'),
|
||||
join_paths('shlr','sdb','src','ht_uu.h'),
|
||||
join_paths('shlr','sdb','src','ht_pu.h'),
|
||||
join_paths('shlr','sdb','src','ls.h'),
|
||||
join_paths('shlr','sdb','src','sdb.h'),
|
||||
join_paths('shlr','sdb','src','sdbht.h'),
|
||||
join_paths('shlr','sdb','src','sdb_version.h'),
|
||||
join_paths('shlr','sdb','src','types.h')
|
||||
'shlr/sdb/src/buffer.h',
|
||||
'shlr/sdb/src/cdb.h',
|
||||
'shlr/sdb/src/set.h',
|
||||
'shlr/sdb/src/cdb_make.h',
|
||||
'shlr/sdb/src/config.h',
|
||||
'shlr/sdb/src/dict.h',
|
||||
'shlr/sdb/src/ht_inc.h',
|
||||
'shlr/sdb/src/ht_pp.h',
|
||||
'shlr/sdb/src/ht_up.h',
|
||||
'shlr/sdb/src/ht_uu.h',
|
||||
'shlr/sdb/src/ht_pu.h',
|
||||
'shlr/sdb/src/ls.h',
|
||||
'shlr/sdb/src/sdb.h',
|
||||
'shlr/sdb/src/sdbht.h',
|
||||
'shlr/sdb/src/sdb_version.h',
|
||||
'shlr/sdb/src/types.h'
|
||||
]
|
||||
install_headers(sdb_inc_files, install_dir: join_paths(r2_incdir, 'sdb'))
|
||||
|
||||
@ -536,9 +501,9 @@ sdb_dep = declare_dependency(
|
||||
include_directories: sdb_inc
|
||||
)
|
||||
|
||||
sdb_exe = executable('sdb', [join_paths('shlr','sdb','src','main.c')] + sdb_files,
|
||||
sdb_exe = executable('sdb', ['shlr/sdb/src/main.c'] + sdb_files,
|
||||
include_directories: [
|
||||
include_directories([join_paths('shlr','sdb','src')])
|
||||
include_directories('shlr/sdb/src')
|
||||
],
|
||||
implicit_include_directories: false,
|
||||
native: true,
|
||||
@ -562,7 +527,7 @@ sdb_gen_cmd = [
|
||||
|
||||
# handle spp dependency
|
||||
spp_files = [
|
||||
join_paths('shlr','spp','spp.c')
|
||||
'shlr/spp/spp.c'
|
||||
]
|
||||
|
||||
spp_inc = [platform_inc, include_directories(join_paths('shlr','spp'))]
|
||||
@ -586,6 +551,9 @@ endif
|
||||
if get_option('b_sanitize').contains('undefined')
|
||||
pkgcfg_sanitize_libs += ' -lubsan'
|
||||
endif
|
||||
if get_option('b_sanitize').contains('thread')
|
||||
pkgcfg_sanitize_libs += ' -fsanitize=thread'
|
||||
endif
|
||||
|
||||
rpath_exe = ''
|
||||
rpath_lib = ''
|
||||
@ -618,43 +586,12 @@ subdir('libr/egg')
|
||||
subdir('libr/fs')
|
||||
subdir('libr/debug')
|
||||
subdir('libr/core')
|
||||
|
||||
# subdir(join_paths('libr','anal','d'))
|
||||
# subdir(join_paths('libr','asm','d'))
|
||||
#subdir(join_paths('libr','bin','d'))
|
||||
# subdir(join_paths('libr','syscall','d'))
|
||||
subdir('libr/cons/d')
|
||||
subdir('libr/magic/d')
|
||||
subdir('libr/flag/d')
|
||||
subdir('libr/main')
|
||||
|
||||
cli_option = get_option('cli')
|
||||
if cli_option.auto()
|
||||
cli_enabled = not meson.is_subproject()
|
||||
else
|
||||
cli_enabled = cli_option.enabled()
|
||||
endif
|
||||
if cli_enabled
|
||||
if get_option('blob')
|
||||
subdir('binr/blob')
|
||||
else
|
||||
subdir('binr/rahash2')
|
||||
subdir('binr/rarun2')
|
||||
subdir('binr/rasm2')
|
||||
subdir('binr/rabin2')
|
||||
subdir('binr/radare2')
|
||||
subdir('binr/ragg2')
|
||||
subdir('binr/r2agent')
|
||||
subdir('binr/radiff2')
|
||||
subdir('binr/rafind2')
|
||||
subdir('binr/rasign2')
|
||||
subdir('binr/ravc2')
|
||||
subdir('binr/rax2')
|
||||
endif
|
||||
subdir('binr/r2pm')
|
||||
subdir('binr/r2r')
|
||||
endif
|
||||
|
||||
subdir('binr')
|
||||
if meson.is_subproject()
|
||||
libr2_dep = declare_dependency(
|
||||
dependencies: [
|
||||
@ -682,13 +619,13 @@ if meson.is_subproject()
|
||||
r_syscall_dep,
|
||||
r_util_dep
|
||||
],
|
||||
include_directories: include_directories('.', join_paths('libr','include')),
|
||||
include_directories: include_directories('.', 'libr/include'),
|
||||
version: r2_version
|
||||
)
|
||||
endif
|
||||
|
||||
if get_option('use_webui')
|
||||
install_subdir(join_paths('shlr','www'),
|
||||
install_subdir('shlr/www',
|
||||
install_dir: r2_wwwroot,
|
||||
strip_directory: true
|
||||
)
|
||||
@ -697,27 +634,27 @@ endif
|
||||
subdir('test/unit')
|
||||
|
||||
install_data(
|
||||
join_paths('doc','fortunes.fun'),
|
||||
join_paths('doc','fortunes.tips'),
|
||||
'doc/fortunes.fun',
|
||||
'doc/fortunes.tips',
|
||||
install_dir: r2_fortunes
|
||||
)
|
||||
|
||||
if cli_enabled
|
||||
install_man(
|
||||
join_paths('man','r2agent.1'),
|
||||
join_paths('man','r2-docker.1'),
|
||||
join_paths('man','r2pm.1'),
|
||||
join_paths('man','rabin2.1'),
|
||||
join_paths('man','radare2.1'),
|
||||
join_paths('man','radiff2.1'),
|
||||
join_paths('man','rafind2.1'),
|
||||
join_paths('man','ragg2.1'),
|
||||
join_paths('man','rahash2.1'),
|
||||
join_paths('man','rarun2.1'),
|
||||
join_paths('man','rasm2.1'),
|
||||
join_paths('man','rax2.1'),
|
||||
join_paths('man','ravc2.1'),
|
||||
join_paths('man','esil.7')
|
||||
'man/r2agent.1',
|
||||
'man/r2-docker.1',
|
||||
'man/r2pm.1',
|
||||
'man/rabin2.1',
|
||||
'man/radare2.1',
|
||||
'man/radiff2.1',
|
||||
'man/rafind2.1',
|
||||
'man/ragg2.1',
|
||||
'man/rahash2.1',
|
||||
'man/rarun2.1',
|
||||
'man/rasm2.1',
|
||||
'man/rax2.1',
|
||||
'man/ravc2.1',
|
||||
'man/esil.7'
|
||||
)
|
||||
|
||||
install_data('doc/hud',
|
||||
@ -726,19 +663,19 @@ if cli_enabled
|
||||
)
|
||||
|
||||
install_data(
|
||||
join_paths('doc','zsh','_r2'),
|
||||
join_paths('doc','zsh','_rabin2'),
|
||||
join_paths('doc','zsh','_radiff2'),
|
||||
join_paths('doc','zsh','_rafind2'),
|
||||
join_paths('doc','zsh','_ragg2'),
|
||||
join_paths('doc','zsh','_rahash2'),
|
||||
join_paths('doc','zsh','_rasm2'),
|
||||
join_paths('doc','zsh','_rax2'),
|
||||
'doc/zsh/_r2',
|
||||
'doc/zsh/_rabin2',
|
||||
'doc/zsh/_radiff2',
|
||||
'doc/zsh/_rafind2',
|
||||
'doc/zsh/_ragg2',
|
||||
'doc/zsh/_rahash2',
|
||||
'doc/zsh/_rasm2',
|
||||
'doc/zsh/_rax2',
|
||||
install_dir: r2_zsh_compdir
|
||||
)
|
||||
|
||||
if host_machine.system() == 'windows'
|
||||
meson.add_install_script(join_paths('sys','create_r2.bat'))
|
||||
meson.add_install_script('sys/create_r2.bat')
|
||||
else
|
||||
meson.add_install_script('sys/create_r2.sh')
|
||||
endif
|
||||
|
@ -39,13 +39,12 @@ option('use_sys_openssl', type: 'boolean', value: false)
|
||||
option('static_sys_openssl', type: 'boolean', value: false)
|
||||
option('use_libuv', type: 'boolean', value: true)
|
||||
option('use_fork', type: 'boolean', value: true)
|
||||
option('sdb_cgen', type: 'boolean', value: true)
|
||||
# host_machine.system() != 'windows')
|
||||
option('sdb_cgen', type: 'boolean', value: false)
|
||||
option('use_dylink', type: 'boolean', value: true)
|
||||
option('debugger', type: 'boolean', value: true)
|
||||
option('want_ptrace_wrap', type: 'boolean', value: true)
|
||||
option('nogpl', type: 'boolean', value: false)
|
||||
|
||||
option('use_webui', type: 'boolean', value: false, description: 'install different WebUIs for radare2')
|
||||
|
||||
option('use_webui', type: 'boolean', value: 'true', description: 'install different WebUIs for radare2')
|
||||
option('enable_tests', type: 'boolean', value: true, description: 'Build unit tests in test/unit')
|
||||
option('enable_r2r', type: 'boolean', value: true, description: 'Build r2r executable for regression ')
|
||||
|
@ -35,7 +35,9 @@ if %ERRORLEVEL% == 0 (
|
||||
if %ERRORLEVEL% == 0 (
|
||||
echo FOUND
|
||||
) else (
|
||||
pip install -UI pip meson ninja
|
||||
pip install -UI pip ninja
|
||||
REM meson==0.59.1
|
||||
pip install git+https://github.com/frida/meson.git@f7f25b19a8d71cebf8e2934733eb041eb6862eee
|
||||
preconfigure.bat
|
||||
exit /b 0
|
||||
)
|
||||
|
331
shlr/meson.build
331
shlr/meson.build
@ -69,42 +69,42 @@ if not capstone_dep.found() or not get_option('use_sys_capstone')
|
||||
endif
|
||||
|
||||
rel_cs_files = [
|
||||
join_paths('arch','AArch64','AArch64BaseInfo.c'),
|
||||
join_paths('arch','AArch64','AArch64Disassembler.c'),
|
||||
join_paths('arch','AArch64','AArch64InstPrinter.c'),
|
||||
join_paths('arch','AArch64','AArch64Mapping.c'),
|
||||
join_paths('arch','AArch64','AArch64Module.c'),
|
||||
join_paths('arch','ARM','ARMDisassembler.c'),
|
||||
join_paths('arch','ARM','ARMInstPrinter.c'),
|
||||
join_paths('arch','ARM','ARMMapping.c'),
|
||||
join_paths('arch','ARM','ARMModule.c'),
|
||||
join_paths('arch','Mips','MipsDisassembler.c'),
|
||||
join_paths('arch','Mips','MipsInstPrinter.c'),
|
||||
join_paths('arch','Mips','MipsMapping.c'),
|
||||
join_paths('arch','Mips','MipsModule.c'),
|
||||
join_paths('arch','PowerPC','PPCDisassembler.c'),
|
||||
join_paths('arch','PowerPC','PPCInstPrinter.c'),
|
||||
join_paths('arch','PowerPC','PPCMapping.c'),
|
||||
join_paths('arch','PowerPC','PPCModule.c'),
|
||||
join_paths('arch','Sparc','SparcDisassembler.c'),
|
||||
join_paths('arch','Sparc','SparcInstPrinter.c'),
|
||||
join_paths('arch','Sparc','SparcMapping.c'),
|
||||
join_paths('arch','Sparc','SparcModule.c'),
|
||||
join_paths('arch','SystemZ','SystemZDisassembler.c'),
|
||||
join_paths('arch','SystemZ','SystemZInstPrinter.c'),
|
||||
join_paths('arch','SystemZ','SystemZMapping.c'),
|
||||
join_paths('arch','SystemZ','SystemZMCTargetDesc.c'),
|
||||
join_paths('arch','SystemZ','SystemZModule.c'),
|
||||
join_paths('arch','X86','X86ATTInstPrinter.c'),
|
||||
join_paths('arch','X86','X86Disassembler.c'),
|
||||
join_paths('arch','X86','X86DisassemblerDecoder.c'),
|
||||
join_paths('arch','X86','X86IntelInstPrinter.c'),
|
||||
join_paths('arch','X86','X86Mapping.c'),
|
||||
join_paths('arch','X86','X86Module.c'),
|
||||
join_paths('arch','XCore','XCoreDisassembler.c'),
|
||||
join_paths('arch','XCore','XCoreInstPrinter.c'),
|
||||
join_paths('arch','XCore','XCoreMapping.c'),
|
||||
join_paths('arch','XCore','XCoreModule.c'),
|
||||
'arch/AArch64/AArch64BaseInfo.c',
|
||||
'arch/AArch64/AArch64Disassembler.c',
|
||||
'arch/AArch64/AArch64InstPrinter.c',
|
||||
'arch/AArch64/AArch64Mapping.c',
|
||||
'arch/AArch64/AArch64Module.c',
|
||||
'arch/ARM/ARMDisassembler.c',
|
||||
'arch/ARM/ARMInstPrinter.c',
|
||||
'arch/ARM/ARMMapping.c',
|
||||
'arch/ARM/ARMModule.c',
|
||||
'arch/Mips/MipsDisassembler.c',
|
||||
'arch/Mips/MipsInstPrinter.c',
|
||||
'arch/Mips/MipsMapping.c',
|
||||
'arch/Mips/MipsModule.c',
|
||||
'arch/PowerPC/PPCDisassembler.c',
|
||||
'arch/PowerPC/PPCInstPrinter.c',
|
||||
'arch/PowerPC/PPCMapping.c',
|
||||
'arch/PowerPC/PPCModule.c',
|
||||
'arch/Sparc/SparcDisassembler.c',
|
||||
'arch/Sparc/SparcInstPrinter.c',
|
||||
'arch/Sparc/SparcMapping.c',
|
||||
'arch/Sparc/SparcModule.c',
|
||||
'arch/SystemZ/SystemZDisassembler.c',
|
||||
'arch/SystemZ/SystemZInstPrinter.c',
|
||||
'arch/SystemZ/SystemZMapping.c',
|
||||
'arch/SystemZ/SystemZMCTargetDesc.c',
|
||||
'arch/SystemZ/SystemZModule.c',
|
||||
'arch/X86/X86ATTInstPrinter.c',
|
||||
'arch/X86/X86Disassembler.c',
|
||||
'arch/X86/X86DisassemblerDecoder.c',
|
||||
'arch/X86/X86IntelInstPrinter.c',
|
||||
'arch/X86/X86Mapping.c',
|
||||
'arch/X86/X86Module.c',
|
||||
'arch/XCore/XCoreDisassembler.c',
|
||||
'arch/XCore/XCoreInstPrinter.c',
|
||||
'arch/XCore/XCoreMapping.c',
|
||||
'arch/XCore/XCoreModule.c',
|
||||
'cs.c',
|
||||
'MCInst.c',
|
||||
'MCInstrDesc.c',
|
||||
@ -113,24 +113,24 @@ if not capstone_dep.found() or not get_option('use_sys_capstone')
|
||||
'utils.c',
|
||||
]
|
||||
rel_cs4_files = [
|
||||
join_paths('arch','M680X','M680XDisassembler.c'),
|
||||
join_paths('arch','M680X','M680XInstPrinter.c'),
|
||||
join_paths('arch','M680X','M680XModule.c'),
|
||||
join_paths('arch','M68K','M68KDisassembler.c'),
|
||||
join_paths('arch','M68K','M68KInstPrinter.c'),
|
||||
join_paths('arch','M68K','M68KModule.c'),
|
||||
join_paths('arch','TMS320C64x','TMS320C64xDisassembler.c'),
|
||||
join_paths('arch','TMS320C64x','TMS320C64xInstPrinter.c'),
|
||||
join_paths('arch','TMS320C64x','TMS320C64xMapping.c'),
|
||||
join_paths('arch','TMS320C64x','TMS320C64xModule.c'),
|
||||
'arch/M680X/M680XDisassembler.c',
|
||||
'arch/M680X/M680XInstPrinter.c',
|
||||
'arch/M680X/M680XModule.c',
|
||||
'arch/M68K/M68KDisassembler.c',
|
||||
'arch/M68K/M68KInstPrinter.c',
|
||||
'arch/M68K/M68KModule.c',
|
||||
'arch/TMS320C64x/TMS320C64xDisassembler.c',
|
||||
'arch/TMS320C64x/TMS320C64xInstPrinter.c',
|
||||
'arch/TMS320C64x/TMS320C64xMapping.c',
|
||||
'arch/TMS320C64x/TMS320C64xModule.c',
|
||||
]
|
||||
rel_cs5_files = [
|
||||
join_paths('arch','X86','X86InstPrinterCommon.c'),
|
||||
'arch/X86/X86InstPrinterCommon.c',
|
||||
# Add riscv files
|
||||
join_paths('arch','RISCV','RISCVMapping.c'),
|
||||
join_paths('arch','RISCV','RISCVModule.c'),
|
||||
join_paths('arch','RISCV','RISCVInstPrinter.c'),
|
||||
join_paths('arch','RISCV','RISCVDisassembler.c')
|
||||
'arch/RISCV/RISCVMapping.c',
|
||||
'arch/RISCV/RISCVModule.c',
|
||||
'arch/RISCV/RISCVInstPrinter.c',
|
||||
'arch/RISCV/RISCVDisassembler.c'
|
||||
]
|
||||
|
||||
user_plugins = get_option('plugins').split(',')
|
||||
@ -230,10 +230,10 @@ bochs_dep = declare_dependency(
|
||||
|
||||
# handle java dependency
|
||||
java_files = [
|
||||
join_paths('java','class.c'),
|
||||
join_paths('java','code.c'),
|
||||
join_paths('java','dsojson.c'),
|
||||
join_paths('java','ops.c'),
|
||||
'java/class.c',
|
||||
'java/code.c',
|
||||
'java/dsojson.c',
|
||||
'java/ops.c',
|
||||
#'java/main.c',
|
||||
]
|
||||
|
||||
@ -253,14 +253,14 @@ java_dep = declare_dependency(
|
||||
|
||||
# handle qnx dependency
|
||||
qnx_files = [
|
||||
join_paths('qnx','src','core.c'),
|
||||
join_paths('qnx','src','libqnxr.c'),
|
||||
join_paths('qnx','src','packet.c'),
|
||||
join_paths('qnx','src','sigutil.c'),
|
||||
join_paths('qnx','src','utils.c'),
|
||||
'qnx/src/core.c',
|
||||
'qnx/src/libqnxr.c',
|
||||
'qnx/src/packet.c',
|
||||
'qnx/src/sigutil.c',
|
||||
'qnx/src/utils.c',
|
||||
]
|
||||
|
||||
qnx_inc = [platform_inc, include_directories(join_paths('qnx','include'))]
|
||||
qnx_inc = [platform_inc, include_directories('qnx/include')]
|
||||
|
||||
libr2qnx = static_library('r2qnx', qnx_files,
|
||||
dependencies: [r_socket_dep],
|
||||
@ -273,7 +273,6 @@ qnx_dep = declare_dependency(
|
||||
include_directories: qnx_inc
|
||||
)
|
||||
|
||||
|
||||
# handle lz4 dependency (unused?)
|
||||
lz4_dep = dependency('liblz4', required: false)
|
||||
if not lz4_dep.found() or not get_option('use_sys_lz4')
|
||||
@ -298,112 +297,6 @@ else
|
||||
endif
|
||||
|
||||
|
||||
# handle zip dependency
|
||||
zip_dep = dependency('libzip', required: false)
|
||||
if not zip_dep.found() or not get_option('use_sys_zip')
|
||||
message('Use bundled zip')
|
||||
|
||||
zip_files = [
|
||||
join_paths('zip','zip','zip_add.c'),
|
||||
join_paths('zip','zip','zip_add_dir.c'),
|
||||
join_paths('zip','zip','zip_add_entry.c'),
|
||||
join_paths('zip','zip','zip_close.c'),
|
||||
join_paths('zip','zip','zip_delete.c'),
|
||||
join_paths('zip','zip','zip_dir_add.c'),
|
||||
join_paths('zip','zip','zip_dirent.c'),
|
||||
join_paths('zip','zip','zip_discard.c'),
|
||||
join_paths('zip','zip','zip_entry.c'),
|
||||
join_paths('zip','zip','zip_err_str.c'),
|
||||
join_paths('zip','zip','zip_error.c'),
|
||||
#join_paths('zip','zip','zip_error_clear.c'),
|
||||
join_paths('zip','zip','zip_error_get.c'),
|
||||
join_paths('zip','zip','zip_error_get_sys_type.c'),
|
||||
join_paths('zip','zip','zip_error_strerror.c'),
|
||||
join_paths('zip','zip','zip_error_to_str.c'),
|
||||
join_paths('zip','zip','zip_extra_field.c'),
|
||||
join_paths('zip','zip','zip_extra_field_api.c'),
|
||||
join_paths('zip','zip','zip_fclose.c'),
|
||||
join_paths('zip','zip','zip_fdopen.c'),
|
||||
join_paths('zip','zip','zip_file_add.c'),
|
||||
#join_paths('zip','zip','zip_file_error_clear.c'),
|
||||
join_paths('zip','zip','zip_file_error_get.c'),
|
||||
join_paths('zip','zip','zip_file_get_comment.c'),
|
||||
join_paths('zip','zip','zip_file_get_offset.c'),
|
||||
join_paths('zip','zip','zip_file_rename.c'),
|
||||
join_paths('zip','zip','zip_file_replace.c'),
|
||||
join_paths('zip','zip','zip_file_set_comment.c'),
|
||||
join_paths('zip','zip','zip_file_strerror.c'),
|
||||
join_paths('zip','zip','zip_filerange_crc.c'),
|
||||
join_paths('zip','zip','zip_fopen.c'),
|
||||
join_paths('zip','zip','zip_fopen_encrypted.c'),
|
||||
join_paths('zip','zip','zip_fopen_index.c'),
|
||||
join_paths('zip','zip','zip_fopen_index_encrypted.c'),
|
||||
join_paths('zip','zip','zip_fread.c'),
|
||||
join_paths('zip','zip','zip_get_archive_comment.c'),
|
||||
join_paths('zip','zip','zip_get_archive_flag.c'),
|
||||
join_paths('zip','zip','zip_get_compression_implementation.c'),
|
||||
join_paths('zip','zip','zip_get_encryption_implementation.c'),
|
||||
join_paths('zip','zip','zip_get_file_comment.c'),
|
||||
join_paths('zip','zip','zip_get_name.c'),
|
||||
join_paths('zip','zip','zip_get_num_entries.c'),
|
||||
join_paths('zip','zip','zip_get_num_files.c'),
|
||||
join_paths('zip','zip','zip_name_locate.c'),
|
||||
join_paths('zip','zip','zip_new.c'),
|
||||
join_paths('zip','zip','zip_open.c'),
|
||||
join_paths('zip','zip','zip_rename.c'),
|
||||
join_paths('zip','zip','zip_replace.c'),
|
||||
join_paths('zip','zip','zip_set_archive_comment.c'),
|
||||
join_paths('zip','zip','zip_set_archive_flag.c'),
|
||||
join_paths('zip','zip','zip_set_default_password.c'),
|
||||
join_paths('zip','zip','zip_set_file_comment.c'),
|
||||
join_paths('zip','zip','zip_set_file_compression.c'),
|
||||
join_paths('zip','zip','zip_set_name.c'),
|
||||
join_paths('zip','zip','zip_source_buffer.c'),
|
||||
join_paths('zip','zip','zip_source_close.c'),
|
||||
join_paths('zip','zip','zip_source_crc.c'),
|
||||
join_paths('zip','zip','zip_source_deflate.c'),
|
||||
join_paths('zip','zip','zip_source_error.c'),
|
||||
join_paths('zip','zip','zip_source_file.c'),
|
||||
join_paths('zip','zip','zip_source_filep.c'),
|
||||
join_paths('zip','zip','zip_source_free.c'),
|
||||
join_paths('zip','zip','zip_source_function.c'),
|
||||
join_paths('zip','zip','zip_source_layered.c'),
|
||||
join_paths('zip','zip','zip_source_open.c'),
|
||||
join_paths('zip','zip','zip_source_pkware.c'),
|
||||
join_paths('zip','zip','zip_source_pop.c'),
|
||||
join_paths('zip','zip','zip_source_read.c'),
|
||||
join_paths('zip','zip','zip_source_stat.c'),
|
||||
join_paths('zip','zip','zip_source_window.c'),
|
||||
join_paths('zip','zip','zip_source_zip.c'),
|
||||
join_paths('zip','zip','zip_source_zip_new.c'),
|
||||
join_paths('zip','zip','zip_stat.c'),
|
||||
join_paths('zip','zip','zip_stat_index.c'),
|
||||
join_paths('zip','zip','zip_stat_init.c'),
|
||||
join_paths('zip','zip','zip_strerror.c'),
|
||||
join_paths('zip','zip','zip_string.c'),
|
||||
join_paths('zip','zip','zip_unchange.c'),
|
||||
join_paths('zip','zip','zip_unchange_all.c'),
|
||||
join_paths('zip','zip','zip_unchange_archive.c'),
|
||||
join_paths('zip','zip','zip_unchange_data.c'),
|
||||
join_paths('zip','zip','zip_utf-8.c')
|
||||
]
|
||||
|
||||
zip_inc = [platform_inc, include_directories('zip/include')]
|
||||
|
||||
libr2zip = static_library('r2zip', zip_files,
|
||||
include_directories: zip_inc,
|
||||
implicit_include_directories: false,
|
||||
dependencies: zlib_dep
|
||||
)
|
||||
|
||||
zip_dep = declare_dependency(
|
||||
link_with: libr2zip,
|
||||
include_directories: zip_inc
|
||||
)
|
||||
else
|
||||
message('Use system-provided zip library')
|
||||
endif
|
||||
|
||||
|
||||
# handle grub dependency
|
||||
grub_files = [
|
||||
@ -413,52 +306,52 @@ grub_files = [
|
||||
#'grub/fs/befs.c',
|
||||
#'grub/fs/befs_be.c',
|
||||
#'grub/fs/btrfs.c',
|
||||
join_paths('grub','fs','cpio.c'),
|
||||
join_paths('grub','fs','ext2.c'),
|
||||
join_paths('grub','fs','fat.c'),
|
||||
join_paths('grub','fs','fb.c'),
|
||||
join_paths('grub','fs','fshelp.c'),
|
||||
join_paths('grub','fs','hfs.c'),
|
||||
join_paths('grub','fs','hfsplus.c'),
|
||||
join_paths('grub','fs','iso9660.c'),
|
||||
join_paths('grub','fs','jfs.c'),
|
||||
join_paths('grub','fs','minix.c'),
|
||||
#join_paths('grub','fs','minix2.c'),
|
||||
#join_paths('grub','fs','nilfs2.c'),
|
||||
join_paths('grub','fs','ntfs.c'),
|
||||
join_paths('grub','fs','ntfscomp.c'),
|
||||
join_paths('grub','fs','reiserfs.c'),
|
||||
join_paths('grub','fs','sfs.c'),
|
||||
join_paths('grub','fs','tar.c'),
|
||||
join_paths('grub','fs','udf.c'),
|
||||
join_paths('grub','fs','ufs.c'),
|
||||
join_paths('grub','fs','ufs2.c'),
|
||||
join_paths('grub','fs','xfs.c'),
|
||||
join_paths('grub','grubfs.c'),
|
||||
join_paths('grub','kern','device.c'),
|
||||
join_paths('grub','kern','disk.c'),
|
||||
join_paths('grub','kern','env.c'),
|
||||
join_paths('grub','kern','err.c'),
|
||||
join_paths('grub','kern','file.c'),
|
||||
join_paths('grub','kern','fs.c'),
|
||||
join_paths('grub','kern','list.c'),
|
||||
join_paths('grub','kern','misc.c'),
|
||||
join_paths('grub','kern','mm.c'),
|
||||
join_paths('grub','kern','partition.c'),
|
||||
join_paths('grub','kern','term.c'),
|
||||
join_paths('grub','kern','time.c'),
|
||||
#join_paths('grub','main.c'),
|
||||
#join_paths('grub','partmap','acorn.c'),
|
||||
join_paths('grub','partmap','amiga.c'),
|
||||
join_paths('grub','partmap','apple.c'),
|
||||
join_paths('grub','partmap','bsdlabel.c'),
|
||||
join_paths('grub','partmap','gpt.c'),
|
||||
join_paths('grub','partmap','msdos.c'),
|
||||
join_paths('grub','partmap','sun.c'),
|
||||
join_paths('grub','partmap','sunpc.c'),
|
||||
'grub/fs/cpio.c',
|
||||
'grub/fs/ext2.c',
|
||||
'grub/fs/fat.c',
|
||||
'grub/fs/fb.c',
|
||||
'grub/fs/fshelp.c',
|
||||
'grub/fs/hfs.c',
|
||||
'grub/fs/hfsplus.c',
|
||||
'grub/fs/iso9660.c',
|
||||
'grub/fs/jfs.c',
|
||||
'grub/fs/minix.c',
|
||||
#'grub/fs/minix2.c',
|
||||
#'grub/fs/nilfs2.c',
|
||||
'grub/fs/ntfs.c',
|
||||
'grub/fs/ntfscomp.c',
|
||||
'grub/fs/reiserfs.c',
|
||||
'grub/fs/sfs.c',
|
||||
'grub/fs/tar.c',
|
||||
'grub/fs/udf.c',
|
||||
'grub/fs/ufs.c',
|
||||
'grub/fs/ufs2.c',
|
||||
'grub/fs/xfs.c',
|
||||
'grub/grubfs.c',
|
||||
'grub/kern/device.c',
|
||||
'grub/kern/disk.c',
|
||||
'grub/kern/env.c',
|
||||
'grub/kern/err.c',
|
||||
'grub/kern/file.c',
|
||||
'grub/kern/fs.c',
|
||||
'grub/kern/list.c',
|
||||
'grub/kern/misc.c',
|
||||
'grub/kern/mm.c',
|
||||
'grub/kern/partition.c',
|
||||
'grub/kern/term.c',
|
||||
'grub/kern/time.c',
|
||||
#'grub/main.c',
|
||||
#'grub/partmap/acorn.c',
|
||||
'grub/partmap/amiga.c',
|
||||
'grub/partmap/apple.c',
|
||||
'grub/partmap/bsdlabel.c',
|
||||
'grub/partmap/gpt.c',
|
||||
'grub/partmap/msdos.c',
|
||||
'grub/partmap/sun.c',
|
||||
'grub/partmap/sunpc.c',
|
||||
]
|
||||
|
||||
grub_inc = [platform_inc, include_directories('grub', join_paths('grub','include'))]
|
||||
grub_inc = [platform_inc, include_directories('grub', 'grub/include')]
|
||||
|
||||
libr2grub = static_library('r2grub', grub_files,
|
||||
dependencies: [r_util_dep],
|
||||
@ -473,11 +366,11 @@ grub_dep = declare_dependency(
|
||||
|
||||
# handle winkd dependency
|
||||
winkd_files = [
|
||||
join_paths('winkd','iob_pipe.c'),
|
||||
join_paths('winkd','iob_net.c'),
|
||||
join_paths('winkd','kd.c'),
|
||||
join_paths('winkd','transport.c'),
|
||||
join_paths('winkd','winkd.c'),
|
||||
'winkd/iob_pipe.c',
|
||||
'winkd/iob_net.c',
|
||||
'winkd/kd.c',
|
||||
'winkd/transport.c',
|
||||
'winkd/winkd.c',
|
||||
]
|
||||
|
||||
winkd_inc = [platform_inc, include_directories('winkd')]
|
||||
@ -514,7 +407,7 @@ ar_dep = declare_dependency(
|
||||
|
||||
# handle mpc dependency
|
||||
mpc_files = [
|
||||
join_paths('mpc','mpc.c')
|
||||
'mpc/mpc.c'
|
||||
]
|
||||
|
||||
mpc_inc = [platform_inc, include_directories(['mpc'])]
|
||||
@ -531,7 +424,7 @@ mpc_dep = declare_dependency(
|
||||
|
||||
# handle yxml dependency
|
||||
yxml_files = [
|
||||
join_paths('yxml','yxml.c')
|
||||
'yxml/yxml.c'
|
||||
]
|
||||
|
||||
yxml_inc = [platform_inc, include_directories(['yxml'])]
|
||||
|
144
shlr/zip/meson.build
Normal file
144
shlr/zip/meson.build
Normal file
@ -0,0 +1,144 @@
|
||||
# handle zlib dependency
|
||||
zlib_dep = dependency('zlib', required: false)
|
||||
if not zlib_dep.found() or not get_option('use_sys_zlib')
|
||||
message('Use bundled zlib')
|
||||
|
||||
zlib_files = [
|
||||
join_paths('zlib','adler32.c'),
|
||||
join_paths('zlib','compress.c'),
|
||||
join_paths('zlib','crc32.c'),
|
||||
join_paths('zlib','deflate.c'),
|
||||
join_paths('zlib','gzclose.c'),
|
||||
join_paths('zlib','gzlib.c'),
|
||||
join_paths('zlib','gzread.c'),
|
||||
join_paths('zlib','gzwrite.c'),
|
||||
join_paths('zlib','infback.c'),
|
||||
join_paths('zlib','inffast.c'),
|
||||
join_paths('zlib','inflate.c'),
|
||||
join_paths('zlib','inftrees.c'),
|
||||
join_paths('zlib','trees.c'),
|
||||
join_paths('zlib','uncompr.c'),
|
||||
join_paths('zlib','zutil.c')
|
||||
]
|
||||
|
||||
zlib_inc = [platform_inc, include_directories(join_paths('zlib'))]
|
||||
|
||||
libr2zlib = static_library('r2zlib', zlib_files,
|
||||
include_directories: zlib_inc,
|
||||
implicit_include_directories: false
|
||||
)
|
||||
|
||||
zlib_dep = declare_dependency(
|
||||
link_with: libr2zlib,
|
||||
include_directories: zlib_inc
|
||||
)
|
||||
else
|
||||
message('Use system-provided zlib library')
|
||||
endif
|
||||
|
||||
# handle zip dependency
|
||||
zip_dep = dependency('libzip', required: false)
|
||||
if not zip_dep.found() or not get_option('use_sys_zip')
|
||||
message('Use bundled zip')
|
||||
|
||||
zip_files = [
|
||||
join_paths('zip','zip_add.c'),
|
||||
join_paths('zip','zip_add_dir.c'),
|
||||
join_paths('zip','zip_add_entry.c'),
|
||||
join_paths('zip','zip_close.c'),
|
||||
join_paths('zip','zip_delete.c'),
|
||||
join_paths('zip','zip_dir_add.c'),
|
||||
join_paths('zip','zip_dirent.c'),
|
||||
join_paths('zip','zip_discard.c'),
|
||||
join_paths('zip','zip_entry.c'),
|
||||
join_paths('zip','zip_err_str.c'),
|
||||
join_paths('zip','zip_error.c'),
|
||||
#join_paths('zip','zip_error_clear.c'),
|
||||
join_paths('zip','zip_error_get.c'),
|
||||
join_paths('zip','zip_error_get_sys_type.c'),
|
||||
join_paths('zip','zip_error_strerror.c'),
|
||||
join_paths('zip','zip_error_to_str.c'),
|
||||
join_paths('zip','zip_extra_field.c'),
|
||||
join_paths('zip','zip_extra_field_api.c'),
|
||||
join_paths('zip','zip_fclose.c'),
|
||||
join_paths('zip','zip_fdopen.c'),
|
||||
join_paths('zip','zip_file_add.c'),
|
||||
#join_paths('zip','zip_file_error_clear.c'),
|
||||
join_paths('zip','zip_file_error_get.c'),
|
||||
join_paths('zip','zip_file_get_comment.c'),
|
||||
join_paths('zip','zip_file_get_offset.c'),
|
||||
join_paths('zip','zip_file_rename.c'),
|
||||
join_paths('zip','zip_file_replace.c'),
|
||||
join_paths('zip','zip_file_set_comment.c'),
|
||||
join_paths('zip','zip_file_strerror.c'),
|
||||
join_paths('zip','zip_filerange_crc.c'),
|
||||
join_paths('zip','zip_fopen.c'),
|
||||
join_paths('zip','zip_fopen_encrypted.c'),
|
||||
join_paths('zip','zip_fopen_index.c'),
|
||||
join_paths('zip','zip_fopen_index_encrypted.c'),
|
||||
join_paths('zip','zip_fread.c'),
|
||||
join_paths('zip','zip_get_archive_comment.c'),
|
||||
join_paths('zip','zip_get_archive_flag.c'),
|
||||
join_paths('zip','zip_get_compression_implementation.c'),
|
||||
join_paths('zip','zip_get_encryption_implementation.c'),
|
||||
join_paths('zip','zip_get_file_comment.c'),
|
||||
join_paths('zip','zip_get_name.c'),
|
||||
join_paths('zip','zip_get_num_entries.c'),
|
||||
join_paths('zip','zip_get_num_files.c'),
|
||||
join_paths('zip','zip_name_locate.c'),
|
||||
join_paths('zip','zip_new.c'),
|
||||
join_paths('zip','zip_open.c'),
|
||||
join_paths('zip','zip_rename.c'),
|
||||
join_paths('zip','zip_replace.c'),
|
||||
join_paths('zip','zip_set_archive_comment.c'),
|
||||
join_paths('zip','zip_set_archive_flag.c'),
|
||||
join_paths('zip','zip_set_default_password.c'),
|
||||
join_paths('zip','zip_set_file_comment.c'),
|
||||
join_paths('zip','zip_set_file_compression.c'),
|
||||
join_paths('zip','zip_set_name.c'),
|
||||
join_paths('zip','zip_source_buffer.c'),
|
||||
join_paths('zip','zip_source_close.c'),
|
||||
join_paths('zip','zip_source_crc.c'),
|
||||
join_paths('zip','zip_source_deflate.c'),
|
||||
join_paths('zip','zip_source_error.c'),
|
||||
join_paths('zip','zip_source_file.c'),
|
||||
join_paths('zip','zip_source_filep.c'),
|
||||
join_paths('zip','zip_source_free.c'),
|
||||
join_paths('zip','zip_source_function.c'),
|
||||
join_paths('zip','zip_source_layered.c'),
|
||||
join_paths('zip','zip_source_open.c'),
|
||||
join_paths('zip','zip_source_pkware.c'),
|
||||
join_paths('zip','zip_source_pop.c'),
|
||||
join_paths('zip','zip_source_read.c'),
|
||||
join_paths('zip','zip_source_stat.c'),
|
||||
join_paths('zip','zip_source_window.c'),
|
||||
join_paths('zip','zip_source_zip.c'),
|
||||
join_paths('zip','zip_source_zip_new.c'),
|
||||
join_paths('zip','zip_stat.c'),
|
||||
join_paths('zip','zip_stat_index.c'),
|
||||
join_paths('zip','zip_stat_init.c'),
|
||||
join_paths('zip','zip_strerror.c'),
|
||||
join_paths('zip','zip_string.c'),
|
||||
join_paths('zip','zip_unchange.c'),
|
||||
join_paths('zip','zip_unchange_all.c'),
|
||||
join_paths('zip','zip_unchange_archive.c'),
|
||||
join_paths('zip','zip_unchange_data.c'),
|
||||
join_paths('zip','zip_utf-8.c')
|
||||
]
|
||||
|
||||
zip_inc = [platform_inc, include_directories('include')]
|
||||
|
||||
libr2zip = static_library('r2zip', zip_files,
|
||||
include_directories: zip_inc,
|
||||
implicit_include_directories: false,
|
||||
dependencies: zlib_dep
|
||||
)
|
||||
|
||||
zip_dep = declare_dependency(
|
||||
link_with: libr2zip,
|
||||
include_directories: zip_inc
|
||||
)
|
||||
else
|
||||
message('Use system-provided zip library')
|
||||
endif
|
||||
|
Loading…
Reference in New Issue
Block a user