forked from teamnwah/openmw-tes3coop
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
143 lines
4.5 KiB
CMake
143 lines
4.5 KiB
CMake
project(tes3mp-server)
|
|
|
|
option(BUILD_WITH_PAWN "Enable Pawn language" OFF)
|
|
option(ENABLE_BREAKPAD "Enable Google Breakpad for Crash reporting" OFF)
|
|
|
|
if(ENABLE_BREAKPAD)
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DENABLE_BREAKPAD")
|
|
if (UNIX)
|
|
set(Breakpad_Headers "${CMAKE_SOURCE_DIR}/extern/breakpad/src/client/linux")
|
|
set(Breakpad_Library "${CMAKE_SOURCE_DIR}/extern/breakpad/src/client/linux/libbreakpad_client.a")
|
|
elseif(WIN32)
|
|
set(Breakpad_Headers "${CMAKE_SOURCE_DIR}/extern/breakpad/src/client/windows")
|
|
set(Breakpad_Library "-lbreakpad_client")
|
|
endif (UNIX)
|
|
include_directories(${CMAKE_SOURCE_DIR}/extern/breakpad/src ${Breakpad_Headers})
|
|
endif(ENABLE_BREAKPAD)
|
|
|
|
if(BUILD_WITH_PAWN)
|
|
|
|
add_subdirectory(amx)
|
|
|
|
#set(Pawn_ROOT ${CMAKE_SOURCE_DIR}/external/pawn/)
|
|
set(Pawn_INCLUDES ${Pawn_ROOT}/include)
|
|
set(Pawn_LIBRARY ${Pawn_ROOT}/lib/libamx.a)
|
|
set(PawnScript_Sources
|
|
Script/LangPawn/LangPAWN.cpp
|
|
Script/LangPawn/PawnFunc.cpp)
|
|
set(PawnScript_Headers ${Pawn_INCLUDES}
|
|
Script/LangPawn/LangPAWN.hpp
|
|
)
|
|
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DENABLE_PAWN -DPAWN_CELL_SIZE=64")
|
|
#include_directories(${Pawn_INCLUDES})
|
|
include_directories("./amx/linux")
|
|
endif(BUILD_WITH_PAWN)
|
|
|
|
option(BUILD_WITH_LUA "Enable Terra/Lua language" ON)
|
|
option(FORCE_LUA "Use Lua instead Terra" OFF)
|
|
if(BUILD_WITH_LUA)
|
|
#set(Terra_ROOT ${CMAKE_SOURCE_DIR}/external/terra/)
|
|
if(WIN32 OR FORCE_LUA)
|
|
find_package(Lua51 REQUIRED)
|
|
MESSAGE(STATUS "Found LUA_LIBRARY: ${LUA_LIBRARY}")
|
|
MESSAGE(STATUS "Found LUA_INCLUDE_DIR: ${LUA_INCLUDE_DIR}")
|
|
else()
|
|
find_package(Terra REQUIRED)
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DENABLE_TERRA")
|
|
endif()
|
|
set(LuaScript_Sources
|
|
Script/LangLua/LangLua.cpp
|
|
Script/LangLua/LuaFunc.cpp)
|
|
set(LuaScript_Headers ${Terra_INCLUDES} ${LUA_INCLUDE_DIR} ${CMAKE_SOURCE_DIR}/extern/LuaBridge ${CMAKE_SOURCE_DIR}/extern/LuaBridge/detail
|
|
Script/LangLua/LangLua.hpp)
|
|
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DENABLE_LUA")
|
|
include_directories(${Terra_INCLUDES} ${LUA_INCLUDE_DIR} ${CMAKE_SOURCE_DIR}/extern/LuaBridge)
|
|
endif(BUILD_WITH_LUA)
|
|
|
|
set(NativeScript_Sources
|
|
Script/LangNative/LangNative.cpp
|
|
)
|
|
set(NativeScript_Headers
|
|
Script/LangNative/LangNative.hpp
|
|
)
|
|
|
|
# local files
|
|
set(SERVER
|
|
main.cpp
|
|
Player.cpp
|
|
Networking.cpp
|
|
Utils.cpp
|
|
MasterClient.cpp
|
|
Cell.cpp
|
|
Script/Script.cpp Script/ScriptFunction.cpp
|
|
Script/ScriptFunctions.cpp
|
|
|
|
Script/Functions/CharClass.cpp Script/Functions/Chat.cpp Script/Functions/GUI.cpp
|
|
Script/Functions/Items.cpp Script/Functions/Quests.cpp Script/Functions/Stats.cpp
|
|
Script/Functions/Spells.cpp Script/Functions/Timer.cpp Script/Functions/Positions.cpp
|
|
Script/Functions/Cells.cpp Script/Functions/World.cpp
|
|
|
|
Script/API/TimerAPI.cpp Script/API/PublicFnAPI.cpp
|
|
${PawnScript_Sources}
|
|
${LuaScript_Sources}
|
|
${NativeScript_Sources}
|
|
|
|
)
|
|
|
|
set(SERVER_HEADER
|
|
Script/Types.hpp Script/Script.hpp Script/SystemInterface.hpp
|
|
Script/ScriptFunction.hpp Script/Platform.hpp Script/Language.hpp
|
|
Script/ScriptFunctions.hpp Script/API/TimerAPI.hpp Script/API/PublicFnAPI.hpp
|
|
${PawnScript_Headers}
|
|
${LuaScript_Headers}
|
|
${NativeScript_Headers}
|
|
)
|
|
source_group(tes3mp-server FILES ${SERVER} ${SERVER_HEADER})
|
|
|
|
include_directories("./")
|
|
|
|
# Main executable
|
|
|
|
add_executable(tes3mp-server
|
|
${SERVER_FILES}
|
|
${SERVER} ${SERVER_HEADER}
|
|
${APPLE_BUNDLE_RESOURCES}
|
|
)
|
|
add_definitions(-std=gnu++14 -Wno-ignored-qualifiers)
|
|
|
|
target_link_libraries(tes3mp-server
|
|
#${Boost_SYSTEM_LIBRARY}
|
|
#${Boost_THREAD_LIBRARY}
|
|
#${Boost_FILESYSTEM_LIBRARY}
|
|
#${Boost_PROGRAM_OPTIONS_LIBRARY}
|
|
${RakNet_LIBRARY}
|
|
components
|
|
${Terra_LIBRARY}
|
|
${LUA_LIBRARIES}
|
|
${Pawn_LIBRARY}
|
|
${Breakpad_Library}
|
|
)
|
|
|
|
if (UNIX)
|
|
target_link_libraries(tes3mp-server dl)
|
|
# Fix for not visible pthreads functions for linker with glibc 2.15
|
|
if(NOT APPLE)
|
|
target_link_libraries(tes3mp-server ${CMAKE_THREAD_LIBS_INIT})
|
|
endif(NOT APPLE)
|
|
endif(UNIX)
|
|
|
|
if (BUILD_WITH_CODE_COVERAGE)
|
|
add_definitions (--coverage)
|
|
target_link_libraries(tes3mp-server gcov)
|
|
endif()
|
|
|
|
if (MSVC)
|
|
# Debug version needs increased number of sections beyond 2^16
|
|
if (CMAKE_CL_64)
|
|
set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /bigobj")
|
|
endif (CMAKE_CL_64)
|
|
add_definitions("-D_USE_MATH_DEFINES")
|
|
endif (MSVC)
|