| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- # Distributed under the OSI-approved BSD 3-Clause License. See accompanying
- # file LICENSE.rst or https://cmake.org/licensing for details.
- #[=======================================================================[.rst:
- 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 :module:`FindLua` instead.
- Finds the Lua library:
- .. code-block:: cmake
- find_package(Lua50 [...])
- Lua is a embeddable scripting language.
- When working with Lua, its library headers are intended to be included in
- project source code as:
- .. code-block:: c
- #include <lua.h>
- and not:
- .. code-block:: c
- #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``
- .. versionadded:: 3.3
- Boolean indicating whether Lua was 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. This list includes both ``lua``
- and ``lualib`` libraries.
- Deprecated Variables
- ^^^^^^^^^^^^^^^^^^^^
- The following variables are provided for backward compatibility:
- ``LUA50_FOUND``
- .. deprecated:: 4.2
- Use ``Lua50_FOUND``, which has the same value.
- Boolean indicating whether Lua was found.
- Examples
- ^^^^^^^^
- Finding the Lua 5.0 library and creating an interface :ref:`imported target
- <Imported Targets>` that encapsulates its usage requirements for linking to a
- project target:
- .. code-block:: cmake
- 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 :module:`FindLua` module to find Lua in version-agnostic way.
- #]=======================================================================]
- find_path(LUA_INCLUDE_DIR lua.h
- HINTS
- ENV LUA_DIR
- PATH_SUFFIXES lua50 lua5.0 lua5 lua
- PATHS
- ~/Library/Frameworks
- /Library/Frameworks
- /opt
- )
- find_library(LUA_LIBRARY_lua
- NAMES lua50 lua5.0 lua-5.0 lua5 lua
- HINTS
- ENV LUA_DIR
- PATH_SUFFIXES lib
- PATHS
- ~/Library/Frameworks
- /Library/Frameworks
- /opt
- )
- # In an OS X framework, lualib is usually included as part of the framework
- # (like GLU in OpenGL.framework)
- if(${LUA_LIBRARY_lua} MATCHES "framework")
- set( LUA_LIBRARIES "${LUA_LIBRARY_lua}" CACHE STRING "Lua framework")
- else()
- find_library(LUA_LIBRARY_lualib
- NAMES lualib50 lualib5.0 lualib5 lualib
- HINTS
- ENV LUALIB_DIR
- ENV LUA_DIR
- PATH_SUFFIXES lib
- PATHS
- /opt
- )
- if(LUA_LIBRARY_lualib AND LUA_LIBRARY_lua)
- # include the math library for Unix
- if(UNIX AND NOT APPLE)
- find_library(MATH_LIBRARY_FOR_LUA m)
- set( LUA_LIBRARIES "${LUA_LIBRARY_lualib};${LUA_LIBRARY_lua};${MATH_LIBRARY_FOR_LUA}" CACHE STRING "This is the concatenation of lua and lualib libraries")
- # For Windows and Mac, don't need to explicitly include the math library
- else()
- set( LUA_LIBRARIES "${LUA_LIBRARY_lualib};${LUA_LIBRARY_lua}" CACHE STRING "This is the concatenation of lua and lualib libraries")
- endif()
- endif()
- endif()
- include(FindPackageHandleStandardArgs)
- find_package_handle_standard_args(Lua50 DEFAULT_MSG LUA_LIBRARIES LUA_INCLUDE_DIR)
- mark_as_advanced(LUA_INCLUDE_DIR LUA_LIBRARIES)
|