aboutsummaryrefslogtreecommitdiff
path: root/cmake/Modules/FindLua.cmake
blob: be5d92d8c017779f024e44149b003a49b3fc9b0d (plain)
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
# Look for Lua library to use
# This selects LuaJIT by default

option(ENABLE_LUAJIT "Enable LuaJIT support" TRUE)
set(USE_LUAJIT FALSE)
option(REQUIRE_LUAJIT "Require LuaJIT support" FALSE)
if(REQUIRE_LUAJIT)
	set(ENABLE_LUAJIT TRUE)
endif()
if(ENABLE_LUAJIT)
	find_package(LuaJIT)
	if(LUAJIT_FOUND)
		set(USE_LUAJIT TRUE)
		message (STATUS "Using LuaJIT provided by system.")
	elseif(REQUIRE_LUAJIT)
		message(FATAL_ERROR "LuaJIT not found whereas REQUIRE_LUAJIT=\"TRUE\" is used.\n"
			"To continue, either install LuaJIT or do not use REQUIRE_LUAJIT=\"TRUE\".")
	endif()
else()
	message (STATUS "LuaJIT detection disabled! (ENABLE_LUAJIT=0)")
endif()

if(NOT USE_LUAJIT)
	message(STATUS "LuaJIT not found, using bundled Lua.")
	set(LUA_LIBRARY lua)
	set(LUA_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/lib/lua/src)
	add_subdirectory(lib/lua)
endif()
span class="hl com"> loadable by any version. Other compatibility is not maintained. 0: original networked test with 1-byte nodes 1: update with 2-byte nodes 2: lighting is transmitted in param 3: optional fetching of far blocks 4: block compression 5: sector objects NOTE: block compression was left accidentally out 6: failed attempt at switching block compression on again 7: block compression switched on again 8: server-initiated block transfers and all kinds of stuff 9: block objects 10: water pressure 11: zlib'd blocks, block flags 12: UnlimitedHeightmap now uses interpolated areas 13: Mapgen v2 14: NodeMetadata 15: StaticObjects 16: larger maximum size of node metadata, and compression 17: MapBlocks contain timestamp 18: new generator (not really necessary, but it's there) 19: new content type handling 20: many existing content types translated to extended ones 21: dynamic content type allocation 22: minerals removed, facedir & wallmounted changed 23: new node metadata format 24: 16-bit node ids and node timers (never released as stable) 25: Improved node timer format 26: Never written; read the same as 25 */ // This represents an uninitialized or invalid format #define SER_FMT_VER_INVALID 255 // Highest supported serialization version #define SER_FMT_VER_HIGHEST_READ 26 // Saved on disk version #define SER_FMT_VER_HIGHEST_WRITE 25 // Lowest supported serialization version #define SER_FMT_VER_LOWEST_READ 0 // Lowest serialization version for writing // Can't do < 24 anymore; we have 16-bit dynamically allocated node IDs // in memory; conversion just won't work in this direction. #define SER_FMT_VER_LOWEST_WRITE 24 inline bool ser_ver_supported(s32 v) { return v >= SER_FMT_VER_LOWEST_READ && v <= SER_FMT_VER_HIGHEST_READ; } /* Misc. serialization functions */ void compressZlib(SharedBuffer<u8> data, std::ostream &os, int level = -1); void compressZlib(const std::string &data, std::ostream &os, int level = -1); void decompressZlib(std::istream &is, std::ostream &os); // These choose between zlib and a self-made one according to version void compress(SharedBuffer<u8> data, std::ostream &os, u8 version); //void compress(const std::string &data, std::ostream &os, u8 version); void decompress(std::istream &is, std::ostream &os, u8 version); #endif