Files
flatpak/meson.build
Will Thompson 8f2e676d9b Merge branch 'wip/smcv/warnings' into 'master'
build: Explicitly disable warnings for non-ISO C features

See merge request GNOME/libglnx!42
2022-10-10 13:43:00 +00:00

104 lines
2.3 KiB
Meson

# Copyright 2019 Endless OS Foundation LLC
# Copyright 2019 Collabora Ltd.
# SPDX-License-Identifier: LGPL-2.1-or-later
project(
'libglnx',
'c',
default_options : [
'c_std=gnu99',
'warning_level=2',
],
)
add_project_arguments('-D_GNU_SOURCE', language: 'c')
add_project_arguments('-Wno-unused-local-typedefs', language: 'c')
# We are intentionally using non-ISO features in this (sub)project,
# even if a parent project wants to use pedantic warnings
add_project_arguments('-Wno-pedantic', language: 'c')
add_project_arguments('-Wno-variadic-macros', language: 'c')
cc = meson.get_compiler('c')
check_functions = [
'renameat2',
'memfd_create',
'copy_file_range',
]
conf = configuration_data()
foreach check_function : check_functions
have_it = 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.set10('HAVE_DECL_' + check_function.underscorify().to_upper(), have_it)
endforeach
config_h = configure_file(
output : 'libglnx-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-backport-testutils.c',
'glnx-backport-testutils.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,
gnu_symbol_visibility : 'hidden',
include_directories : libglnx_inc,
install : false)
libglnx_dep = declare_dependency(
dependencies : libglnx_deps,
include_directories : libglnx_inc,
link_with : libglnx)
subdir('tests')