forked from Mudlet/Mudlet
-
Notifications
You must be signed in to change notification settings - Fork 0
/
FindLua51.cmake
92 lines (83 loc) · 2.6 KB
/
FindLua51.cmake
1
2
3
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
# .rst: FindLua51
# ---------
#
# Locate Lua library This module defines
#
# ::
#
# LUA51_FOUND, if false, do not try to link to Lua LUA_LIBRARIES
# LUA_INCLUDE_DIR, where to find lua.h LUA_VERSION_STRING, the version of Lua
# found (since CMake 2.8.8)
#
# 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/
find_path(
LUA_INCLUDE_DIR lua.h
HINTS ENV LUA_DIR
PATH_SUFFIXES include/lua51 include/lua5.1 include/lua-5.1 include/lua include
PATHS ~/Library/Frameworks
/Library/Frameworks
/sw # Fink
/opt/local # DarwinPorts
/opt/csw # Blastwave
/opt)
find_library(
LUA_LIBRARY
NAMES lua51 lua5.1 lua-5.1 lua
HINTS ENV LUA_DIR
PATH_SUFFIXES lib
PATHS ~/Library/Frameworks /Library/Frameworks /sw /opt/local /opt/csw /opt)
if(LUA_LIBRARY)
# include the math library for Unix
if(UNIX
AND NOT APPLE
AND NOT BEOS
AND NOT HAIKU)
find_library(LUA_MATH_LIBRARY m)
find_library(LUA_DL_LIBRARY dl)
set(LUA_LIBRARIES
"${LUA_LIBRARY};${LUA_MATH_LIBRARY};${LUA_DL_LIBRARY}"
CACHE STRING "Lua Libraries")
# For Windows and Mac, don't need to explicitly include the math library
else()
set(LUA_LIBRARIES
"${LUA_LIBRARY}"
CACHE STRING "Lua Libraries")
endif()
endif()
if(LUA_INCLUDE_DIR AND EXISTS "${LUA_INCLUDE_DIR}/lua.h")
file(STRINGS "${LUA_INCLUDE_DIR}/lua.h" lua_version_str
REGEX "^#define[ \t]+LUA_RELEASE[ \t]+\"Lua .+\"")
string(REGEX REPLACE "^#define[ \t]+LUA_RELEASE[ \t]+\"Lua ([^\"]+)\".*"
"\\1" LUA_VERSION_STRING "${lua_version_str}")
unset(lua_version_str)
endif()
include(FindPackageHandleStandardArgs)
# handle the QUIETLY and REQUIRED arguments and set LUA_FOUND to TRUE if all
# listed variables are TRUE
find_package_handle_standard_args(
Lua51 REQUIRED_VARS LUA_LIBRARY LUA_INCLUDE_DIR VERSION_VAR
LUA_VERSION_STRING)
mark_as_advanced(LUA_INCLUDE_DIR LUA_LIBRARIES LUA_LIBRARY LUA_MATH_LIBRARY)
if(Lua51_FOUND AND NOT TARGET LUA51::LUA51)
add_library(LUA51::LUA51 UNKNOWN IMPORTED)
set_target_properties(
LUA51::LUA51
PROPERTIES IMPORTED_LOCATION "${LUA_LIBRARY}" INTERFACE_INCLUDE_DIRECTORIES
"${LUA_INCLUDE_DIR}"
INTERFACE_LINK_LIBRARIES "${LUA_MATH_LIBRARY};${LUA_DL_LIBRARY}")
endif()