FindLua

查找 Lua 库

find_package(Lua [<version>] [...])

Lua 是一种可嵌入的脚本语言。

版本 3.18 中添加: 支持 Lua 5.4。

使用 Lua 时,其库头文件应包含在项目源代码中,如下所示:

#include <lua.h>

而不是

#include <lua/lua.h>

这是因为 Lua 头文件的位置可能因平台而异,并且可能存在于 lua/ 以外的位置。

结果变量

此模块定义了以下变量

Lua_FOUND

3.3 版本中新增。

一个布尔值,指示是否找到了(请求版本的)Lua。

Lua_VERSION

版本 4.2 中添加。

找到的 Lua 的版本。

Lua_VERSION_MAJOR

版本 4.2 中添加。

找到的 Lua 的主版本号。

Lua_VERSION_MINOR

版本 4.2 中添加。

找到的 Lua 的次版本号。

Lua_VERSION_PATCH

版本 4.2 中添加。

找到的 Lua 的补丁版本号。

LUA_LIBRARIES

链接 Lua 所需的库。此列表包含 lualualib 库。

缓存变量

以下缓存变量也可以设置

LUA_INCLUDE_DIR

包含 Lua 头文件(例如 lua.hlualib.hlauxlib.h)的目录,这些文件是使用 Lua 所必需的。

已弃用变量

以下变量提供用于向后兼容性

LUA_FOUND

版本 4.2 起已弃用: 使用 Lua_FOUND,其值相同。

一个布尔值,指示是否找到了(请求版本的)Lua。

LUA_VERSION_STRING

版本 4.2 起已弃用: 已被 Lua_VERSION 取代。

找到的 Lua 的版本。

LUA_VERSION_MAJOR

版本 4.2 起已弃用: 已被 Lua_VERSION_MAJOR 取代。

找到的 Lua 的主版本号。

LUA_VERSION_MINOR

版本 4.2 起已弃用: 已被 Lua_VERSION_MINOR 取代。

找到的 Lua 的次版本号。

LUA_VERSION_PATCH

版本 4.2 起已弃用: 已被 Lua_VERSION_PATCH 取代。

找到的 Lua 的补丁版本号。

示例

查找 Lua 库并创建一个封装其使用要求以便链接到项目目标的 导入目标 接口。

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)