diff options
author | Leonard Kugis <leonard@kug.is> | 2025-10-02 17:49:02 +0200 |
---|---|---|
committer | Leonard Kugis <leonard@kug.is> | 2025-10-02 17:49:02 +0200 |
commit | 0e026c5f7917f3b0e3e32df01e4482200b8f9595 (patch) | |
tree | bf3fc66ab4187e4e690ebf6e2f90e6e83f75d779 /lib/meson.build | |
parent | 430dc8601f110efdb306c6af425484e95dbbea3a (diff) | |
download | libfuse-0e026c5f7917f3b0e3e32df01e4482200b8f9595.tar.gz |
Adjusted meson conf for android ndk compatibility
Diffstat (limited to 'lib/meson.build')
-rw-r--r-- | lib/meson.build | 124 |
1 files changed, 83 insertions, 41 deletions
diff --git a/lib/meson.build b/lib/meson.build index 0b9a67c..ead83c2 100644 --- a/lib/meson.build +++ b/lib/meson.build @@ -1,58 +1,100 @@ -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' ] +# 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' ] + libfuse_sources += ['mount.c'] else - libfuse_sources += [ 'mount_bsd.c' ] + 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' ] - libiconv = cc.find_library('iconv', required: false) - if libiconv.found() - deps += [ libiconv ] - endif + 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 ] + 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') ] -else - # Required for clock_gettime before glibc 2.17 - deps += cc.find_library('rt', required: false) + 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 = import('pkgconfig') -pkg.generate(libraries: [ libfuse, '-lpthread' ], - libraries_private: '-ldl', - 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) + +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 +) |