+ message (STATUS "LuaJIT found, checking for broken versions...")
+ if(CMAKE_CROSSCOMPILING)
+ message(WARNING "Cross-compiling enabled, assuming LuaJIT is not broken")
+ set(VALID_LUAJIT_VERSION 1)
+ else(CMAKE_CROSSCOMPILING)
+ set(BACKUP_REQUIRED_INCS CMAKE_REQUIRED_INCLUDES)
+ set(CMAKE_REQUIRED_INCLUDES "${CMAKE_REQUIRED_INCLUDES} ${LUA_INCLUDE_DIR}")
+ CHECK_C_SOURCE_RUNS("
+ #include <luajit.h>
+ #include <stdio.h>
+ #include <string.h>
+
+ #define ARRAYSIZE(a) (sizeof(a) / sizeof((a)[0]))
+
+ static char *broken_luajit_versions[] = {
+ \"LuaJIT 2.0.0-beta7\",
+ \"LuaJIT 2.0.0-beta6\",
+ \"LuaJIT 2.0.0-beta5\",
+ \"LuaJIT 2.0.0-beta4\",
+ \"LuaJIT 2.0.0-beta3\",
+ \"LuaJIT 2.0.0-beta2\",
+ \"LuaJIT 2.0.0-beta1\"
+ };
+
+ int main(int argc, char *argv[]) {
+ unsigned int i;
+ for (i = 0; i < ARRAYSIZE(broken_luajit_versions); i++) {
+ if (strcmp(LUAJIT_VERSION, broken_luajit_versions[i]) == 0) {
+ return 1;
+ }
+ }
+ return 0;
+ }
+ "
+ VALID_LUAJIT_VERSION)
+ set(CMAKE_REQUIRED_INCLUDES BACKUP_REQUIRED_INCS)
+ endif(CMAKE_CROSSCOMPILING)
+ if (VALID_LUAJIT_VERSION)
+ message (STATUS "LuaJIT version ok")
+ set(USE_LUAJIT 1)
+ else (VALID_LUAJIT_VERSION)
+ message (STATUS "LuaJIT versions till 2.0.0beta7 known to be broken, update to at least beta8")
+ set(USE_LUAJIT 0)
+ endif (VALID_LUAJIT_VERSION)
+endif (LUA_LIBRARY AND LUA_INCLUDE_DIR)
+
+if(NOT USE_LUAJIT)