svn commit: r1921127 - in /subversion/trunk: CMakeLists.txt build/generator/gen_cmake.py

[email protected]
Newsgroups gmane.comp.version-control.subversion.svn
Message-ID <[email protected]>
Author: rinrab
Date: Sat Oct  5 08:22:34 2024
New Revision: 1921127

URL: http://svn.apache.org/viewvc?rev=1921127&view=rev
Log:
cmake: Implement support of GNOME Keyring authentication trough libsecret
library.

- for finding the libsecret library we are going to use pkgconfig modules of
  it trough FindPkgConfig CMake module [1].

* build/generator/gen_cmake.py
  (get_target_conditions): Use SVN_ENABLE_AUTH_GNOME_KEYRING condition
   variable for the libsvn_auth_gnome_keyring library.
  (check_ignore_target): Remove libsvn_auth_gnome_keyring from ignore_names.
* CMakeLists.txt
  (options): Define SVN_ENABLE_AUTH_GNOME_KEYRING option.
  (GNOME Keyring): Search for libsecret using pkgconfig, create interface
   library for this dependency, define SVN_HAVE_LIBSECRET definition.
  (configure summary): Write state of SVN_ENABLE_AUTH_GNOME_KEYRING.

[1] https://cmake.org/cmake/help/latest/module/FindPkgConfig.html

Modified:
    subversion/trunk/CMakeLists.txt
    subversion/trunk/build/generator/gen_cmake.py

Modified: subversion/trunk/CMakeLists.txt
URL: http://svn.apache.org/viewvc/subversion/trunk/CMakeLists.txt?rev=1921127&r1=1921126&r2=1921127&view=diff
==============================================================================
--- subversion/trunk/CMakeLists.txt (original)
+++ subversion/trunk/CMakeLists.txt Sat Oct  5 08:22:34 2024
@@ -90,6 +90,7 @@ option(SVN_ENABLE_FS_X "Enable Subversio
 option(SVN_ENABLE_FS_BASE "Enable Subversion Filesystem Base Library (NOT IMPLEMENTED and DEPRECATED)" OFF)
 option(SVN_ENABLE_NLS "Enable gettext functionality" OFF)
 option(SVN_ENABLE_AUTH_KWALLET "Enable KWallet authentification library" OFF)
+option(SVN_ENABLE_AUTH_GNOME_KEYRING "Enable GNOME Keyring for auth credentials" OFF)
 
 option(SVN_INSTALL_PRIVATE_H "Install private header files." OFF)
 
@@ -304,6 +305,18 @@ if(SVN_ENABLE_AUTH_KWALLET)
   target_compile_definitions(external-kwallet INTERFACE SVN_HAVE_KF5)
 endif()
 
+### GNOME Keyring
+
+if(SVN_ENABLE_AUTH_GNOME_KEYRING)
+  add_library(external-gnome-keyring INTERFACE)
+
+  find_package(PkgConfig REQUIRED)
+  pkg_check_modules(libsecret-1 REQUIRED IMPORTED_TARGET libsecret-1)
+  target_link_libraries(external-gnome-keyring INTERFACE PkgConfig::libsecret-1)
+
+  add_compile_definitions(SVN_HAVE_LIBSECRET)
+endif()
+
 if(SVN_ENABLE_SWIG_PERL OR SVN_ENABLE_SWIG_PYTHON OR SVN_ENABLE_SWIG_RUBY)
   find_package(SWIG REQUIRED)
   include(${SWIG_USE_FILE})
@@ -770,6 +783,7 @@ message(STATUS "    Build programs .....
 message(STATUS "    Build tools ................... : ${SVN_ENABLE_TOOLS}")
 message(STATUS "    Build test suite .............. : ${SVN_ENABLE_TESTS}")
 message(STATUS "    Enable KWallet integration .... : ${SVN_ENABLE_AUTH_KWALLET}")
+message(STATUS "    Enable Gnome Keyring .......... : ${SVN_ENABLE_AUTH_GNOME_KEYRING}")
 message(STATUS "  Install:")
 message(STATUS "    Install prefix: ............... : ${CMAKE_INSTALL_PREFIX}")
 message(STATUS "    Install private headers: ...... : ${SVN_INSTALL_PRIVATE_H}")

Modified: subversion/trunk/build/generator/gen_cmake.py
URL: http://svn.apache.org/viewvc/subversion/trunk/build/generator/gen_cmake.py?rev=1921127&r1=1921126&r2=1921127&view=diff
==============================================================================
--- subversion/trunk/build/generator/gen_cmake.py (original)
+++ subversion/trunk/build/generator/gen_cmake.py Sat Oct  5 08:22:34 2024
@@ -77,6 +77,8 @@ def get_target_conditions(target):
       enable_condition.append("SVN_ENABLE_SVNXX")
     elif target.name == "libsvn_auth_kwallet":
       enable_condition.append("SVN_ENABLE_AUTH_KWALLET")
+    elif target.name == "libsvn_auth_gnome_keyring":
+      enable_condition.append("SVN_ENABLE_AUTH_GNOME_KEYRING")
 
   if isinstance(target, gen_base.TargetExe):
     if target.install == "test" or target.install == "sub-test":
@@ -259,8 +261,6 @@ class Generator(gen_base.GeneratorBase):
 
   def check_ignore_target(self, target):
     ignore_names = [
-      "libsvn_auth_gnome_keyring",
-
       "svnxx-tests",
 
       "libsvnjavahl",
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.