1# Locate LuaJIT library
2# This module defines
3#  LUAJIT_FOUND, if false, do not try to link to Lua
4#  LUA_INCLUDE_DIR, where to find lua.h
5#  LUA_VERSION_STRING, the version of Lua found (since CMake 2.8.8)
6#
7# This module is similar to FindLua51.cmake except that it finds LuaJit instead.
8
9FIND_PATH(LUA_INCLUDE_DIR luajit.h
10	HINTS
11	$ENV{LUA_DIR}
12	PATH_SUFFIXES include/luajit-2.1 include/luajit-2.0 include/luajit-5_1-2.1 include/luajit-5_1-2.0 include luajit
13	PATHS
14	~/Library/Frameworks
15	/Library/Frameworks
16	/sw # Fink
17	/opt/local # DarwinPorts
18	/opt/csw # Blastwave
19	/opt
20)
21
22# Test if running on vcpkg toolchain
23if(DEFINED VCPKG_TARGET_TRIPLET AND DEFINED VCPKG_APPLOCAL_DEPS)
24	# On vcpkg luajit is 'lua51' and normal lua is 'lua'
25	FIND_LIBRARY(LUA_LIBRARY
26		NAMES lua51
27		HINTS
28		$ENV{LUA_DIR}
29		PATH_SUFFIXES lib
30	)
31else()
32	FIND_LIBRARY(LUA_LIBRARY
33		NAMES luajit-5.1
34		HINTS
35		$ENV{LUA_DIR}
36		PATH_SUFFIXES lib64 lib
37		PATHS
38		~/Library/Frameworks
39		/Library/Frameworks
40		/sw
41		/opt/local
42		/opt/csw
43		/opt
44	)
45endif()
46
47
48IF(LUA_INCLUDE_DIR AND EXISTS "${LUA_INCLUDE_DIR}/luajit.h")
49	FILE(STRINGS "${LUA_INCLUDE_DIR}/luajit.h" lua_version_str REGEX "^#define[ \t]+LUA_RELEASE[ \t]+\"LuaJIT .+\"")
50
51	STRING(REGEX REPLACE "^#define[ \t]+LUA_RELEASE[ \t]+\"LuaJIT ([^\"]+)\".*" "\\1" LUA_VERSION_STRING "${lua_version_str}")
52	UNSET(lua_version_str)
53ENDIF()
54
55INCLUDE(FindPackageHandleStandardArgs)
56# handle the QUIETLY and REQUIRED arguments and set LUAJIT_FOUND to TRUE if
57# all listed variables are TRUE
58FIND_PACKAGE_HANDLE_STANDARD_ARGS(LuaJIT
59	REQUIRED_VARS LUA_LIBRARY LUA_INCLUDE_DIR
60	VERSION_VAR LUA_VERSION_STRING)
61
62MARK_AS_ADVANCED(LUA_INCLUDE_DIR LUA_LIBRARY LUA_MATH_LIBRARY)
63