# lib/meson.build 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' ] if host_machine.system().startswith('linux') libfuse_sources += ['mount.c'] else libfuse_sources += ['mount_bsd.c'] endif # --- Abhängigkeiten einsammeln --- deps = [ thread_dep ] # iconv: Wenn Funktion vorhanden, Modul immer mitbauen. # Externe libiconv nur hinzufügen, wenn sie existiert (auf Android meist nicht nötig). if private_cfg.get('HAVE_ICONV') libfuse_sources += ['modules/iconv.c'] endif libiconv = cc.find_library('iconv', required: false) if libiconv.found() deps += [libiconv] endif # libdl optional (auf Android meist Teil von bionic) libdl = cc.find_library('dl', required: false) if libdl.found() deps += [libdl] endif # librt optional (alte glibc; Android braucht das nicht) librt = cc.find_library('rt', required: false) if librt.found() deps += [librt] endif # NetBSD-spezifisches if host_machine.system().startswith('netbsd') deps += [ cc.find_library('perfuse'), cc.find_library('puffs'), ] endif # Pfad zu fusermount(3) 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=317', '-DFUSERMOUNT_DIR="@0@"'.format(fusermount_path), ], link_args: [ '-Wl,--version-script,' + meson.current_source_dir() + '/fuse_versionscript', ], ) # ---- pkg-config-Datei erzeugen ---- pc = import('pkgconfig') pc_libs_public = [libfuse] pc_libs_private = [thread_dep] # wird zu -pthread/-lpthread passend zur Plattform aufgelöst if libdl.found() pc_libs_private += [libdl] endif if librt.found() pc_libs_private += [librt] endif if libiconv.found() pc_libs_private += [libiconv] endif pc.generate( libraries: pc_libs_public, libraries_private: pc_libs_private, version: meson.project_version(), name: 'fuse3', description: 'Filesystem in Userspace', subdirs: 'fuse3', ) libfuse_dep = declare_dependency( include_directories: include_dirs, link_with: libfuse, dependencies: deps )