orotool/subprojects/packagefiles/restc-cpp/meson.build

78 lines
1.9 KiB
Meson

project('restc-cpp', 'cpp',
version: '0.9.2',
meson_version: '>=0.55.0',
default_options: ['cpp_std=gnu++17'],
)
config_template = files('config.h.template')
if get_option('restc_cpp_with_zlib')
zipreaderimpl = files('src/ZipReaderImpl.cpp')
endif
compiler_opts = ['-DBOOST_COROUTINE_NO_DEPRECATION_WARNING=1']
boost_modules = [
'system', 'program_options', 'filesystem', 'date_time',
'context', 'coroutine', 'chrono'
]
if get_option('restc_cpp_log_with_boost_log')
boost_modules += ['log']
endif
thread_dep = dependency('threads')
boost_dep = dependency('boost', modules: boost_modules)
rapidjson_dep = dependency('RapidJSON')
if not get_option('embedded_restc_cpp')
if get_option('restc_cpp_with_zlib')
zlib_dep = dependency('zlib')
endif
if get_option('restc_cpp_with_tls')
tls_dep = dependency('OpenSSL')
endif
endif
pvt_incdir = include_directories('src')
pub_incdir = include_directories('include', 'include')
boost_test_dep = dependency('boost', modules: ['log'], required: get_option('tests'))
subdir('include/restc-cpp')
restc_cpp_target = library(meson.project_name(),
'src/ChunkedReaderImpl.cpp',
'src/ChunkedWriterImpl.cpp',
'src/IoReaderImpl.cpp',
'src/IoWriterImpl.cpp',
'src/PlainReaderImpl.cpp',
'src/PlainWriterImpl.cpp',
'src/NoBodyReaderImpl.cpp',
'src/DataReaderStream.cpp',
'src/RestClientImpl.cpp',
'src/RequestImpl.cpp',
'src/ReplyImpl.cpp',
'src/ConnectionPoolImpl.cpp',
'src/Url.cpp',
'src/RequestBodyStringImpl.cpp',
'src/RequestBodyFileImpl.cpp',
'src/url_encode.cpp',
zipreaderimpl,
install: true,
include_directories: [pvt_incdir, pub_incdir],
dependencies: [
zlib_dep,
tls_dep,
thread_dep,
boost_dep,
rapidjson_dep,
],
cpp_args: compiler_opts,
)
restc_cpp_dep = declare_dependency(
link_with: restc_cpp_target,
include_directories: pub_incdir,
compile_args: compiler_opts,
dependencies: [tls_dep, thread_dep, boost_dep],
)
subdir('tests', if_found: boost_test_dep)