diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-14 19:10:49 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-14 19:10:49 +0000 |
commit | cfe5e3905201349e9cf3f95d52ff4bd100bde37d (patch) | |
tree | d0baf160cbee3195249d095f85e52d20c21acf02 /libmount/meson.build | |
parent | Initial commit. (diff) | |
download | util-linux-cfe5e3905201349e9cf3f95d52ff4bd100bde37d.tar.xz util-linux-cfe5e3905201349e9cf3f95d52ff4bd100bde37d.zip |
Adding upstream version 2.39.3.upstream/2.39.3
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'libmount/meson.build')
-rw-r--r-- | libmount/meson.build | 148 |
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') |