FindLua51

Note

This module is specifically for Lua version branch 5.1, which is obsolete and not maintained anymore. In new code use the latest supported Lua version and the version-agnostic module FindLua instead.

Finds the Lua library. Lua is a embeddable scripting language.

When working with Lua, its library headers are intended to be included in project source code as:

#include <lua.h>

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/.

Result Variables

This module defines the following variables:

Lua51_FOUND

Boolean indicating whether Lua is found. For backward compatibility, the LUA51_FOUND variable is also set to the same value.

LUA_VERSION_STRING

The version of Lua found.

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.

LUA_LIBRARIES

Libraries needed to link against to use Lua.

Examples

Finding the Lua 5.1 library and creating an interface imported target that encapsulates its usage requirements for linking to a project target:

find_package(Lua51)

if(Lua51_FOUND AND NOT TARGET Lua51::Lua51)
  add_library(Lua51::Lua51 INTERFACE IMPORTED)
  set_target_properties(
    Lua51::Lua51
    PROPERTIES
      INTERFACE_INCLUDE_DIRECTORIES "${LUA_INCLUDE_DIR}"
      INTERFACE_LINK_LIBRARIES "${LUA_LIBRARIES}"
  )
endif()

target_link_libraries(project_target PRIVATE Lua51::Lua51)

See Also

  • The FindLua module to find Lua in version-agnostic way.