svn commit: r1934149 - in subversion/trunk: . build/cmake

[email protected]
Newsgroups gmane.comp.version-control.subversion.svn
Message-ID <177860990802.1997168.7838793906699138844@svn03-he-fi>
Author: rinrab
Date: Tue May 12 18:18:27 2026
New Revision: 1934149

Log:
Implement finding a curses library using a cmake MODULE. This also brings
support for the PDCurses backend, if one is installed.

* CMakeLists.txt
  (SVN_ENABLE_TUI): Use find_package(CURSES) unless pkg-config mode is on.
* build/cmake/FindCURSES.cmake: New cmake module.

Added:
   subversion/trunk/build/cmake/FindCURSES.cmake
Modified:
   subversion/trunk/CMakeLists.txt

Modified: subversion/trunk/CMakeLists.txt
==============================================================================
--- subversion/trunk/CMakeLists.txt	Tue May 12 18:17:41 2026	(r1934148)
+++ subversion/trunk/CMakeLists.txt	Tue May 12 18:18:27 2026	(r1934149)
@@ -634,7 +634,8 @@ if (SVN_ENABLE_TUI)
     pkg_check_modules(ncurses REQUIRED IMPORTED_TARGET ncurses)
     target_link_libraries(external-ncurses INTERFACE PkgConfig::ncurses)
   else()
-    message(SEND_ERROR "not supported")
+    find_package(CURSES REQUIRED)
+    target_link_libraries(external-ncurses INTERFACE CURSES::CURSES)
   endif()
 endif()
 

Added: subversion/trunk/build/cmake/FindCURSES.cmake
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ subversion/trunk/build/cmake/FindCURSES.cmake	Tue May 12 18:18:27 2026	(r1934149)
@@ -0,0 +1,52 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# FindCURSES.cmake -- Find the curses library
+#
+
+find_path(CURSES_INCLUDE_DIR
+  NAMES curses.h
+  PATH_SUFFIXES
+    include
+)
+
+find_library(CURSES_LIBRARY
+  NAMES ncurses pdcurses curses 
+  PATH_SUFFIXES lib
+)
+
+mark_as_advanced(
+  CURSES_INCLUDE_DIR
+  CURSES_LIBRARY
+)
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(
+  CURSES
+  REQUIRED_VARS
+    CURSES_INCLUDE_DIR
+    CURSES_LIBRARY
+)
+
+if (CURSES_FOUND)
+  add_library(CURSES::CURSES IMPORTED STATIC)
+  set_target_properties(CURSES::CURSES PROPERTIES
+    IMPORTED_LOCATION ${CURSES_LIBRARY}
+    INTERFACE_INCLUDE_DIRECTORIES ${CURSES_INCLUDE_DIR}
+  )
+endif()
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.