mirror of https://github.com/Nheko-Reborn/nheko
parent
db4b8bc473
commit
cbe41e649e
@ -0,0 +1,4 @@ |
||||
[wrap-git] |
||||
url = https://github.com/Nheko-Reborn/lmdbxx.git |
||||
revision = head |
||||
|
@ -0,0 +1,9 @@ |
||||
[wrap-file] |
||||
directory = lmdb-LMDB_0.9.29 |
||||
|
||||
source_url = https://github.com/LMDB/lmdb/archive/refs/tags/LMDB_0.9.29.tar.gz |
||||
source_filename = lmdb-LMDB_0.9.29.tar.gz |
||||
source_hash = 22054926b426c66d8f2bc22071365df6e35f3aacf19ad943bc6167d4cae3bebb |
||||
|
||||
patch_directory = lmdb |
||||
|
@ -0,0 +1,143 @@ |
||||
project( |
||||
'liblmdb', 'c', |
||||
version: '0.9.28', |
||||
default_options: [ |
||||
'warning_level=2' |
||||
], |
||||
license: 'OpenLDAP', |
||||
meson_version: '>= 0.54.0' |
||||
) |
||||
|
||||
liblmdb_name = meson.project_name() |
||||
liblmdb_version = meson.project_version() |
||||
liblmdb_soversion = 0 |
||||
liblmdb_libversion = '0.0.0' |
||||
|
||||
message('Building ' + liblmdb_name + ' ' + liblmdb_version) |
||||
|
||||
cc = meson.get_compiler('c') |
||||
host_system = host_machine.system() |
||||
arch = host_machine.cpu_family() |
||||
|
||||
# Compiler flags |
||||
if cc.get_id() == 'msvc' |
||||
test_cflags = [] |
||||
elif cc.get_id() == 'gcc' or cc.get_id() == 'clang' |
||||
test_cflags = [ |
||||
'-Wno-unused-parameter', |
||||
'-Wbad-function-cast', |
||||
'-Wuninitialized', |
||||
] |
||||
else |
||||
test_cflags = [] |
||||
endif |
||||
|
||||
common_cflags = [] |
||||
foreach cflag: test_cflags |
||||
if cc.has_argument(cflag) |
||||
common_cflags += [ cflag ] |
||||
endif |
||||
endforeach |
||||
|
||||
extra_args = [] |
||||
if cc.get_id() == 'msvc' |
||||
extra_args += '-D_CRT_SECURE_NO_WARNINGS' |
||||
endif |
||||
|
||||
thread_dep = dependency('threads') |
||||
|
||||
lmdb_public_headers = files( |
||||
'libraries/liblmdb/lmdb.h', |
||||
) |
||||
|
||||
lmdb_headers = files( |
||||
'libraries/liblmdb/midl.h' |
||||
) |
||||
|
||||
lmdb_sources = files( |
||||
'libraries/liblmdb/mdb.c', |
||||
'libraries/liblmdb/midl.c', |
||||
) |
||||
|
||||
install_headers(lmdb_public_headers) |
||||
|
||||
lmdb_name_suffix = [] |
||||
if cc.get_id() == 'msvc' |
||||
lmdb_name_suffix = 'lib' |
||||
endif |
||||
|
||||
lmdb_inc = include_directories('.') |
||||
lmdb = library( |
||||
'lmdb', |
||||
[ lmdb_public_headers, lmdb_headers, lmdb_sources ], |
||||
include_directories: lmdb_inc, |
||||
dependencies: thread_dep, |
||||
version: liblmdb_libversion, |
||||
soversion: liblmdb_soversion, |
||||
install: true, |
||||
c_args: common_cflags, |
||||
vs_module_defs: 'libraries/liblmdb/lmdb.def', |
||||
) |
||||
|
||||
lmdb_dep = declare_dependency( |
||||
link_with: lmdb, |
||||
include_directories: lmdb_inc, |
||||
) |
||||
meson.override_dependency('lmdb', lmdb_dep) |
||||
|
||||
programs = [] |
||||
if host_system != 'windows' |
||||
programs += [ |
||||
'mdb_stat', |
||||
'mdb_copy', |
||||
'mdb_dump', |
||||
'mdb_load', |
||||
] |
||||
endif |
||||
|
||||
foreach program: programs |
||||
executable( |
||||
program, 'libraries/liblmdb/' + program + '.c', |
||||
dependencies: lmdb_dep, |
||||
include_directories: lmdb_inc, |
||||
install: true, |
||||
c_args: common_cflags, |
||||
) |
||||
endforeach |
||||
|
||||
test_programs = [ |
||||
'mtest', |
||||
'mtest2', |
||||
'mtest3', |
||||
'mtest4', |
||||
'mtest5', |
||||
] |
||||
|
||||
foreach test_program: test_programs |
||||
exe = executable( |
||||
test_program, 'libraries/liblmdb/' + test_program + '.c', |
||||
dependencies: lmdb_dep, |
||||
include_directories: lmdb_inc, |
||||
c_args: common_cflags + extra_args, |
||||
) |
||||
test(test_program, exe, args: [ '--tap', '-k' ]) |
||||
endforeach |
||||
|
||||
if host_system != 'windows' |
||||
man_files = files( |
||||
'libraries/liblmdb/mdb_stat.1', |
||||
'libraries/liblmdb/mdb_copy.1', |
||||
'libraries/liblmdb/mdb_dump.1', |
||||
'libraries/liblmdb/mdb_load.1', |
||||
) |
||||
|
||||
install_man(man_files) |
||||
endif |
||||
|
||||
# Generate pc file |
||||
pkg = import('pkgconfig') |
||||
|
||||
pkg.generate(lmdb, |
||||
name: liblmdb_name, |
||||
filebase: 'lmdb', |
||||
description: 'Lightning Memory-Mapped Database.') |
Loading…
Reference in new issue