aboutsummaryrefslogtreecommitdiff
path: root/src/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'src/CMakeLists.txt')
-rw-r--r--src/CMakeLists.txt76
1 files changed, 33 insertions, 43 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 7f207244c..c068be575 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -98,8 +98,8 @@ if(BUILD_CLIENT AND ENABLE_SOUND)
endif()
endif()
-
-option(ENABLE_GLES "Use OpenGL ES instead of OpenGL" FALSE)
+# TODO: this should be removed one day, we can enable it unconditionally
+option(ENABLE_GLES "Enable extra support code for OpenGL ES" FALSE)
mark_as_advanced(ENABLE_GLES)
option(ENABLE_TOUCH "Enable Touchscreen support" FALSE)
@@ -108,21 +108,6 @@ if(ENABLE_TOUCH)
endif()
if(BUILD_CLIENT)
- # transitive dependency from Irrlicht (see longer explanation below)
- if(NOT WIN32)
- if(ENABLE_GLES)
- find_package(OpenGLES2 REQUIRED)
- else()
- set(OPENGL_GL_PREFERENCE "LEGACY" CACHE STRING
- "See CMake Policy CMP0072 for reference. GLVND is broken on some nvidia setups")
- set(OpenGL_GL_PREFERENCE ${OPENGL_GL_PREFERENCE})
-
- find_package(OpenGL REQUIRED)
- endif()
- endif()
-endif()
-
-if(BUILD_CLIENT)
find_package(Freetype REQUIRED)
endif()
@@ -151,6 +136,7 @@ if(ENABLE_POSTGRESQL)
if(PostgreSQL_INCLUDE_DIR AND PostgreSQL_LIBRARY)
set(PostgreSQL_FOUND TRUE)
set(PostgreSQL_INCLUDE_DIRS ${PostgreSQL_INCLUDE_DIR})
+ set(PostgreSQL_LIBRARIES ${PostgreSQL_LIBRARY})
endif()
else()
find_package(PostgreSQL)
@@ -345,6 +331,7 @@ add_subdirectory(mapgen)
add_subdirectory(network)
add_subdirectory(script)
add_subdirectory(unittest)
+add_subdirectory(benchmark)
add_subdirectory(util)
add_subdirectory(irrlicht_changes)
add_subdirectory(server)
@@ -427,6 +414,9 @@ if(BUILD_UNITTESTS)
set(common_SRCS ${common_SRCS} ${UNITTEST_SRCS})
endif()
+if(BUILD_BENCHMARKS)
+ set(common_SRCS ${common_SRCS} ${BENCHMARK_SRCS})
+endif()
# This gives us the icon and file version information
if(WIN32)
@@ -467,6 +457,10 @@ if(BUILD_UNITTESTS)
set(client_SRCS ${client_SRCS} ${UNITTEST_CLIENT_SRCS})
endif()
+if(BUILD_BENCHMARKS)
+ set(client_SRCS ${client_SRCS} ${BENCHMARK_CLIENT_SRCS})
+endif()
+
list(SORT client_SRCS)
# Server sources
@@ -485,6 +479,9 @@ endif()
include_directories(
${PROJECT_BINARY_DIR}
${PROJECT_SOURCE_DIR}
+ ${PROJECT_SOURCE_DIR}/script
+)
+include_directories(SYSTEM
${ZLIB_INCLUDE_DIR}
${ZSTD_INCLUDE_DIR}
${SQLITE3_INCLUDE_DIR}
@@ -492,7 +489,6 @@ include_directories(
${GMP_INCLUDE_DIR}
${JSON_INCLUDE_DIR}
${LUA_BIT_INCLUDE_DIR}
- ${PROJECT_SOURCE_DIR}/script
)
if(USE_GETTEXT)
@@ -500,7 +496,7 @@ if(USE_GETTEXT)
endif()
if(BUILD_CLIENT)
- include_directories(
+ include_directories(SYSTEM
${FREETYPE_INCLUDE_DIRS}
${SOUND_INCLUDE_DIRS}
${X11_INCLUDE_DIR}
@@ -544,18 +540,6 @@ if(BUILD_CLIENT)
)
endif()
- if(ENABLE_GLES)
- target_link_libraries(
- ${PROJECT_NAME}
- ${OPENGLES2_LIBRARIES}
- ${EGL_LIBRARIES}
- )
- else()
- target_link_libraries(
- ${PROJECT_NAME}
- ${OPENGL_LIBRARIES}
- )
- endif()
if(USE_GETTEXT)
target_link_libraries(
${PROJECT_NAME}
@@ -592,6 +576,9 @@ if(BUILD_CLIENT)
if (USE_SPATIAL)
target_link_libraries(${PROJECT_NAME} ${SPATIAL_LIBRARY})
endif()
+ if(BUILD_BENCHMARKS)
+ target_link_libraries(${PROJECT_NAME} catch2)
+ endif()
endif(BUILD_CLIENT)
@@ -651,6 +638,9 @@ if(BUILD_SERVER)
${CURL_LIBRARY}
)
endif()
+ if(BUILD_BENCHMARKS)
+ target_link_libraries(${PROJECT_NAME}server catch2)
+ endif()
endif(BUILD_SERVER)
# Blacklisted locales that don't work.
@@ -718,15 +708,13 @@ if(MSVC)
endif()
else()
# GCC or compatible compilers such as Clang
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
+ set(WARNING_FLAGS "-Wall -Wextra")
+ set(WARNING_FLAGS "${WARNING_FLAGS} -Wno-unused-parameter -Wno-implicit-fallthrough")
if(WARN_ALL)
- set(RELEASE_WARNING_FLAGS "-Wall")
+ set(RELEASE_WARNING_FLAGS "${WARNING_FLAGS}")
else()
set(RELEASE_WARNING_FLAGS "")
endif()
- if(CMAKE_CXX_COMPILER_ID MATCHES "(Apple)?Clang")
- set(WARNING_FLAGS "${WARNING_FLAGS} -Wsign-compare")
- endif()
if(APPLE AND USE_LUAJIT)
# required per http://luajit.org/install.html
@@ -737,7 +725,7 @@ else()
# Move text segment below LuaJIT's 47-bit limit (see issue #9367)
if(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
# FreeBSD uses lld, and lld does not support -Ttext-segment, suggesting
- # --image-base instead. Not sure if it's equivalent change for the purpose
+ # --image-base instead. Not sure if it's equivalent change for the purpose
# but at least if fixes build on FreeBSD/aarch64
# XXX: the condition should also be changed to check for lld regardless of
# os, bit CMake doesn't have anything like CMAKE_LINKER_IS_LLD yet
@@ -768,7 +756,7 @@ else()
endif()
endif()
- set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG ${RELEASE_WARNING_FLAGS} ${WARNING_FLAGS} ${OTHER_FLAGS} -Wall -pipe -funroll-loops")
+ set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG ${RELEASE_WARNING_FLAGS} ${OTHER_FLAGS} -pipe -funroll-loops")
if(CMAKE_SYSTEM_NAME MATCHES "(Darwin|BSD|DragonFly)")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Os")
else()
@@ -781,8 +769,9 @@ else()
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${MATH_FLAGS}")
endif()
endif()
- set(CMAKE_CXX_FLAGS_SEMIDEBUG "-g -O1 -Wall ${WARNING_FLAGS} ${OTHER_FLAGS}")
- set(CMAKE_CXX_FLAGS_DEBUG "-g -O0 -Wall ${WARNING_FLAGS} ${OTHER_FLAGS}")
+ set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELEASE} -g")
+ set(CMAKE_CXX_FLAGS_SEMIDEBUG "-g -O1 ${WARNING_FLAGS} ${OTHER_FLAGS}")
+ set(CMAKE_CXX_FLAGS_DEBUG "-g -O0 ${WARNING_FLAGS} ${OTHER_FLAGS}")
if(USE_GPROF)
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -pg")
@@ -852,13 +841,14 @@ if(WIN32)
if(LUA_DLL)
install(FILES ${LUA_DLL} DESTINATION ${BINDIR})
endif()
- if(BUILD_CLIENT AND IRRLICHT_DLL)
- install(FILES ${IRRLICHT_DLL} DESTINATION ${BINDIR})
- endif()
if(BUILD_CLIENT AND USE_GETTEXT AND GETTEXT_DLL)
install(FILES ${GETTEXT_DLL} DESTINATION ${BINDIR})
endif()
endif()
+
+ if(BUILD_CLIENT AND IRRLICHT_DLL)
+ install(FILES ${IRRLICHT_DLL} DESTINATION ${BINDIR})
+ endif()
endif()
if(BUILD_CLIENT)