File findlua55.patch of Package lua-luv

---
 cmake/Modules/FindLua.cmake |  216 ++++++++++++++++++++++++++++++++------------
 1 file changed, 161 insertions(+), 55 deletions(-)

Index: luv-1.51.0-1/cmake/Modules/FindLua.cmake
===================================================================
--- luv-1.51.0-1.orig/cmake/Modules/FindLua.cmake	2026-02-26 17:13:01.531141499 +0100
+++ luv-1.51.0-1/cmake/Modules/FindLua.cmake	2026-02-26 17:56:37.051497829 +0100
@@ -1,49 +1,145 @@
-# This is a copy of CMake's builtin FindLua to get support for Lua 5.4
-# on earlier CMake versions.
-
 # Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
+# file LICENSE.rst or https://cmake.org/licensing for details.
 
 #[=======================================================================[.rst:
 FindLua
 -------
 
+Finds the Lua library:
 
+.. code-block:: cmake
 
-Locate Lua library.
+  find_package(Lua [<version>] [...])
 
-This module defines::
+Lua is a embeddable scripting language.
 
-::
+.. versionadded:: 3.18
+  Support for Lua 5.4.
 
-  LUA_FOUND          - if false, do not try to link to Lua
-  LUA_LIBRARIES      - both lua and lualib
-  LUA_INCLUDE_DIR    - where to find lua.h
-  LUA_VERSION_STRING - the version of Lua found
-  LUA_VERSION_MAJOR  - the major version of Lua
-  LUA_VERSION_MINOR  - the minor version of Lua
-  LUA_VERSION_PATCH  - the patch version of Lua
+.. versionadded:: 4.3
+  Support for Lua 5.5.
 
+When working with Lua, its library headers are intended to be included in
+project source code as:
 
+.. code-block:: c
 
-Note that the expected include convention is
+  #include <lua.h>
 
-::
+and not:
 
-  #include "lua.h"
+.. code-block:: c
 
-and not
+  #include <lua/lua.h>
 
-::
+This is because, the location of Lua headers may differ across platforms and may
+exist in locations other than ``lua/``.
 
-  #include <lua/lua.h>
+Result Variables
+^^^^^^^^^^^^^^^^
+
+This module defines the following variables:
+
+``Lua_FOUND``
+  .. versionadded:: 3.3
+
+  Boolean indicating whether (the requested version of) Lua was found.
+
+``Lua_VERSION``
+  .. versionadded:: 4.2
+
+  The version of Lua found.
+
+``Lua_VERSION_MAJOR``
+  .. versionadded:: 4.2
+
+  The major version of Lua found.
+
+``Lua_VERSION_MINOR``
+  .. versionadded:: 4.2
+
+  The minor version of Lua found.
+
+``Lua_VERSION_PATCH``
+  .. versionadded:: 4.2
+
+  The patch version of Lua found.
+
+``LUA_LIBRARIES``
+  Libraries needed to link against to use Lua.  This list includes both ``lua``
+  and ``lualib`` libraries.
+
+Cache Variables
+^^^^^^^^^^^^^^^
+
+The following cache variables may also be set:
+
+``LUA_INCLUDE_DIR``
+  The directory containing the Lua header files, such as ``lua.h``,
+  ``lualib.h``, and ``lauxlib.h``, needed to use Lua.
+
+Deprecated Variables
+^^^^^^^^^^^^^^^^^^^^
+
+The following variables are provided for backward compatibility:
 
-This is because, the lua location is not standardized and may exist in
-locations other than lua/
+``LUA_FOUND``
+  .. deprecated:: 4.2
+    Use ``Lua_FOUND``, which has the same value.
+
+  Boolean indicating whether (the requested version of) Lua was found.
+
+``LUA_VERSION_STRING``
+  .. deprecated:: 4.2
+    Superseded by the ``Lua_VERSION``.
+
+  The version of Lua found.
+
+``LUA_VERSION_MAJOR``
+  .. deprecated:: 4.2
+    Superseded by the ``Lua_VERSION_MAJOR``.
+
+  The major version of Lua found.
+
+``LUA_VERSION_MINOR``
+  .. deprecated:: 4.2
+    Superseded by the ``Lua_VERSION_MINOR``.
+
+  The minor version of Lua found.
+
+``LUA_VERSION_PATCH``
+  .. deprecated:: 4.2
+    Superseded by the ``Lua_VERSION_PATCH``.
+
+  The patch version of Lua found.
+
+Examples
+^^^^^^^^
+
+Finding the Lua library and creating an interface :ref:`imported target
+<Imported Targets>` that encapsulates its usage requirements for linking to a
+project target:
+
+.. code-block:: cmake
+
+  find_package(Lua)
+
+  if(Lua_FOUND AND NOT TARGET Lua::Lua)
+    add_library(Lua::Lua INTERFACE IMPORTED)
+    set_target_properties(
+      Lua::Lua
+      PROPERTIES
+        INTERFACE_INCLUDE_DIRECTORIES "${LUA_INCLUDE_DIR}"
+        INTERFACE_LINK_LIBRARIES "${LUA_LIBRARIES}"
+    )
+  endif()
+
+  target_link_libraries(project_target PRIVATE Lua::Lua)
 #]=======================================================================]
 
 cmake_policy(PUSH)  # Policies apply to functions at definition-time
-cmake_policy(SET CMP0012 NEW)  # For while(TRUE)
+cmake_policy(SET CMP0140 NEW)
+cmake_policy(SET CMP0159 NEW)  # file(STRINGS) with REGEX updates CMAKE_MATCH_<n>
 
 unset(_lua_include_subdirs)
 unset(_lua_library_names)
@@ -51,7 +147,7 @@
 
 # this is a function only to have all the variables inside go away automatically
 function(_lua_get_versions)
-    set(LUA_VERSIONS5 5.4 5.3 5.2 5.1 5.0)
+    set(LUA_VERSIONS5 5.5 5.4 5.3 5.2 5.1 5.0)
 
     if (Lua_FIND_VERSION_EXACT)
         if (Lua_FIND_VERSION_COUNT GREATER 1)
@@ -105,10 +201,10 @@
   endforeach ()
 
   set(_lua_include_subdirs "${_lua_include_subdirs}" PARENT_SCOPE)
-endfunction(_lua_set_version_vars)
+endfunction()
 
 function(_lua_get_header_version)
-  unset(LUA_VERSION_STRING PARENT_SCOPE)
+  unset(Lua_VERSION PARENT_SCOPE)
   set(_hdr_file "${LUA_INCLUDE_DIR}/lua.h")
 
   if (NOT EXISTS "${_hdr_file}")
@@ -121,30 +217,42 @@
   file(STRINGS "${_hdr_file}" lua_version_strings
        REGEX "^#define[ \t]+LUA_(RELEASE[ \t]+\"Lua [0-9]|VERSION([ \t]+\"Lua [0-9]|_[MR])).*")
 
-  string(REGEX REPLACE ".*;#define[ \t]+LUA_VERSION_MAJOR[ \t]+\"([0-9])\"[ \t]*;.*" "\\1" LUA_VERSION_MAJOR ";${lua_version_strings};")
-  if (LUA_VERSION_MAJOR MATCHES "^[0-9]+$")
-    string(REGEX REPLACE ".*;#define[ \t]+LUA_VERSION_MINOR[ \t]+\"([0-9])\"[ \t]*;.*" "\\1" LUA_VERSION_MINOR ";${lua_version_strings};")
-    string(REGEX REPLACE ".*;#define[ \t]+LUA_VERSION_RELEASE[ \t]+\"([0-9])\"[ \t]*;.*" "\\1" LUA_VERSION_PATCH ";${lua_version_strings};")
-    set(LUA_VERSION_STRING "${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}.${LUA_VERSION_PATCH}")
+  string(REGEX REPLACE ".*;#define[ \t]+LUA_VERSION_MAJOR(_N)?[ \t]+\"?([0-9])\"?[ \t]*;.*" "\\2" Lua_VERSION_MAJOR ";${lua_version_strings};")
+
+  if (Lua_VERSION_MAJOR MATCHES "^[0-9]+$")
+    string(REGEX REPLACE ".*;#define[ \t]+LUA_VERSION_MINOR(_N)?[ \t]+\"?([0-9])\"?[ \t]*;.*" "\\2" Lua_VERSION_MINOR ";${lua_version_strings};")
+    string(REGEX REPLACE ".*;#define[ \t]+LUA_VERSION_RELEASE(_N)?[ \t]+\"?([0-9])\"?[ \t]*;.*" "\\2" Lua_VERSION_PATCH ";${lua_version_strings};")
+    set(Lua_VERSION "${Lua_VERSION_MAJOR}.${Lua_VERSION_MINOR}.${Lua_VERSION_PATCH}")
   else ()
-    string(REGEX REPLACE ".*;#define[ \t]+LUA_RELEASE[ \t]+\"Lua ([0-9.]+)\"[ \t]*;.*" "\\1" LUA_VERSION_STRING ";${lua_version_strings};")
-    if (NOT LUA_VERSION_STRING MATCHES "^[0-9.]+$")
-      string(REGEX REPLACE ".*;#define[ \t]+LUA_VERSION[ \t]+\"Lua ([0-9.]+)\"[ \t]*;.*" "\\1" LUA_VERSION_STRING ";${lua_version_strings};")
+    string(REGEX REPLACE ".*;#define[ \t]+LUA_RELEASE[ \t]+\"Lua ([0-9.]+)\"[ \t]*;.*" "\\1" Lua_VERSION ";${lua_version_strings};")
+    if (NOT Lua_VERSION MATCHES "^[0-9.]+$")
+      string(REGEX REPLACE ".*;#define[ \t]+LUA_VERSION[ \t]+\"Lua ([0-9.]+)\"[ \t]*;.*" "\\1" Lua_VERSION ";${lua_version_strings};")
     endif ()
-    string(REGEX REPLACE "^([0-9]+)\\.[0-9.]*$" "\\1" LUA_VERSION_MAJOR "${LUA_VERSION_STRING}")
-    string(REGEX REPLACE "^[0-9]+\\.([0-9]+)[0-9.]*$" "\\1" LUA_VERSION_MINOR "${LUA_VERSION_STRING}")
-    string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.([0-9]).*" "\\1" LUA_VERSION_PATCH "${LUA_VERSION_STRING}")
+    string(REGEX REPLACE "^([0-9]+)\\.[0-9.]*$" "\\1" Lua_VERSION_MAJOR "${Lua_VERSION}")
+    string(REGEX REPLACE "^[0-9]+\\.([0-9]+)[0-9.]*$" "\\1" Lua_VERSION_MINOR "${Lua_VERSION}")
+    string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.([0-9]).*" "\\1" Lua_VERSION_PATCH "${Lua_VERSION}")
   endif ()
   foreach (ver IN LISTS _lua_append_versions)
-    if (ver STREQUAL "${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}")
-      set(LUA_VERSION_MAJOR ${LUA_VERSION_MAJOR} PARENT_SCOPE)
-      set(LUA_VERSION_MINOR ${LUA_VERSION_MINOR} PARENT_SCOPE)
-      set(LUA_VERSION_PATCH ${LUA_VERSION_PATCH} PARENT_SCOPE)
-      set(LUA_VERSION_STRING ${LUA_VERSION_STRING} PARENT_SCOPE)
-      return()
+    if (ver STREQUAL "${Lua_VERSION_MAJOR}.${Lua_VERSION_MINOR}")
+      set(LUA_VERSION_STRING "${Lua_VERSION}")
+      set(LUA_VERSION_MAJOR "${Lua_VERSION_MAJOR}")
+      set(LUA_VERSION_MINOR "${Lua_VERSION_MINOR}")
+      set(LUA_VERSION_PATCH "${Lua_VERSION_PATCH}")
+
+      return(
+        PROPAGATE
+          Lua_VERSION
+          Lua_VERSION_MAJOR
+          Lua_VERSION_MINOR
+          Lua_VERSION_PATCH
+          LUA_VERSION_STRING
+          LUA_VERSION_MAJOR
+          LUA_VERSION_MINOR
+          LUA_VERSION_PATCH
+      )
     endif ()
   endforeach ()
-endfunction(_lua_get_header_version)
+endfunction()
 
 function(_lua_find_header)
   _lua_set_version_vars()
@@ -170,9 +278,9 @@
     endif()
     _lua_get_header_version()
     # Found accepted version -> Ok
-    if (LUA_VERSION_STRING)
+    if (Lua_VERSION)
       if (LUA_Debug)
-        message(STATUS "Found suitable version ${LUA_VERSION_STRING} in ${LUA_INCLUDE_DIR}/lua.h")
+        message(STATUS "Found suitable version ${Lua_VERSION} in ${LUA_INCLUDE_DIR}/lua.h")
       endif()
       return()
     endif()
@@ -192,12 +300,12 @@
 _lua_get_header_version()
 unset(_lua_append_versions)
 
-if (LUA_VERSION_STRING)
+if (Lua_VERSION)
   set(_lua_library_names
-    lua${LUA_VERSION_MAJOR}${LUA_VERSION_MINOR}
-    lua${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}
-    lua-${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}
-    lua.${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}
+    lua${Lua_VERSION_MAJOR}${Lua_VERSION_MINOR}
+    lua${Lua_VERSION_MAJOR}.${Lua_VERSION_MINOR}
+    lua-${Lua_VERSION_MAJOR}.${Lua_VERSION_MINOR}
+    lua.${Lua_VERSION_MAJOR}.${Lua_VERSION_MINOR}
     )
 endif ()
 
@@ -230,11 +338,9 @@
 endif ()
 
 include(FindPackageHandleStandardArgs)
-# handle the QUIETLY and REQUIRED arguments and set LUA_FOUND to TRUE if
-# all listed variables are TRUE
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(Lua
+find_package_handle_standard_args(Lua
                                   REQUIRED_VARS LUA_LIBRARIES LUA_INCLUDE_DIR
-                                  VERSION_VAR LUA_VERSION_STRING)
+                                  VERSION_VAR Lua_VERSION)
 
 mark_as_advanced(LUA_INCLUDE_DIR LUA_LIBRARY)
 
openSUSE Build Service is sponsored by