FindLua¶
查找 Lua 库
find_package(Lua [<version>] [...])
Lua 是一种可嵌入的脚本语言。
版本 3.18 中添加: 支持 Lua 5.4。
使用 Lua 时,其库头文件应包含在项目源代码中,如下所示:
#include <lua.h>
而不是
#include <lua/lua.h>
这是因为 Lua 头文件的位置可能因平台而异,并且可能存在于 lua/ 以外的位置。
结果变量¶
此模块定义了以下变量
Lua_FOUND3.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 所需的库。此列表包含
lua和lualib库。
缓存变量¶
以下缓存变量也可以设置
LUA_INCLUDE_DIR包含 Lua 头文件(例如
lua.h、lualib.h和lauxlib.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)