Fix test for broken LuaJIT versions, solves #1152

This commit is contained in:
Sfan5 2014-02-23 18:16:00 +01:00
parent 3da56696b5
commit f6232d71b6
1 changed files with 10 additions and 7 deletions

View File

@ -220,15 +220,17 @@ if(LUA_LIBRARY AND LUA_INCLUDE_DIR)
if(CMAKE_CROSSCOMPILING)
message(WARNING "Cross-compiling enabled, assuming LuaJIT is not broken")
set(VALID_LUAJIT_VERSION 1)
elseif(CMAKE_CROSSCOMPILING)
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>
static char** broken_luajit_versions = (char *[]) {
#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\",
@ -237,10 +239,11 @@ if(LUA_LIBRARY AND LUA_INCLUDE_DIR)
\"LuaJIT 2.0.0-beta2\",
\"LuaJIT 2.0.0-beta1\"
};
int main(int argc,char** argv) {
unsigned int i = 0;
for (i=0; i < sizeof(broken_luajit_versions); i++) {
if (strcmp(LUAJIT_VERSION,broken_luajit_versions[i]) == 0) {
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;
}
}