Browse Source

Allow linking with LuaJIT libraries instead of Lua 5.1

Miku AuahDark 2 years ago
parent
commit
223c303bc6
3 changed files with 39 additions and 1 deletions
  1. 2 0
      CMakeLists.txt
  2. 29 0
      cmake/FindLuaJIT.cmake
  3. 8 1
      src/CMakeLists.txt

+ 2 - 0
CMakeLists.txt

@@ -2,6 +2,8 @@ cmake_minimum_required (VERSION 3.13)
 
 project (Https CXX)
 
+list (PREPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
+
 add_subdirectory (src)
 
 set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT https)

+ 29 - 0
cmake/FindLuaJIT.cmake

@@ -0,0 +1,29 @@
+# Sets the following variables:
+#
+# LUAJIT_FOUND
+# LUAJIT_INCLUDE_DIR
+# LUAJIT_LIBRARY
+
+set(LUAJIT_SEARCH_PATHS
+	/usr/local
+	/usr
+	$ENV{LUAJIT_DIR}
+	${LUAJIT_DIR}
+)
+
+find_path(LUAJIT_INCLUDE_DIR
+	NAMES luajit.h lua.h
+	PATH_SUFFIXES include/luajit-2.1 include/luajit2.1 include/luajit-2.0 include/luajit2.0 include src
+	PATHS ${LUAJIT_SEARCH_PATHS}
+)
+
+find_library(LUAJIT_LIBRARY
+	NAMES luajit5.1 luajit-5.1 lua51
+	PATH_SUFFIXES lib
+	PATHS ${LUAJIT_SEARCH_PATHS}
+)
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(LuaJIT DEFAULT_MSG LUAJIT_LIBRARY LUAJIT_INCLUDE_DIR)
+
+mark_as_advanced(LUAJIT_INCLUDE_DIR LUAJIT_LIBRARY)

+ 8 - 1
src/CMakeLists.txt

@@ -87,7 +87,14 @@ set_target_properties(https PROPERTIES PREFIX "")
 ### Dependencies
 target_link_libraries (https https-common)
 
-find_package (Lua 5.1 REQUIRED)
+find_package (LuaJIT)
+if (LUAJIT_INCLUDE_DIR)
+	set(LUA_INCLUDE_DIR ${LUAJIT_INCLUDE_DIR})
+	set(LUA_LIBRARIES ${LUAJIT_LIBRARIES})
+else ()
+	find_package (Lua 5.1 REQUIRED)
+endif ()
+
 include_directories (${LUA_INCLUDE_DIR})
 target_link_libraries (https ${LUA_LIBRARIES})