X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2FCMakeLists.txt;h=8e6f54303b76106f91362ddeabc45bd68a803eff;hb=5cb569af7f71a5d9a7aee234683993ab4df28e54;hp=b8a36918768e44c80ff75136cb16f60baef7838f;hpb=e9fe2303817c9d4d7efd84054733f146ee84b8ab;p=dragonfireclient.git diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index b8a369187..8e6f54303 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -5,6 +5,10 @@ if(RUN_IN_PLACE) add_definitions ( -DRUN_IN_PLACE ) endif(RUN_IN_PLACE) +if(NOT MSVC) + set(USE_GPROF 0 CACHE BOOL "Use -pg flag for g++") +endif() + # Use cmake_config.h add_definitions ( -DUSE_CMAKE_CONFIG_H ) @@ -20,9 +24,9 @@ if(WIN32) set(ZLIB_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/../../zlib/zlib-1.2.5" CACHE PATH "Zlib include directory") set(ZLIB_LIBRARIES "${PROJECT_SOURCE_DIR}/../../zlib125dll/dll32/zlibwapi.lib" - CACHE PATH "Path to zlibwapi.lib") + CACHE FILEPATH "Path to zlibwapi.lib") set(ZLIB_DLL "${PROJECT_SOURCE_DIR}/../../zlib125dll/dll32/zlibwapi.dll" - CACHE PATH "Path to zlibwapi.dll (for installation)") + CACHE FILEPATH "Path to zlibwapi.dll (for installation)") else() # Unix probably if(BUILD_CLIENT) @@ -36,7 +40,7 @@ else() set(PLATFORM_LIBS -lpthread) #set(CLIENT_PLATFORM_LIBS -lXxf86vm) # This way Xxf86vm is found on OpenBSD too - find_library(XXF86VM_LIBRARY, Xxf86vm) + find_library(XXF86VM_LIBRARY Xxf86vm) set(CLIENT_PLATFORM_LIBS ${XXF86VM_LIBRARY}) endif() @@ -46,6 +50,9 @@ configure_file( ) set(common_SRCS + collision.cpp + nodemetadata.cpp + serverobject.cpp noise.cpp mineral.cpp porting.cpp @@ -71,19 +78,25 @@ set(common_SRCS test.cpp ) +# Client sources set(minetest_SRCS ${common_SRCS} + keycode.cpp + clouds.cpp + clientobject.cpp + guiFurnaceMenu.cpp guiMainMenu.cpp guiMessageMenu.cpp guiTextInputMenu.cpp guiInventoryMenu.cpp guiPauseMenu.cpp - irrlichtwrapper.cpp client.cpp tile.cpp + game.cpp main.cpp ) +# Server sources set(minetestserver_SRCS ${common_SRCS} servermain.cpp @@ -94,17 +107,14 @@ include_directories( ${IRRLICHT_INCLUDE_DIR} ${ZLIB_INCLUDE_DIR} ${CMAKE_BUILD_TYPE} - "${PROJECT_SOURCE_DIR}/jthread" ${PNG_INCLUDE_DIR} + "${PROJECT_SOURCE_DIR}/jthread" ) set(EXECUTABLE_OUTPUT_PATH ../bin) -set(JTHREAD_LIBRARIES "jthread") -set(JTHREAD_SRCS "") - if(BUILD_CLIENT) - add_executable(minetest ${minetest_SRCS} ${JTHREAD_SRCS}) + add_executable(minetest ${minetest_SRCS}) target_link_libraries( minetest ${ZLIB_LIBRARIES} @@ -114,19 +124,19 @@ if(BUILD_CLIENT) ${BZIP2_LIBRARIES} ${PNG_LIBRARIES} ${X11_LIBRARIES} - ${JTHREAD_LIBRARIES} ${PLATFORM_LIBS} ${CLIENT_PLATFORM_LIBS} + jthread ) endif(BUILD_CLIENT) if(BUILD_SERVER) - add_executable(minetestserver ${minetestserver_SRCS} ${JTHREAD_SRCS}) + add_executable(minetestserver ${minetestserver_SRCS}) target_link_libraries( minetestserver ${ZLIB_LIBRARIES} - ${JTHREAD_LIBRARIES} ${PLATFORM_LIBS} + jthread ) endif(BUILD_SERVER) @@ -139,7 +149,8 @@ if(MSVC) # EHa enables SEH exceptions (used for catching segfaults) set(CMAKE_CXX_FLAGS_RELEASE "/EHa /MD /O2 /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\"") + #set(CMAKE_EXE_LINKER_FLAGS_RELEASE "/LTCG /NODEFAULTLIB:\"libcmtd.lib\" /NODEFAULTLIB:\"libcmt.lib\"") + set(CMAKE_EXE_LINKER_FLAGS_RELEASE "/LTCG") # Debug build doesn't catch exceptions by itself # Add some optimizations because otherwise it's VERY slow @@ -147,7 +158,7 @@ if(MSVC) if(BUILD_SERVER) set_target_properties(minetestserver PROPERTIES - COMPILE_FLAGS "/D SERVER") + COMPILE_DEFINITIONS "SERVER") endif(BUILD_SERVER) else() @@ -161,10 +172,14 @@ else() set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG ${WARNING_FLAGS} -O3 -ffast-math -Wall -fomit-frame-pointer -pipe -funroll-loops") set(CMAKE_CXX_FLAGS_DEBUG "-g -O1 -Wall") + + if(USE_GPROF) + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -pg") + endif() if(BUILD_SERVER) set_target_properties(minetestserver PROPERTIES - COMPILE_FLAGS "-DSERVER") + COMPILE_DEFINITIONS "SERVER") endif(BUILD_SERVER) endif() @@ -176,6 +191,9 @@ endif() # Installation # +# Example configuration file +install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../minetest.conf.example" DESTINATION ${EXAMPLE_CONF_DIR}) + if(BUILD_CLIENT) install(TARGETS minetest DESTINATION ${BINDIR})