diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 60876044e..ee6409366 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -673,6 +673,22 @@ endif() 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 \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")