# FindLua50

Note

This module is specifically for Lua version branch 5.0, 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:

`Lua50_FOUND`

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

## 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. This list includes both `lua` and `lualib` libraries.

## Examples

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

    find_package(Lua50)

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

    target_link_libraries(project_target PRIVATE Lua50::Lua50)

## See Also

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