Blob Blame History Raw
From f159a65f302abd333c89081b41f10387b85652f8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= <mail@3v1n0.net>
Date: Wed, 11 Dec 2019 20:21:01 +0100
Subject: [PATCH 110/181] 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)
 
 
-- 
2.24.1