]> git.lizzy.rs Git - minetest.git/blobdiff - src/CMakeLists.txt
Small fixes of minetest.has_feature
[minetest.git] / src / CMakeLists.txt
index 190f4e9bd9d079056093975522d387e3ff3a7a0c..32e25c3bd00639bb7043724d26ecbf4c55355942 100644 (file)
@@ -27,6 +27,12 @@ set(CMAKE_BUILD_TYPE "${CMAKE_BUILD_TYPE}" CACHE STRING
 mark_as_advanced(EXECUTABLE_OUTPUT_PATH LIBRARY_OUTPUT_PATH)
 
 
+if(NOT (BUILD_CLIENT OR BUILD_SERVER))
+       message(WARNING "Neither BUILD_CLIENT nor BUILD_SERVER is set! Setting BUILD_SERVER=true")
+       set(BUILD_SERVER TRUE)
+endif()
+
+
 option(ENABLE_CURL "Enable cURL support for fetching media" TRUE)
 set(USE_CURL FALSE)
 
@@ -40,6 +46,15 @@ else()
        mark_as_advanced(CLEAR CURL_LIBRARY CURL_INCLUDE_DIR)
 endif()
 
+if(NOT USE_CURL)
+       if(BUILD_CLIENT)
+               message(WARNING "cURL is required to load the server list")
+       endif()
+       if(BUILD_SERVER)
+               message(WARNING "cURL is required to announce to the server list")
+       endif()
+endif()
+
 
 option(ENABLE_GETTEXT "Use GetText for internationalization" FALSE)
 set(USE_GETTEXT FALSE)
@@ -180,6 +195,21 @@ endif(ENABLE_REDIS)
 find_package(SQLite3 REQUIRED)
 find_package(Json REQUIRED)
 
+OPTION(ENABLE_SPATIAL "Enable SpatialIndex AreaStore backend" TRUE)
+set(USE_SPATIAL FALSE)
+
+if(ENABLE_SPATIAL)
+       find_library(SPATIAL_LIBRARY spatialindex)
+       find_path(SPATIAL_INCLUDE_DIR spatialindex/SpatialIndex.h)
+       if(SPATIAL_LIBRARY AND SPATIAL_INCLUDE_DIR)
+               set(USE_SPATIAL TRUE)
+               message(STATUS "SpatialIndex AreaStore backend enabled.")
+               include_directories(${SPATIAL_INCLUDE_DIR})
+       else(SPATIAL_LIBRARY AND SPATIAL_INCLUDE_DIR)
+               message(STATUS "SpatialIndex not found!")
+       endif(SPATIAL_LIBRARY AND SPATIAL_INCLUDE_DIR)
+endif(ENABLE_SPATIAL)
+
 
 if(NOT MSVC)
        set(USE_GPROF FALSE CACHE BOOL "Use -pg flag for g++")
@@ -249,11 +279,18 @@ else()
        else()
                set(PLATFORM_LIBS -lrt ${PLATFORM_LIBS})
        endif(APPLE)
-       #set(CLIENT_PLATFORM_LIBS -lXxf86vm)
+
        # This way Xxf86vm is found on OpenBSD too
        find_library(XXF86VM_LIBRARY Xxf86vm)
        mark_as_advanced(XXF86VM_LIBRARY)
        set(CLIENT_PLATFORM_LIBS ${CLIENT_PLATFORM_LIBS} ${XXF86VM_LIBRARY})
+
+       # Prefer local iconv if installed
+       find_library(ICONV_LIBRARY iconv)
+       mark_as_advanced(ICONV_LIBRARY)
+       if (ICONV_LIBRARY)
+               set(PLATFORM_LIBS ${PLATFORM_LIBS} ${ICONV_LIBRARY})
+       endif()
 endif()
 
 check_include_files(endian.h HAVE_ENDIAN_H)
@@ -275,13 +312,14 @@ add_custom_target(GenerateVersion
        WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}")
 
 
-add_subdirectory(jthread)
+add_subdirectory(threading)
 add_subdirectory(network)
 add_subdirectory(script)
 add_subdirectory(unittest)
 add_subdirectory(util)
 
 set(common_SRCS
+       areastore.cpp
        ban.cpp
        cavegen.cpp
        clientiface.cpp
@@ -417,11 +455,13 @@ set(client_SRCS
        guiVolumeChange.cpp
        hud.cpp
        imagefilters.cpp
+       intlGUIEditBox.cpp
        keycode.cpp
        localplayer.cpp
        main.cpp
        mapblock_mesh.cpp
        mesh.cpp
+       minimap.cpp
        particles.cpp
        shader.cpp
        sky.cpp
@@ -523,6 +563,9 @@ if(BUILD_CLIENT)
        if (USE_REDIS)
                target_link_libraries(${PROJECT_NAME} ${REDIS_LIBRARY})
        endif()
+       if (USE_SPATIAL)
+               target_link_libraries(${PROJECT_NAME} ${SPATIAL_LIBRARY})
+       endif()
 endif(BUILD_CLIENT)
 
 
@@ -547,6 +590,9 @@ if(BUILD_SERVER)
        if (USE_REDIS)
                target_link_libraries(${PROJECT_NAME}server ${REDIS_LIBRARY})
        endif()
+       if (USE_SPATIAL)
+               target_link_libraries(${PROJECT_NAME}server ${SPATIAL_LIBRARY})
+       endif()
        if(USE_CURL)
                target_link_libraries(
                        ${PROJECT_NAME}server