]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/CMakeLists.txt
Don't handle lack of IPv6 as fatal in unit tests
[dragonfireclient.git] / src / CMakeLists.txt
index 0e4bbbb672caa2ac1d3eebb38691f39f8d00eef1..f8aa75ea5754433fb459a796f0a585cbcf3d056c 100644 (file)
@@ -217,34 +217,42 @@ 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>
-               
-               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;
+       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;
                        }
-                       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)
@@ -283,6 +291,25 @@ if(ENABLE_LEVELDB)
        endif(LEVELDB_LIBRARY AND LEVELDB_INCLUDE_DIR)
 endif(ENABLE_LEVELDB)
 
+set(USE_REDIS 0)
+
+OPTION(ENABLE_REDIS "Enable redis backend" 1)
+
+if(ENABLE_REDIS)
+       find_library(REDIS_LIBRARY hiredis)
+       find_path(REDIS_INCLUDE_DIR hiredis.h PATH_SUFFIXES hiredis)
+       message(STATUS "redis library: ${REDIS_LIBRARY}")
+       message(STATUS "redis headers: ${REDIS_INCLUDE_DIR}")
+       if(REDIS_LIBRARY AND REDIS_INCLUDE_DIR)
+               set(USE_REDIS 1)
+               message(STATUS "redis backend enabled")
+               include_directories(${REDIS_INCLUDE_DIR})
+       else(REDIS_LIBRARY AND REDIS_INCLUDE_DIR)
+               set(USE_REDIS 0)
+               message(STATUS "redis not found!")
+       endif(REDIS_LIBRARY AND REDIS_INCLUDE_DIR)
+endif(ENABLE_REDIS)
+
 configure_file(
        "${PROJECT_SOURCE_DIR}/cmake_config.h.in"
        "${PROJECT_BINARY_DIR}/cmake_config.h"
@@ -360,6 +387,7 @@ set(common_SRCS
        database-dummy.cpp
        database-leveldb.cpp
        database-sqlite3.cpp
+       database-redis.cpp
        player.cpp
        test.cpp
        sha1.cpp
@@ -377,7 +405,7 @@ set(common_SRCS
        ${UTIL_SRCS}
 )
 
-# This gives us the icon
+# This gives us the icon and file version information
 if(WIN32)
        set(WINRESOURCE_FILE ${CMAKE_CURRENT_SOURCE_DIR}/../misc/winresource.rc)
        if(MINGW)
@@ -385,10 +413,11 @@ if(WIN32)
                        set(CMAKE_RC_COMPILER "windres.exe")
                endif()
                ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/winresource_rc.o
-                       COMMAND ${CMAKE_RC_COMPILER} -I${CMAKE_CURRENT_SOURCE_DIR}
+                       COMMAND ${CMAKE_RC_COMPILER} -I${CMAKE_CURRENT_SOURCE_DIR} -I${CMAKE_CURRENT_BINARY_DIR}
                        -i${WINRESOURCE_FILE}
                        -o ${CMAKE_CURRENT_BINARY_DIR}/winresource_rc.o
-                       WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
+                       WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+                       DEPENDS ${WINRESOURCE_FILE})
                SET(common_SRCS ${common_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/winresource_rc.o)
        else(MINGW) # Probably MSVC
                set(common_SRCS ${common_SRCS} ${WINRESOURCE_FILE})
@@ -415,14 +444,10 @@ set(minetest_SRCS
        chat.cpp
        hud.cpp
        guiKeyChangeMenu.cpp
-       guiMessageMenu.cpp
-       guiTextInputMenu.cpp
        guiFormSpecMenu.cpp
        guiTable.cpp
-       guiPauseMenu.cpp
        guiPasswordChange.cpp
        guiVolumeChange.cpp
-       guiDeathScreen.cpp
        guiChatConsole.cpp
        client.cpp
        clientmedia.cpp
@@ -434,16 +459,9 @@ set(minetest_SRCS
        guiEngine.cpp
        guiFileSelectMenu.cpp
        convert_json.cpp
+       drawscene.cpp
        ${minetest_SCRIPT_SRCS}
 )
-
-if(USE_FREETYPE)
-       set(minetest_SRCS
-               ${minetest_SRCS}
-               intlGUIEditBox.cpp
-       )
-endif(USE_FREETYPE)
-
 list(SORT minetest_SRCS)
 
 # Server sources
@@ -526,6 +544,9 @@ if(BUILD_CLIENT)
        if (USE_LEVELDB)
                target_link_libraries(${PROJECT_NAME} ${LEVELDB_LIBRARY})
        endif(USE_LEVELDB)
+       if (USE_REDIS)
+               target_link_libraries(${PROJECT_NAME} ${REDIS_LIBRARY})
+       endif(USE_REDIS)
 endif(BUILD_CLIENT)
 
 if(BUILD_SERVER)
@@ -543,6 +564,9 @@ if(BUILD_SERVER)
        if (USE_LEVELDB)
                target_link_libraries(${PROJECT_NAME}server ${LEVELDB_LIBRARY})
        endif(USE_LEVELDB)
+       if (USE_REDIS)
+               target_link_libraries(${PROJECT_NAME}server ${REDIS_LIBRARY})
+       endif(USE_REDIS)
        if(USE_CURL)
                target_link_libraries(
                        ${PROJECT_NAME}server