FindLua50.cmake 2.34 KB
Newer Older
1 2 3
# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.

4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
#[=======================================================================[.rst:
FindLua50
---------



Locate Lua library This module defines

::

  LUA50_FOUND, if false, do not try to link to Lua
  LUA_LIBRARIES, both lua and lualib
  LUA_INCLUDE_DIR, where to find lua.h and lualib.h (and probably lauxlib.h)



Note that the expected include convention is

::

  #include "lua.h"

and not

::

  #include <lua/lua.h>

This is because, the lua location is not standardized and may exist in
locations other than lua/
#]=======================================================================]
35

36
find_path(LUA_INCLUDE_DIR lua.h
37
  HINTS
38
    ENV LUA_DIR
39 40 41 42 43 44 45
  PATH_SUFFIXES include/lua50 include/lua5.0 include/lua5 include/lua include
  PATHS
  ~/Library/Frameworks
  /Library/Frameworks
  /opt
)

46
find_library(LUA_LIBRARY_lua
47
  NAMES lua50 lua5.0 lua-5.0 lua5 lua
48
  HINTS
49
    ENV LUA_DIR
50
  PATH_SUFFIXES lib
51 52 53 54 55 56 57 58
  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)
59 60
if(${LUA_LIBRARY_lua} MATCHES "framework")
  set( LUA_LIBRARIES "${LUA_LIBRARY_lua}" CACHE STRING "Lua framework")
61
else()
62
  find_library(LUA_LIBRARY_lualib
63
    NAMES lualib50 lualib5.0 lualib5 lualib
64
    HINTS
65 66
      ENV LUALIB_DIR
      ENV LUA_DIR
67
    PATH_SUFFIXES lib
68 69 70
    PATHS
    /opt
  )
71
  if(LUA_LIBRARY_lualib AND LUA_LIBRARY_lua)
72
    # include the math library for Unix
73 74
    if(UNIX AND NOT APPLE)
      find_library(MATH_LIBRARY_FOR_LUA m)
Luz Paz's avatar
Luz Paz committed
75
      set( LUA_LIBRARIES "${LUA_LIBRARY_lualib};${LUA_LIBRARY_lua};${MATH_LIBRARY_FOR_LUA}" CACHE STRING "This is the concatenation of lua and lualib libraries")
76
    # For Windows and Mac, don't need to explicitly include the math library
77
    else()
Luz Paz's avatar
Luz Paz committed
78
      set( LUA_LIBRARIES "${LUA_LIBRARY_lualib};${LUA_LIBRARY_lua}" CACHE STRING "This is the concatenation of lua and lualib libraries")
79 80 81
    endif()
  endif()
endif()
82 83


84
include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
85
# handle the QUIETLY and REQUIRED arguments and set LUA_FOUND to TRUE if
86 87
# all listed variables are TRUE
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Lua50  DEFAULT_MSG  LUA_LIBRARIES LUA_INCLUDE_DIR)
88

89
mark_as_advanced(LUA_INCLUDE_DIR LUA_LIBRARIES)
90