aboutsummaryrefslogtreecommitdiffstats
path: root/lib/meson.build
diff options
context:
space:
mode:
authorLeonard Kugis <leonard@kug.is>2025-10-02 17:49:02 +0200
committerLeonard Kugis <leonard@kug.is>2025-10-02 17:49:02 +0200
commit0e026c5f7917f3b0e3e32df01e4482200b8f9595 (patch)
treebf3fc66ab4187e4e690ebf6e2f90e6e83f75d779 /lib/meson.build
parent430dc8601f110efdb306c6af425484e95dbbea3a (diff)
downloadlibfuse-0e026c5f7917f3b0e3e32df01e4482200b8f9595.tar.gz
Adjusted meson conf for android ndk compatibility
Diffstat (limited to 'lib/meson.build')
-rw-r--r--lib/meson.build124
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
+)