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