Fix broken cross-compiling
authorSfan5 <sfan5@live.de>
Sun, 16 Feb 2014 07:07:57 +0000 (08:07 +0100)
committerSfan5 <sfan5@live.de>
Sun, 16 Feb 2014 07:07:57 +0000 (08:07 +0100)
src/CMakeLists.txt

index 0e4bbbb672caa2ac1d3eebb38691f39f8d00eef1..85ce03b7993668a222310c6667e0635e21b2b6fc 100644 (file)
@@ -217,34 +217,39 @@ endif (NOT DISABLE_LUAJIT)
 set(USE_LUAJIT 0)
 if(LUA_LIBRARY AND LUA_INCLUDE_DIR)
        message (STATUS "LuaJIT found, checking for broken versions...")
-       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>
+       if(CMAKE_CROSSCOMPILING)
+               message(WARNING "Cross-compiling enabled, assuming LuaJIT is not broken")
+               set(VALID_LUAJIT_VERSION 1)
+       elseif(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 *[]) {
-                               \"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 = 0;
-                       for (i=0; i < sizeof(broken_luajit_versions); i++) {
-                               if (strcmp(LUAJIT_VERSION,broken_luajit_versions[i]) == 0) {
-                                       return 1;
+                       static char** broken_luajit_versions = (char *[]) {
+                                       \"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 = 0;
+                               for (i=0; i < sizeof(broken_luajit_versions); i++) {
+                                       if (strcmp(LUAJIT_VERSION,broken_luajit_versions[i]) == 0) {
+                                               return 1;
+                                       }
                                }
+                               return 0;
                        }
-                       return 0;
-               }
-               "
-               VALID_LUAJIT_VERSION)
-       set(CMAKE_REQUIRED_INCLUDES BACKUP_REQUIRED_INCS)
+                       "
+                       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)