include(CheckCSourceCompiles)
+if(NOT USE_LUAJIT)
+ set(CMAKE_REQUIRED_INCLUDES ${LUA_INCLUDE_DIR})
+ unset(HAVE_ATCCALL CACHE)
+ # Note: we need to check the function without having the library
+ # available for linking, so check_symbol_exists won't work.
+ check_c_source_compiles("#include <lua.h>\nint main(){return sizeof(lua_atccall);}" HAVE_ATCCALL)
+ if(NOT HAVE_ATCCALL)
+ string(CONCAT explanation_msg
+ "It looks like you're trying to build Minetest using a system-wide "
+ "Lua installation. This is no longer supported because PUC Lua "
+ "cannot interoperate with C++ correctly. Read src/unittest/test_lua.cpp "
+ " for technical details.")
+ message(FATAL_ERROR ${explanation_msg})
+ endif()
+endif()
+
if(MSVC)
# Visual Studio
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /D WIN32_LEAN_AND_MEAN")