From 6f2b1f97daee59c05d0f9c7497113471bcb6e782 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Wed, 11 Dec 2019 20:21:01 +0100 Subject: [PATCH] fprint: Move drivers to private internal library This allows us to finally remove fpi_get_driver_types from the exported list of symbols. --- libfprint/libfprint.ver | 3 --- libfprint/meson.build | 25 ++++++++++++++++++++----- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/libfprint/libfprint.ver b/libfprint/libfprint.ver index 7b484f6..d99a456 100644 --- a/libfprint/libfprint.ver +++ b/libfprint/libfprint.ver @@ -1,9 +1,6 @@ LIBFPRINT_2.0.0 { global: fp_*; - - /* Needs to be public for the listing commands. */ - fpi_get_driver_types; local: *; }; diff --git a/libfprint/meson.build b/libfprint/meson.build index d3d0fd6..06668b3 100644 --- a/libfprint/meson.build +++ b/libfprint/meson.build @@ -207,19 +207,26 @@ libnbis = static_library('nbis', libfprint_private = static_library('fprint-private', sources: libfprint_private_sources + fpi_enums, dependencies: deps, + link_with: libnbis, + install: false) + +libfprint_drivers = static_library('fprint-drivers', + sources: drivers_sources + [ fp_enums_h ], + c_args: drivers_cflags, + dependencies: deps, + link_with: libfprint_private, install: false) mapfile = files('libfprint.ver') vflag = '-Wl,--version-script,@0@/@1@'.format(meson.source_root(), mapfile[0]) libfprint = library('fprint', - sources: libfprint_sources + fp_enums + drivers_sources + other_sources, + sources: libfprint_sources + fp_enums + other_sources, soversion: soversion, version: libversion, - c_args: drivers_cflags, link_args : vflag, link_depends : mapfile, - link_with: [libnbis, libfprint_private], + link_with: [libfprint_private, libfprint_drivers], dependencies: deps, install: true) @@ -230,9 +237,16 @@ libfprint_dep = declare_dependency(link_with: libfprint, install_headers(['fprint.h'] + libfprint_public_headers, subdir: 'libfprint') +libfprint_private_dep = declare_dependency( + include_directories: include_directories('.'), + link_with: libfprint_private, + dependencies: [ deps, libfprint_dep ] +) + udev_rules = executable('fprint-list-udev-rules', 'fprint-list-udev-rules.c', - dependencies: [ deps, libfprint_dep ], + dependencies: libfprint_private_dep, + link_with: libfprint_drivers, install: false) if get_option('udev_rules') @@ -246,7 +260,8 @@ endif supported_devices = executable('fprint-list-supported-devices', 'fprint-list-supported-devices.c', - dependencies: [ deps, libfprint_dep ], + dependencies: libfprint_private_dep, + link_with: libfprint_drivers, install: false)