Skip to content
Snippets Groups Projects
Verified Commit badf9278 authored by Nicolas Werner's avatar Nicolas Werner
Browse files

Use cmake for libevent dependency

parent 06f20d2e
No related branches found
No related tags found
1 merge request!2Add wraps for all dependencies
Pipeline #1311 passed
project('coeurl', 'cpp',
version : '0.1',
default_options : ['warning_level=3',
'cpp_std=c++17'])
'cpp_std=c++17'])
deps = [
dependency('threads', required: true),
dependency('libevent_core', required: true),
dependency('libcurl', required: true),
dependency('spdlog', required: true)
]
deps = [
dependency('threads', required: true),
dependency('libcurl', required: true),
dependency('spdlog', required: true)
]
libevent_dep = dependency('libevent_core', required: get_option('wrap_mode') == 'nofallback',)
if target_machine.system() == 'windows'
deps += dependency('libevent_windows', required: true)
libevent_threads_dep = dependency('libevent_windows', required: get_option('wrap_mode') == 'nofallback',)
else
deps += dependency('libevent_pthreads', required: true)
libevent_threads_dep = dependency('libevent_pthreads', required: get_option('wrap_mode') == 'nofallback',)
endif
if (not libevent_dep.found()
or not libevent_threads_dep.found()
or get_option('wrap_mode') == 'forcefallback'
or 'libevent' in get_option('force_fallback_for'))
cmake = import('cmake')
libevent_options = cmake.subproject_options()
libevent_options.add_cmake_defines({
'CMAKE_C_FLAGS': '-fPIC',
'EVENT_LIBRARY_TYPE': 'STATIC',
'BUILD_SHARED_LIBS': false,
'BUILD_SHARED_AND_STATIC_LIBS': false,
'EVENT__DISABLE_OPENSSL': true,
'EVENT__DISABLE_BENCHMARK': true,
})
libevent_options.set_override_option('werror', 'false')
libevent_options.set_override_option('warning_level', '0')
libevent_proj = cmake.subproject('libevent', options: libevent_options)
libevent_dep = libevent_proj.dependency('event_core_static')
if target_machine.system() == 'windows'
# the cmake project links the thread support into the library directly...
libevent_threads_dep = dependency('', required : false)
else
libevent_threads_dep = libevent_proj.dependency('event_pthreads_static')
endif
endif
deps += [libevent_dep, libevent_threads_dep]
include = include_directories('include')
lib = library('coeurl', ['lib/client.cpp', 'lib/request.cpp'],
......@@ -37,11 +67,11 @@ endif
pkg = import('pkgconfig')
pkg.generate(lib,
libraries : [lib],
version : meson.project_version(),
filebase : meson.project_name(),
description : 'Simple library to do http requests asynchronously via CURL in C++.',
url : 'https://nheko.im/nheko-reborn/cocurl')
libraries : [lib],
version : meson.project_version(),
filebase : meson.project_name(),
description : 'Simple library to do http requests asynchronously via CURL in C++.',
url : 'https://nheko.im/nheko-reborn/cocurl')
# No idea how to export working cmake config files, so don't do that for now
#cmake = import('cmake')
......
......@@ -5,10 +5,3 @@ source_url = https://github.com/libevent/libevent/releases/download/release-2.1.
source_filename = libevent-2.1.12-stable.tar.gz
source_hash = 92e6de1be9ec176428fd2367677e61ceffc2ee1cb119035037a27d346b0403bb
patch_directory = libevent-meson
[provide]
libevent_core = libevent_core_dep
libevent_pthreads = libevent_pthreads_dep
libevent_windows = libevent_windows_dep
project('Libevent meson wrapper', 'c',
meson_version : '>=0.57.0',
)
mod = import('unstable_external_project')
p = mod.add_project('configure',
configure_options : [
'--disable-openssl',
],
)
libevent_core_dep = p.dependency('event_core')
if target_machine.system() == 'windows'
libevent_windows_dep = p.dependency('event_pthreads')
else
libevent_pthreads_dep = p.dependency('event_pthreads')
endif
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment