Index: components/os_crypt/BUILD.gn |
diff --git a/components/os_crypt/BUILD.gn b/components/os_crypt/BUILD.gn |
index 7ae69302e4737ea7399e7e3bffed6d4b92ca3994..2c40d08413eb51be681300ccdc49a912c22cc7e1 100644 |
--- a/components/os_crypt/BUILD.gn |
+++ b/components/os_crypt/BUILD.gn |
@@ -4,6 +4,29 @@ |
import("//build/config/features.gni") |
import("//build/config/ui.gni") |
+import("//build/config/linux/pkg_config.gni") |
+ |
+if (is_desktop_linux) { |
+ # Gnome-keyring is normally dynamically loaded. The gnome_keyring config |
+ # will set this up. |
+ pkg_config("gnome_keyring") { |
+ packages = [ "gnome-keyring-1" ] |
+ defines = [ "USE_GNOME_KEYRING" ] |
+ ignore_libs = true |
+ } |
+ |
+ # If you want to link gnome-keyring directly (use only for unit tests) |
+ # ADDITIONALLY add this config on top of ":gnome_keyring". pkg-config is a |
+ # bit slow, so prefer not to run it again. In practice, gnome-keyring's libs |
+ # are just itself and common gnome ones we link already, so we can get away |
+ # with additionally just coding the library name here. |
+ # TODO(cfroussios): This is only used by |
+ # chrome/browser/password_manager/native_backend_gnome_x_unittest.cc |
+ # We should deprecate both. |
+ config("gnome_keyring_direct") { |
+ libs = [ "gnome-keyring" ] |
+ } |
+} |
static_library("os_crypt") { |
sources = [ |
@@ -57,10 +80,15 @@ static_library("os_crypt") { |
sources += [ |
"key_storage_libsecret.cc", |
"key_storage_libsecret.h", |
+ "keyring_util_linux.cc", |
+ "keyring_util_linux.h", |
"libsecret_util_linux.cc", |
"libsecret_util_linux.h", |
] |
- configs += [ "//build/config/linux:glib" ] |
+ configs += [ |
+ "//build/config/linux:glib", |
+ ":gnome_keyring", |
+ ] |
deps += [ "//third_party/libsecret" ] |
defines += [ "USE_LIBSECRET" ] |
} |