mirror of
https://github.com/libfuse/libfuse.git
synced 2026-07-07 14:47:41 +08:00
57954f4a5f
As discussed on https://github.com/libfuse/libfuse/issues/1515, libfuse has a very light dependency on libnuma, only using very light wrappers over mmap, mbind, and munmap. Remove the libnuma dependency by calling those syscalls directly. Populate memory after mmap to avoid SIGBUS later. Signed-off-by: Benjamin Peterson <benjamin@python.org>
83 lines
2.7 KiB
Meson
83 lines
2.7 KiB
Meson
libfuse_sources = ['fuse.c', 'fuse_i.h', 'fuse_loop.c', 'fuse_loop_mt.c',
|
|
'fuse_lowlevel.c', 'fuse_misc.h', 'fuse_opt.c',
|
|
'fuse_signals.c', 'buffer.c', 'cuse_lowlevel.c',
|
|
'helper.c', 'modules/subdir.c', 'mount_util.c',
|
|
'fuse_log.c', 'compat.c', 'util.c', 'util.h',
|
|
'fuse_daemonize.c' ]
|
|
|
|
if host_machine.system().startswith('linux')
|
|
libfuse_sources += [ 'mount.c' ]
|
|
if private_cfg.get('HAVE_NEW_MOUNT_API', false)
|
|
libfuse_sources += [ 'mount_fsmount.c' ]
|
|
endif
|
|
else
|
|
libfuse_sources += [ 'mount_bsd.c' ]
|
|
endif
|
|
|
|
if private_cfg.get('HAVE_SERVICEMOUNT', false)
|
|
libfuse_sources += [ 'fuse_service.c' ]
|
|
else
|
|
libfuse_sources += [ 'fuse_service_stub.c' ]
|
|
endif
|
|
|
|
deps = [ thread_dep ]
|
|
if private_cfg.get('HAVE_ICONV')
|
|
libfuse_sources += [ 'modules/iconv.c' ]
|
|
libiconv = cc.find_library('iconv', required: false)
|
|
if libiconv.found()
|
|
deps += [ libiconv ]
|
|
endif
|
|
endif
|
|
|
|
if private_cfg.get('HAVE_URING', false)
|
|
libfuse_sources += [ 'fuse_uring.c' ]
|
|
deps += [ dependency('liburing') ]
|
|
endif
|
|
|
|
|
|
|
|
libdl = cc.find_library('dl', required: false)
|
|
if libdl.found()
|
|
deps += [ libdl ]
|
|
endif
|
|
|
|
if host_machine.system().startswith('netbsd')
|
|
deps += [ cc.find_library('perfuse'),
|
|
cc.find_library('puffs') ]
|
|
else
|
|
# Required for clock_gettime before glibc 2.17
|
|
deps += cc.find_library('rt')
|
|
endif
|
|
|
|
fusermount_path = join_paths(get_option('prefix'), get_option('bindir'))
|
|
libfuse = library('fuse3',
|
|
libfuse_sources,
|
|
version: base_version,
|
|
soversion: '4',
|
|
include_directories: include_dirs,
|
|
dependencies: deps,
|
|
install: true,
|
|
link_depends: 'fuse_versionscript',
|
|
c_args: [ '-DFUSE_USE_VERSION=319',
|
|
'-DFUSERMOUNT_DIR="@0@"'.format(fusermount_path) ],
|
|
link_args: ['-Wl,--version-script,' + meson.current_source_dir()
|
|
+ '/fuse_versionscript' ])
|
|
|
|
vars = []
|
|
if private_cfg.get('HAVE_SERVICEMOUNT', false)
|
|
service_socket_dir = private_cfg.get_unquoted('FUSE_SERVICE_SOCKET_DIR', '')
|
|
vars += ['service_socket_dir=' + service_socket_dir]
|
|
vars += ['service_socket_perms=' + service_socket_perms]
|
|
endif
|
|
pkg = import('pkgconfig')
|
|
pkg.generate(libraries: [ libfuse, '-lpthread' ],
|
|
libraries_private: '-ldl',
|
|
version: meson.project_version(),
|
|
name: 'fuse3',
|
|
description: 'Filesystem in Userspace',
|
|
subdirs: 'fuse3',
|
|
variables: vars)
|
|
|
|
libfuse_dep = declare_dependency(include_directories: include_dirs,
|
|
link_with: libfuse, dependencies: deps)
|