Ver código fonte

Check if Lua version specified by make WITH_LUA_VERSION matches with the version in lua.h

See comment on #194
bel2125 9 anos atrás
pai
commit
ed68c6a277
2 arquivos alterados com 11 adições e 3 exclusões
  1. 5 2
      resources/Makefile.in-lua
  2. 6 1
      src/third_party/civetweb_lua.h

+ 5 - 2
resources/Makefile.in-lua

@@ -18,18 +18,21 @@ ifeq ($(WITH_LUA_VERSION), 501)
   $(info Lua: Using version 5.1.5)
   LUA_DIR = src/third_party/lua-5.1.5/src
   LUA_SHARED_LIB_FLAG = -llua5.1
+  LUA_CFLAGS = -DLUA_VERSION_MAKEFILE=501
   LUA_VERSION_KNOWN = 1
 endif
 ifeq ($(WITH_LUA_VERSION), 502)
   $(info Lua: Using version 5.2.4)
   LUA_DIR = src/third_party/lua-5.2.4/src
   LUA_SHARED_LIB_FLAG = -llua5.2
+  LUA_CFLAGS = -DLUA_VERSION_MAKEFILE=502
   LUA_VERSION_KNOWN = 1
 endif
 ifeq ($(WITH_LUA_VERSION), 503)
   $(info Lua: Using version 5.3.1)
   LUA_DIR = src/third_party/lua-5.3.1/src
   LUA_SHARED_LIB_FLAG = -llua5.3
+  LUA_CFLAGS = -DLUA_COMPAT_5_2 -DLUA_VERSION_MAKEFILE=503
   LUA_VERSION_KNOWN = 1
 endif
 
@@ -39,10 +42,10 @@ endif
 
 
 # Add flags for all Lua versions
-LUA_CFLAGS = -I$(LUA_DIR) -DLUA_COMPAT_ALL -DUSE_LUA
+LUA_CFLAGS += -I$(LUA_DIR) -DLUA_COMPAT_ALL -DUSE_LUA
 
 ifneq ($(TARGET_OS),WIN32)
-  LUA_CFLAGS += -DLUA_USE_POSIX -DLUA_USE_DLOPEN -DLUA_COMPAT_5_2
+  LUA_CFLAGS += -DLUA_USE_POSIX -DLUA_USE_DLOPEN
 endif
 
 ifdef WITH_LUA_SHARED

+ 6 - 1
src/third_party/civetweb_lua.h

@@ -53,7 +53,6 @@
 	}
 #define luaL_setfuncs(L, r, u) lua_register(L, r->name, r->func)
 
-
 #elif LUA_VERSION_NUM == 502
 /* Lua 5.2 detected */
 #define mg_lua_load lua_load
@@ -64,4 +63,10 @@
 
 #endif
 
+#ifdef LUA_VERSION_MAKEFILE
+#if LUA_VERSION_MAKEFILE != LUA_VERSION_NUM
+#error "Mismatch between Lua version specified in Makefile and Lua version in lua.h"
+#endif
+#endif
+
 #endif /* #ifndef CIVETWEB_LUA_H */