cmake_minimum_required( VERSION 2.6 )
INCLUDE(CheckCSourceRuns)
+INCLUDE(CheckIncludeFiles)
+
+# Add custom SemiDebug build mode
+set(CMAKE_CXX_FLAGS_SEMIDEBUG "-O1 -g -Wall -Wabi" CACHE STRING
+ "Flags used by the C++ compiler during semidebug builds."
+ FORCE
+)
+set(CMAKE_C_FLAGS_SEMIDEBUG "-O1 -g -Wall -pedantic" CACHE STRING
+ "Flags used by the C compiler during semidebug builds."
+ FORCE
+)
+mark_as_advanced(
+ CMAKE_CXX_FLAGS_SEMIDEBUG
+ CMAKE_C_FLAGS_SEMIDEBUG
+)
+set(CMAKE_BUILD_TYPE "${CMAKE_BUILD_TYPE}" CACHE STRING
+ "Choose the type of build. Options are: None Debug SemiDebug RelWithDebInfo MinSizeRel."
+ FORCE
+)
# Set some random things default to not being visible in the GUI
mark_as_advanced(EXECUTABLE_OUTPUT_PATH LIBRARY_OUTPUT_PATH)
-mark_as_advanced(SQLITE3_INCLUDE_DIR SQLITE3_LIBRARY)
-mark_as_advanced(JSON_INCLUDE_DIR JSON_LIBRARY)
option(ENABLE_CURL "Enable cURL support for fetching media" 1)
if(WIN32)
# Windows
if(MSVC) # MSVC Specifics
+ set(PLATFORM_LIBS dbghelp.lib ${PLATFORM_LIBS})
# Surpress some useless warnings
add_definitions ( /D "_CRT_SECURE_NO_DEPRECATE" /W1 )
else() # Probably MinGW = GCC
set(CLIENT_PLATFORM_LIBS ${CLIENT_PLATFORM_LIBS} ${XXF86VM_LIBRARY})
endif()
-find_package(Sqlite3 REQUIRED)
+find_package(SQLite3 REQUIRED)
find_package(Json REQUIRED)
option(ENABLE_GLES "Enable OpenGL ES support" 0)
set(USE_REDIS 0)
-OPTION(ENABLE_REDIS "Enable redis backend" 1)
+OPTION(ENABLE_REDIS "Enable redis backend" 0)
if(ENABLE_REDIS)
find_library(REDIS_LIBRARY hiredis)
endif(REDIS_LIBRARY AND REDIS_INCLUDE_DIR)
endif(ENABLE_REDIS)
+CHECK_INCLUDE_FILES(endian.h HAVE_ENDIAN_H)
+if(NOT HAVE_ENDIAN_H)
+ set(HAVE_ENDIAN_H 0)
+endif(NOT HAVE_ENDIAN_H)
+
configure_file(
"${PROJECT_SOURCE_DIR}/cmake_config.h.in"
"${PROJECT_BINARY_DIR}/cmake_config.h"
cavegen.cpp
clientiface.cpp
collision.cpp
- connection.cpp
content_abm.cpp
content_mapnode.cpp
content_nodemeta.cpp
version.cpp
voxel.cpp
voxelalgorithms.cpp
+ network/connection.cpp
+ network/networkpacket.cpp
+ network/packethandlers/server.cpp
+ network/serveropcodes.cpp
${JTHREAD_SRCS}
${common_SCRIPT_SRCS}
${UTIL_SRCS}
convert_json.cpp
drawscene.cpp
filecache.cpp
+ fontengine.cpp
game.cpp
guiChatConsole.cpp
guiEngine.cpp
shader.cpp
sky.cpp
tile.cpp
+ wieldmesh.cpp
+ client/clientlauncher.cpp
+ network/clientopcodes.cpp
+ network/packethandlers/client.cpp
${minetest_SCRIPT_SRCS}
)
list(SORT minetest_SRCS)
# Visual Studio
# EHa enables SEH exceptions (used for catching segfaults)
- set(CMAKE_CXX_FLAGS_RELEASE "/EHa /O2 /Ob2 /Oi /Ot /Oy /GL /FD /MT /GS- /arch:SSE /fp:fast /D NDEBUG /D _HAS_ITERATOR_DEBUGGING=0 /TP")
+ set(CMAKE_CXX_FLAGS_RELEASE "/EHa /Ox /Ob2 /Oi /Ot /Oy /GL /FD /MT /GS- /arch:SSE /fp:fast /D NDEBUG /D _HAS_ITERATOR_DEBUGGING=0 /TP")
#set(CMAKE_EXE_LINKER_FLAGS_RELEASE "/LTCG /NODEFAULTLIB:\"libcmtd.lib\" /NODEFAULTLIB:\"libcmt.lib\"")
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "/LTCG")
+ set(CMAKE_CXX_FLAGS_SEMIDEBUG "/MDd /Zi /Ob0 /O1 /RTC1")
+
# Debug build doesn't catch exceptions by itself
# Add some optimizations because otherwise it's VERY slow
set(CMAKE_CXX_FLAGS_DEBUG "/MDd /Zi /Ob0 /Od /RTC1")
set(RELEASE_WARNING_FLAGS "")
endif()
- if(NOT APPLE AND NOT "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
- CHECK_CXX_COMPILER_FLAG("-Wno-unused-but-set-variable" HAS_UNUSED_BUT_SET_VARIABLE_WARNING)
- if(HAS_UNUSED_BUT_SET_VARIABLE_WARNING)
- set(WARNING_FLAGS "${WARNING_FLAGS} -Wno-unused-but-set-variable")
- endif(HAS_UNUSED_BUT_SET_VARIABLE_WARNING)
+ if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
+ # clang does not understand __extern_always_inline but libc headers use it
+ set(OTHER_FLAGS "${OTHER_FLAGS} \"-D__extern_always_inline=extern __always_inline\"")
endif()
if(MINGW)
else()
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3 -fomit-frame-pointer")
endif(APPLE)
- set(CMAKE_CXX_FLAGS_DEBUG "-g -O1 -Wall ${WARNING_FLAGS} ${OTHER_FLAGS}")
+ set(CMAKE_CXX_FLAGS_SEMIDEBUG "-g -O1 -Wall -Wabi ${WARNING_FLAGS} ${OTHER_FLAGS}")
+ set(CMAKE_CXX_FLAGS_DEBUG "-g -O0 -Wall -Wabi ${WARNING_FLAGS} ${OTHER_FLAGS}")
if(USE_GPROF)
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -pg")
if(FREETYPE_DLL)
install(FILES ${FREETYPE_DLL} DESTINATION ${BINDIR})
endif()
+ if(SQLITE3_DLL)
+ install(FILES ${SQLITE3_DLL} DESTINATION ${BINDIR})
+ endif()
if(LEVELDB_DLL)
install(FILES ${LEVELDB_DLL} DESTINATION ${BINDIR})
endif()
# Subdirectories
-if (SQLITE3_FOUND)
-else (SQLITE3_FOUND)
- add_subdirectory(sqlite)
-endif (SQLITE3_FOUND)
-
if (BUILD_CLIENT AND USE_FREETYPE)
add_subdirectory(cguittfont)
endif (BUILD_CLIENT AND USE_FREETYPE)