Skip to content

Commit 70ece71

Browse files
susnuxest31
authored andcommittedDec 5, 2015
Improve LuaJIT detection
On openSUSE luajit is not detected correctly. This is because openSUSE is using a lua version suffix, like other Linux distributions do it also. So the include directory is: include/luajit-5_1-2.0
1 parent 5643b9b commit 70ece71

File tree

3 files changed

+67
-27
lines changed

3 files changed

+67
-27
lines changed
 

Diff for: ‎cmake/Modules/FindLua.cmake

-25
This file was deleted.

Diff for: ‎cmake/Modules/FindLuaJIT.cmake

+50
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
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+
9+
FIND_PATH(LUA_INCLUDE_DIR luajit.h
10+
HINTS
11+
$ENV{LUA_DIR}
12+
PATH_SUFFIXES include/luajit-2.0 include/luajit-5_1-2.0 include
13+
PATHS
14+
~/Library/Frameworks
15+
/Library/Frameworks
16+
/sw # Fink
17+
/opt/local # DarwinPorts
18+
/opt/csw # Blastwave
19+
/opt
20+
)
21+
22+
FIND_LIBRARY(LUA_LIBRARY
23+
NAMES luajit-5.1
24+
HINTS
25+
$ENV{LUA_DIR}
26+
PATH_SUFFIXES lib64 lib
27+
PATHS
28+
~/Library/Frameworks
29+
/Library/Frameworks
30+
/sw
31+
/opt/local
32+
/opt/csw
33+
/opt
34+
)
35+
36+
IF(LUA_INCLUDE_DIR AND EXISTS "${LUA_INCLUDE_DIR}/luajit.h")
37+
FILE(STRINGS "${LUA_INCLUDE_DIR}/luajit.h" lua_version_str REGEX "^#define[ \t]+LUA_RELEASE[ \t]+\"LuaJIT .+\"")
38+
39+
STRING(REGEX REPLACE "^#define[ \t]+LUA_RELEASE[ \t]+\"LuaJIT ([^\"]+)\".*" "\\1" LUA_VERSION_STRING "${lua_version_str}")
40+
UNSET(lua_version_str)
41+
ENDIF()
42+
43+
INCLUDE(FindPackageHandleStandardArgs)
44+
# handle the QUIETLY and REQUIRED arguments and set LUAJIT_FOUND to TRUE if
45+
# all listed variables are TRUE
46+
FIND_PACKAGE_HANDLE_STANDARD_ARGS(LuaJit
47+
REQUIRED_VARS LUA_LIBRARY LUA_INCLUDE_DIR
48+
VERSION_VAR LUA_VERSION_STRING)
49+
50+
MARK_AS_ADVANCED(LUA_INCLUDE_DIR LUA_LIBRARY LUA_MATH_LIBRARY)

Diff for: ‎src/CMakeLists.txt

+17-2
Original file line numberDiff line numberDiff line change
@@ -155,8 +155,23 @@ if(ENABLE_FREETYPE)
155155
endif()
156156
endif(ENABLE_FREETYPE)
157157

158-
159-
find_package(Lua REQUIRED)
158+
# LuaJIT
159+
option(ENABLE_LUAJIT "Enable LuaJIT support" TRUE)
160+
set(USE_LUAJIT FALSE)
161+
if(ENABLE_LUAJIT)
162+
find_package(LuaJIT)
163+
if(LUAJIT_FOUND)
164+
set(USE_LUAJIT TRUE)
165+
endif(LUAJIT_FOUND)
166+
else()
167+
message (STATUS "LuaJIT detection disabled! (ENABLE_LUAJIT=0)")
168+
endif()
169+
if(NOT USE_LUAJIT)
170+
message(STATUS "LuaJIT not found, using bundled Lua.")
171+
set(LUA_LIBRARY "lua")
172+
set(LUA_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/lua/src")
173+
add_subdirectory(lua)
174+
endif()
160175

161176
find_package(GMP REQUIRED)
162177

0 commit comments

Comments
 (0)
Please sign in to comment.