project( 'bittorrent', # project name 'c', # project language meson_version: '>= 1.1.0', # meson minimum version version: '1.0.0', # project version default_options: [ 'c_args=-D_GNU_SOURCE', 'c_std=c99', # -std=c99 'debug=true', # -g 'optimization=0', # -O0 'warning_level=2', # -Wall -Wextra 'werror=true', # -Werror 'b_sanitize=address,undefined', # -fsanitize=address,undefined ], ) add_project_arguments('-Wvla', language: 'c') # all .c files mbtbe_CFILES = run_command('find', 'libs/mbtbe/src', '-name', '*.c', '-not', '-path', '*tests*').stdout().split() #message(mbtbe_CFILES) mbtfile_CFILES = run_command('find', 'libs/mbtfile/src', '-name', '*.c', '-not', '-path', '*tests*').stdout().split() #message(mbtfile_CFILES) mbtnet_CFILES = run_command('find', 'libs/mbtnet/src', '-name', '*.c', '-not', '-path', '*tests*').stdout().split() #message(mbtnet_CFILES) mbtutils_CFILES = run_command('find', 'libs/mbtutils/src', '-name', '*.c', '-not', '-path', '*tests*').stdout().split() #message(mbtutils_CFILES) src_CFILES = run_command('find', 'src', '-name', '*.c', '-not', '-path', '*tests*').stdout().split() #message(src_CFILES) # all includes mbtbe_include = [include_directories('libs/mbtbe/include')] mbtfile_include = [include_directories('libs/mbtfile/include')] mbtnet_include = [include_directories('libs/mbtnet/include')] mbtutils_include = [include_directories('libs/mbtutils/include')] #dependencies DEPS = [dependency('libcurl'), dependency('openssl')] mbtutils_dep = declare_dependency(include_directories: mbtutils_include, dependencies: DEPS) mbtbe_dep = declare_dependency(include_directories: mbtbe_include + mbtutils_include, dependencies: DEPS) mbtfile_dep = declare_dependency( include_directories: mbtfile_include + mbtutils_include + mbtbe_include, dependencies: DEPS, ) mbtnet_dep = declare_dependency( include_directories: mbtnet_include + mbtutils_include + mbtbe_include + mbtfile_include, dependencies: DEPS, ) mbtutils = shared_library( 'mbtutils', sources: mbtutils_CFILES, include_directories: mbtutils_include + [include_directories('libs/mbtutils/src')], dependencies: mbtutils_dep, install: true, ) mbtbe = shared_library( 'mbtbe', sources: mbtbe_CFILES + mbtutils_CFILES, include_directories: mbtbe_include + [include_directories('libs/mbtbe/src')] + mbtutils_include, dependencies: mbtbe_dep, install: true, ) mbtfile = shared_library( 'mbtfile', sources: mbtfile_CFILES + mbtutils_CFILES + mbtbe_CFILES, include_directories: mbtfile_include + [include_directories('libs/mbtfile/src')] + mbtutils_include + mbtbe_include, dependencies: mbtfile_dep, install: true, ) mbtnet = shared_library( 'mbtnet', sources: mbtnet_CFILES + mbtutils_CFILES + mbtbe_CFILES + mbtfile_CFILES, include_directories: mbtnet_include + [include_directories('libs/mbtnet/src')] + mbtutils_include + mbtfile_include + mbtbe_include, dependencies: mbtnet_dep, install: true, ) testbe = executable( 'mbt', sources: mbtbe_CFILES + mbtutils_CFILES + mbtnet_CFILES + mbtfile_CFILES + src_CFILES, include_directories: mbtnet_include + mbtutils_include + mbtfile_include + mbtbe_include, dependencies: mbtnet_dep, install: true, )