|
|
@@ -5,7 +5,13 @@
|
|
|
FindLua
|
|
|
-------
|
|
|
|
|
|
-Finds the Lua library. Lua is a embeddable scripting language.
|
|
|
+Finds the Lua library:
|
|
|
+
|
|
|
+.. code-block:: cmake
|
|
|
+
|
|
|
+ find_package(Lua [<version>] [...])
|
|
|
+
|
|
|
+Lua is a embeddable scripting language.
|
|
|
|
|
|
.. versionadded:: 3.18
|
|
|
Support for Lua 5.4.
|
|
|
@@ -35,14 +41,27 @@ This module defines the following variables:
|
|
|
Boolean indicating whether (the requested version of) Lua is found. For
|
|
|
backward compatibility, the ``LUA_FOUND`` variable is also set to the same
|
|
|
value.
|
|
|
-``LUA_VERSION_STRING``
|
|
|
+
|
|
|
+``Lua_VERSION``
|
|
|
+ .. versionadded:: 4.2
|
|
|
+
|
|
|
The version of Lua found.
|
|
|
-``LUA_VERSION_MAJOR``
|
|
|
+
|
|
|
+``Lua_VERSION_MAJOR``
|
|
|
+ .. versionadded:: 4.2
|
|
|
+
|
|
|
The major version of Lua found.
|
|
|
-``LUA_VERSION_MINOR``
|
|
|
+
|
|
|
+``Lua_VERSION_MINOR``
|
|
|
+ .. versionadded:: 4.2
|
|
|
+
|
|
|
The minor version of Lua found.
|
|
|
-``LUA_VERSION_PATCH``
|
|
|
+
|
|
|
+``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.
|
|
|
@@ -56,6 +75,35 @@ The following cache variables may also be set:
|
|
|
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:
|
|
|
+
|
|
|
+``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
|
|
|
^^^^^^^^
|
|
|
|
|
|
@@ -81,6 +129,7 @@ project target:
|
|
|
#]=======================================================================]
|
|
|
|
|
|
cmake_policy(PUSH) # Policies apply to functions at definition-time
|
|
|
+cmake_policy(SET CMP0140 NEW)
|
|
|
cmake_policy(SET CMP0159 NEW) # file(STRINGS) with REGEX updates CMAKE_MATCH_<n>
|
|
|
|
|
|
unset(_lua_include_subdirs)
|
|
|
@@ -146,7 +195,7 @@ function(_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}")
|
|
|
@@ -159,27 +208,39 @@ function(_lua_get_header_version)
|
|
|
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[ \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 "${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()
|
|
|
@@ -208,9 +269,9 @@ function(_lua_find_header)
|
|
|
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()
|
|
|
@@ -230,12 +291,12 @@ _lua_find_header()
|
|
|
_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 ()
|
|
|
|
|
|
@@ -270,7 +331,7 @@ endif ()
|
|
|
include(FindPackageHandleStandardArgs)
|
|
|
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)
|
|
|
|