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",
