Add meson.build files

This commit is contained in:
Will Thompson
2019-03-28 16:09:32 +00:00
parent e16bdc7ef9
commit 0f53dc35e4
2 changed files with 102 additions and 0 deletions

83
meson.build Normal file
View File

@@ -0,0 +1,83 @@
project('libglnx', 'c')
add_project_arguments('-D_GNU_SOURCE', language: 'c')
cc = meson.get_compiler('c')
check_functions = [
'renameat2',
'memfd_create',
'copy_file_range',
]
conf = configuration_data()
foreach check_function : check_functions
if cc.compiles('''
#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
#include <sys/mount.h>
#include <fcntl.h>
#include <sched.h>
#include <linux/loop.h>
#include <linux/random.h>
#include <sys/mman.h>
int func (void) {
(void) ''' + check_function + ''';
}
''',
args : '-D_GNU_SOURCE',
name : check_function + '() is declared',
)
conf.set('HAVE_DECL_' + check_function.underscorify().to_upper(), 1)
endif
endforeach
config_h = configure_file(
output : 'config.h',
configuration : conf,
)
libglnx_deps = [
dependency('gio-2.0'),
dependency('gio-unix-2.0'),
]
libglnx_inc = include_directories('.')
libglnx_sources = [
'glnx-backport-autocleanups.h',
'glnx-backport-autoptr.h',
'glnx-backports.c',
'glnx-backports.h',
'glnx-console.c',
'glnx-console.h',
'glnx-dirfd.c',
'glnx-dirfd.h',
'glnx-errors.c',
'glnx-errors.h',
'glnx-fdio.c',
'glnx-fdio.h',
'glnx-local-alloc.c',
'glnx-local-alloc.h',
'glnx-lockfile.c',
'glnx-lockfile.h',
'glnx-macros.h',
'glnx-missing.h',
'glnx-missing-syscall.h',
'glnx-shutil.c',
'glnx-shutil.h',
'glnx-xattrs.c',
'glnx-xattrs.h',
'libglnx.h',
]
libglnx = static_library('glnx',
libglnx_sources,
dependencies : libglnx_deps,
include_directories : libglnx_inc,
install : false)
libglnx_dep = declare_dependency(
include_directories : libglnx_inc,
link_with : libglnx)
subdir('tests')

19
tests/meson.build Normal file
View File

@@ -0,0 +1,19 @@
test_names = [
'errors',
'fdio',
'macros',
'shutil',
'xattrs',
]
foreach test_name : test_names
exe = executable(test_name,
['test-libglnx-' + test_name + '.c', 'libglnx-testlib.h'],
dependencies: [
libglnx_dep,
libglnx_deps,
],
)
test(test_name, exe)
endforeach