summaryrefslogtreecommitdiffstats
path: root/libmount/meson.build
diff options
context:
space:
mode:
Diffstat (limited to 'libmount/meson.build')
-rw-r--r--libmount/meson.build148
1 files changed, 148 insertions, 0 deletions
diff --git a/libmount/meson.build b/libmount/meson.build
new file mode 100644
index 0000000..55de27b
--- /dev/null
+++ b/libmount/meson.build
@@ -0,0 +1,148 @@
+dir_libmount = include_directories('.', 'src')
+
+defs = configuration_data()
+defs.set('LIBMOUNT_VERSION', pc_version)
+defs.set('LIBMOUNT_MAJOR_VERSION', pc_version.split('.')[0])
+defs.set('LIBMOUNT_MINOR_VERSION', pc_version.split('.')[1])
+defs.set('LIBMOUNT_PATCH_VERSION', pc_version.split('.')[2])
+
+configure_file(
+ input : 'src/libmount.h.in',
+ output : 'libmount.h',
+ configuration : defs,
+ install : build_libmount,
+ install_dir : join_paths(get_option('includedir'), 'libmount'),
+)
+
+lib_mount_sources = '''
+ src/mountP.h
+ src/cache.c
+ src/fs.c
+ src/init.c
+ src/iter.c
+ src/lock.c
+ src/optmap.c
+ src/optstr.c
+ src/tab.c
+ src/tab_diff.c
+ src/tab_parse.c
+ src/tab_update.c
+ src/test.c
+ src/utils.c
+ src/version.c
+'''.split() + [
+ list_h,
+ monotonic_c,
+]
+
+if LINUX
+ lib_mount_sources += '''
+ src/hooks.c
+ src/monitor.c
+ src/optlist.c
+ src/hook_veritydev.c
+ src/hook_subdir.c
+ src/hook_owner.c
+ src/hook_mount.c
+ src/hook_mount_legacy.c
+ src/hook_mkdir.c
+ src/hook_selinux.c
+ src/hook_loopdev.c
+ src/hook_idmap.c
+ src/context_umount.c
+ src/context_mount.c
+ src/context.c
+'''.split()
+endif
+
+if enable_btrfs
+ lib_mount_sources += 'src/btrfs.c'
+endif
+
+libmount_sym = 'src/libmount.sym'
+libmount_sym_path = '@0@/@1@'.format(meson.current_source_dir(), libmount_sym)
+
+if build_libmount and not have_dirfd and not have_ddfd
+ error('neither dirfd nor ddfd are available')
+endif
+
+lib__mount = static_library(
+ '_mount',
+ lib_mount_sources,
+ include_directories : [dir_include,
+ dir_libmount,
+ dir_libblkid])
+
+lib_mount_static = static_library(
+ 'mount_static',
+ link_whole : lib__mount,
+ link_with : [lib_common,
+ lib_blkid.get_static_lib()],
+ dependencies : [realtime_libs],
+ install : false)
+
+lib__mount_deps = [
+ lib_selinux,
+ get_option('cryptsetup-dlopen').enabled() ? lib_dl : lib_cryptsetup,
+ realtime_libs
+]
+lib_mount = library(
+ 'mount',
+ link_whole : lib__mount,
+ include_directories : [dir_include,
+ dir_libmount,
+ dir_libblkid],
+ link_depends : libmount_sym,
+ version : libmount_version,
+ link_args : ['-Wl,--version-script=@0@'.format(libmount_sym_path)],
+ link_with : [lib_common,
+ lib_blkid],
+ dependencies : lib__mount_deps,
+ install : build_libmount)
+mount_dep = declare_dependency(link_with: lib_mount, include_directories: '.')
+
+if build_libmount
+ pkgconfig.generate(lib_mount,
+ description : 'mount library',
+ subdirs : 'libmount',
+ version : pc_version)
+ if meson.version().version_compare('>=0.54.0')
+ meson.override_dependency('mount', mount_dep)
+ endif
+endif
+
+libmount_tests = [
+ 'cache',
+ 'context',
+ 'lock',
+ 'optstr',
+ 'tab',
+ 'tab_diff',
+ 'monitor',
+ 'tab_update',
+ 'utils',
+ 'version',
+ 'debug',
+]
+
+libmount_test_src_override = {
+ 'debug': 'init',
+}
+
+foreach libmount_test: libmount_tests
+ test_name = 'test_mount_' + libmount_test
+ exe = executable(
+ test_name,
+ 'src/' + libmount_test_src_override.get(libmount_test, libmount_test) + '.c',
+ include_directories : [dir_include, dir_libblkid],
+ link_with : [lib__mount, lib_common, lib_blkid_static],
+ dependencies : lib__mount_deps,
+ c_args : ['-DTEST_PROGRAM'],
+ )
+ # the test-setup expects the helpers in the toplevel build-directory
+ link = meson.project_build_root() / test_name
+ run_command('ln', '-srf', exe.full_path(), link,
+ check : true)
+endforeach
+
+subdir('python')