2014-01-16 12:33:28 -05:00
|
|
|
cmake_minimum_required (VERSION 2.8.2)
|
2013-12-10 13:41:43 -05:00
|
|
|
project (MCServer)
|
|
|
|
|
2014-08-10 14:34:11 -04:00
|
|
|
|
2014-06-28 06:49:08 -04:00
|
|
|
include_directories (SYSTEM "${CMAKE_CURRENT_SOURCE_DIR}/../lib/")
|
|
|
|
include_directories (SYSTEM "${CMAKE_CURRENT_SOURCE_DIR}/../lib/jsoncpp/include")
|
|
|
|
include_directories (SYSTEM "${CMAKE_CURRENT_SOURCE_DIR}/../lib/polarssl/include")
|
2015-01-09 05:07:43 -05:00
|
|
|
include_directories (SYSTEM "${CMAKE_CURRENT_SOURCE_DIR}/../lib/libevent/include")
|
2013-12-10 16:39:20 -05:00
|
|
|
|
2014-07-18 04:40:01 -04:00
|
|
|
set(FOLDERS
|
2014-07-18 18:27:50 -04:00
|
|
|
OSSupport HTTPServer Items Blocks Protocol Generating PolarSSL++ Bindings
|
2015-03-10 14:40:53 -04:00
|
|
|
WorldStorage Mobs Entities Simulator BlockEntities UI Generating/Prefabs
|
2014-11-18 06:07:08 -05:00
|
|
|
Noise
|
2014-07-18 04:40:01 -04:00
|
|
|
)
|
2013-12-10 18:20:39 -05:00
|
|
|
|
2014-07-18 17:08:49 -04:00
|
|
|
SET (SRCS
|
|
|
|
BiomeDef.cpp
|
|
|
|
BlockArea.cpp
|
|
|
|
BlockID.cpp
|
|
|
|
BlockInfo.cpp
|
2015-03-21 13:17:26 -04:00
|
|
|
Broadcaster.cpp
|
2014-07-18 17:08:49 -04:00
|
|
|
BoundingBox.cpp
|
|
|
|
ByteBuffer.cpp
|
|
|
|
ChatColor.cpp
|
|
|
|
Chunk.cpp
|
|
|
|
ChunkData.cpp
|
|
|
|
ChunkMap.cpp
|
|
|
|
ChunkSender.cpp
|
|
|
|
ChunkStay.cpp
|
|
|
|
ClientHandle.cpp
|
|
|
|
CommandOutput.cpp
|
|
|
|
CompositeChat.cpp
|
|
|
|
CraftingRecipes.cpp
|
|
|
|
Cuboid.cpp
|
|
|
|
DeadlockDetect.cpp
|
|
|
|
Enchantments.cpp
|
2014-10-23 02:41:57 -04:00
|
|
|
FastRandom.cpp
|
2014-07-18 17:08:49 -04:00
|
|
|
FurnaceRecipe.cpp
|
|
|
|
Globals.cpp
|
2014-10-23 09:15:10 -04:00
|
|
|
IniFile.cpp
|
2014-07-18 17:08:49 -04:00
|
|
|
Inventory.cpp
|
|
|
|
Item.cpp
|
|
|
|
ItemGrid.cpp
|
|
|
|
LightingThread.cpp
|
|
|
|
LineBlockTracer.cpp
|
|
|
|
LinearInterpolation.cpp
|
2014-08-12 11:05:04 -04:00
|
|
|
LoggerListeners.cpp
|
|
|
|
Logger.cpp
|
2014-07-18 17:08:49 -04:00
|
|
|
Map.cpp
|
|
|
|
MapManager.cpp
|
2015-05-14 10:47:51 -04:00
|
|
|
MemorySettingsRepository.cpp
|
2014-07-18 17:08:49 -04:00
|
|
|
MobCensus.cpp
|
|
|
|
MobFamilyCollecter.cpp
|
|
|
|
MobProximityCounter.cpp
|
|
|
|
MobSpawner.cpp
|
|
|
|
MonsterConfig.cpp
|
2015-05-26 21:35:28 -04:00
|
|
|
NetherPortalScanner.cpp
|
2015-05-14 10:47:51 -04:00
|
|
|
OverridesSettingsRepository.cpp
|
2014-07-18 17:08:49 -04:00
|
|
|
ProbabDistrib.cpp
|
2014-08-05 12:37:00 -04:00
|
|
|
RankManager.cpp
|
2014-07-18 17:08:49 -04:00
|
|
|
RCONServer.cpp
|
|
|
|
Root.cpp
|
|
|
|
Scoreboard.cpp
|
2015-06-11 16:20:04 -04:00
|
|
|
SelfTests.cpp
|
2014-07-18 17:08:49 -04:00
|
|
|
Server.cpp
|
2014-07-24 12:32:05 -04:00
|
|
|
SetChunkData.cpp
|
2015-05-29 19:18:52 -04:00
|
|
|
SpawnPrepare.cpp
|
2014-07-18 17:08:49 -04:00
|
|
|
Statistics.cpp
|
|
|
|
StringCompression.cpp
|
|
|
|
StringUtils.cpp
|
|
|
|
Tracer.cpp
|
|
|
|
VoronoiMap.cpp
|
|
|
|
WebAdmin.cpp
|
|
|
|
World.cpp
|
2014-11-18 06:07:08 -05:00
|
|
|
main.cpp
|
|
|
|
)
|
2014-07-18 17:08:49 -04:00
|
|
|
|
|
|
|
SET (HDRS
|
|
|
|
AllocationPool.h
|
|
|
|
BiomeDef.h
|
|
|
|
BlockArea.h
|
|
|
|
BlockID.h
|
|
|
|
BlockInServerPluginInterface.h
|
|
|
|
BlockInfo.h
|
|
|
|
BlockTracer.h
|
2015-03-21 13:17:26 -04:00
|
|
|
Broadcaster.h
|
2014-07-18 17:08:49 -04:00
|
|
|
BoundingBox.h
|
2015-06-05 04:19:58 -04:00
|
|
|
BuildInfo.h
|
2014-09-10 11:07:00 -04:00
|
|
|
BuildInfo.h.cmake
|
2014-07-18 17:08:49 -04:00
|
|
|
ByteBuffer.h
|
|
|
|
ChatColor.h
|
|
|
|
Chunk.h
|
|
|
|
ChunkData.h
|
|
|
|
ChunkDataCallback.h
|
|
|
|
ChunkDef.h
|
|
|
|
ChunkMap.h
|
|
|
|
ChunkSender.h
|
|
|
|
ChunkStay.h
|
|
|
|
ClientHandle.h
|
|
|
|
CommandOutput.h
|
|
|
|
CompositeChat.h
|
|
|
|
CraftingRecipes.h
|
|
|
|
Cuboid.h
|
|
|
|
DeadlockDetect.h
|
|
|
|
Defines.h
|
|
|
|
Enchantments.h
|
|
|
|
Endianness.h
|
2014-10-23 02:41:57 -04:00
|
|
|
FastRandom.h
|
2014-07-18 17:08:49 -04:00
|
|
|
ForEachChunkProvider.h
|
|
|
|
FurnaceRecipe.h
|
|
|
|
Globals.h
|
2014-10-23 09:15:10 -04:00
|
|
|
IniFile.h
|
2014-07-18 17:08:49 -04:00
|
|
|
Inventory.h
|
|
|
|
Item.h
|
|
|
|
ItemGrid.h
|
|
|
|
LightingThread.h
|
|
|
|
LineBlockTracer.h
|
|
|
|
LinearInterpolation.h
|
|
|
|
LinearUpscale.h
|
2014-08-12 11:05:04 -04:00
|
|
|
Logger.h
|
|
|
|
LoggerListeners.h
|
2014-07-18 17:08:49 -04:00
|
|
|
Map.h
|
|
|
|
MapManager.h
|
|
|
|
Matrix4.h
|
2015-05-14 10:47:51 -04:00
|
|
|
MemorySettingsRepository.h
|
2014-07-18 17:08:49 -04:00
|
|
|
MobCensus.h
|
|
|
|
MobFamilyCollecter.h
|
|
|
|
MobProximityCounter.h
|
|
|
|
MobSpawner.h
|
|
|
|
MonsterConfig.h
|
2015-05-26 21:35:28 -04:00
|
|
|
NetherPortalScanner.h
|
2015-05-14 10:47:51 -04:00
|
|
|
OverridesSettingsRepository.h
|
2014-07-18 17:08:49 -04:00
|
|
|
ProbabDistrib.h
|
2014-08-05 12:37:00 -04:00
|
|
|
RankManager.h
|
2014-07-18 17:08:49 -04:00
|
|
|
RCONServer.h
|
|
|
|
Root.h
|
|
|
|
Scoreboard.h
|
2015-06-11 16:20:04 -04:00
|
|
|
SelfTests.h
|
2014-07-18 17:08:49 -04:00
|
|
|
Server.h
|
2014-07-24 12:32:05 -04:00
|
|
|
SetChunkData.h
|
2015-05-14 10:47:51 -04:00
|
|
|
SettingsRepositoryInterface.h
|
2015-05-29 19:18:52 -04:00
|
|
|
SpawnPrepare.h
|
2014-07-18 17:08:49 -04:00
|
|
|
Statistics.h
|
|
|
|
StringCompression.h
|
|
|
|
StringUtils.h
|
|
|
|
Tracer.h
|
|
|
|
Vector3.h
|
|
|
|
VoronoiMap.h
|
|
|
|
WebAdmin.h
|
|
|
|
World.h
|
2014-11-18 06:07:08 -05:00
|
|
|
XMLParser.h
|
|
|
|
)
|
2014-07-18 17:08:49 -04:00
|
|
|
|
2014-07-18 19:04:07 -04:00
|
|
|
include_directories(".")
|
2014-07-29 11:45:55 -04:00
|
|
|
include_directories ("${CMAKE_CURRENT_SOURCE_DIR}/../lib/sqlite")
|
|
|
|
include_directories ("${CMAKE_CURRENT_SOURCE_DIR}/../lib/SQLiteCpp/include")
|
2015-05-14 10:47:51 -04:00
|
|
|
include_directories (SYSTEM "${CMAKE_CURRENT_SOURCE_DIR}/../lib/TCLAP/include")
|
2013-12-10 13:41:43 -05:00
|
|
|
|
2014-09-10 11:07:00 -04:00
|
|
|
configure_file("BuildInfo.h.cmake" "${CMAKE_CURRENT_SOURCE_DIR}/BuildInfo.h")
|
|
|
|
|
2015-05-19 14:32:10 -04:00
|
|
|
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
|
|
|
set_source_files_properties(BiomeDef.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=switch-enum")
|
|
|
|
set_source_files_properties(BlockArea.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=sign-conversion")
|
|
|
|
set_source_files_properties(BlockID.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=global-constructors")
|
2015-05-24 09:16:05 -04:00
|
|
|
set_source_files_properties(BoundingBox.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=global-constructors -Wno-error=float-equal")
|
|
|
|
set_source_files_properties(ByteBuffer.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=sign-conversion -Wno-error=old-style-cast -Wno-error=global-constructors")
|
2015-05-24 07:56:56 -04:00
|
|
|
set_source_files_properties(Chunk.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=old-style-cast")
|
|
|
|
set_source_files_properties(ChunkData.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=sign-conversion -Wno-error=old-style-cast")
|
|
|
|
set_source_files_properties(ChunkMap.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=shadow -Wno-error=sign-conversion -Wno-error=old-style-cast")
|
|
|
|
set_source_files_properties(ClientHandle.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=conversion -Wno-error=sign-conversion -Wno-error=global-constructors -Wno-error=old-style-cast")
|
2015-05-24 09:16:05 -04:00
|
|
|
set_source_files_properties(CompositeChat.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=global-constructors -Wno-error=missing-variable-declarations")
|
2015-05-24 07:56:56 -04:00
|
|
|
set_source_files_properties(Enchantments.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=old-style-cast")
|
|
|
|
set_source_files_properties(IniFile.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=sign-conversion -Wno-error=old-style-cast")
|
2015-05-19 14:32:10 -04:00
|
|
|
set_source_files_properties(Inventory.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=conversion")
|
2015-05-24 07:56:56 -04:00
|
|
|
set_source_files_properties(Item.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=conversion -Wno-error=old-style-cast")
|
2015-05-19 14:32:10 -04:00
|
|
|
set_source_files_properties(ItemGrid.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=conversion")
|
|
|
|
set_source_files_properties(LightingThread.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=conversion -Wno-error=sign-conversion")
|
2015-05-24 07:56:56 -04:00
|
|
|
set_source_files_properties(LinearInterpolation.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=old-style-cast")
|
|
|
|
set_source_files_properties(Map.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=conversion -Wno-error=old-style-cast")
|
2015-05-19 14:32:10 -04:00
|
|
|
set_source_files_properties(MobProximityCounter.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=float-equal")
|
|
|
|
set_source_files_properties(MobSpawner.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=switch-enum")
|
|
|
|
set_source_files_properties(RCONServer.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=sign-conversion")
|
2015-05-24 07:56:56 -04:00
|
|
|
set_source_files_properties(Root.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=sign-conversion -Wno-error=shadow -Wno-error=old-style-cast")
|
|
|
|
set_source_files_properties(Server.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=old-style-cast")
|
2015-05-19 14:32:10 -04:00
|
|
|
set_source_files_properties(Statistics.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=global-constructors")
|
2015-05-24 07:56:56 -04:00
|
|
|
set_source_files_properties(StringCompression.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=old-style-cast")
|
|
|
|
set_source_files_properties(StringUtils.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=conversion -Wno-error=old-style-cast")
|
2015-05-19 14:32:10 -04:00
|
|
|
set_source_files_properties(Tracer.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=sign-conversion")
|
2015-05-24 07:56:56 -04:00
|
|
|
set_source_files_properties(World.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=sign-conversion -Wno-error=old-style-cast")
|
2015-05-19 14:32:10 -04:00
|
|
|
set_source_files_properties(main.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=missing-variable-declarations -Wno-error=missing-prototypes")
|
|
|
|
endif()
|
|
|
|
|
2013-12-28 08:42:11 -05:00
|
|
|
if (NOT MSVC)
|
2014-03-28 11:42:32 -04:00
|
|
|
# Bindings need to reference other folders, so they are done here instead
|
|
|
|
# lib dependencies are not included
|
2014-07-18 18:27:50 -04:00
|
|
|
include_directories ("${CMAKE_CURRENT_SOURCE_DIR}/../lib/polarssl/include")
|
2014-01-23 14:00:36 -05:00
|
|
|
|
2014-07-18 19:04:07 -04:00
|
|
|
foreach(folder ${FOLDERS})
|
|
|
|
add_subdirectory(${folder})
|
|
|
|
endforeach(folder)
|
|
|
|
|
|
|
|
get_directory_property(BINDING_DEPENDENCIES DIRECTORY "Bindings" DEFINITION BINDING_DEPENDENCIES)
|
|
|
|
|
2014-01-25 08:35:04 -05:00
|
|
|
#clear file
|
2014-07-30 01:43:25 -04:00
|
|
|
file(WRITE ${CMAKE_CURRENT_SOURCE_DIR}/Bindings/BindingDependencies.txt)
|
|
|
|
foreach(dependency ${BINDING_DEPENDENCIES})
|
|
|
|
#write each dependency on a seperate line
|
|
|
|
file(APPEND ${CMAKE_CURRENT_SOURCE_DIR}/Bindings/BindingDependencies.txt "${dependency}\n")
|
2014-01-25 08:35:04 -05:00
|
|
|
endforeach()
|
|
|
|
|
2014-01-23 14:06:42 -05:00
|
|
|
set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "Bindings.cpp Bindings.h")
|
|
|
|
|
2014-07-18 17:08:49 -04:00
|
|
|
list(APPEND SOURCE "${SRCS}")
|
|
|
|
list(APPEND SOURCE "${HDRS}")
|
2013-12-19 10:07:45 -05:00
|
|
|
|
2014-01-13 11:15:34 -05:00
|
|
|
# If building a windows version, but not using MSVC, add the resources directly to the makefile:
|
|
|
|
if (WIN32)
|
2014-07-18 17:08:49 -04:00
|
|
|
list(APPEND SOURCE "Resources/MCServer.rc")
|
2014-01-13 11:15:34 -05:00
|
|
|
endif()
|
2013-12-26 08:54:46 -05:00
|
|
|
else ()
|
2014-03-28 11:42:32 -04:00
|
|
|
# MSVC-specific handling: Put all files into one project, separate by the folders:
|
2013-12-19 10:07:45 -05:00
|
|
|
|
2014-11-26 06:45:53 -05:00
|
|
|
# Add the MSVC-specific LeakFinder sources:
|
|
|
|
list (APPEND SRCS LeakFinder.cpp StackWalker.cpp)
|
|
|
|
list (APPEND HDRS LeakFinder.h StackWalker.h MemoryLeak.h)
|
|
|
|
|
2014-06-14 09:00:57 -04:00
|
|
|
source_group(Bindings FILES "Bindings/Bindings.cpp" "Bindings/Bindings.h")
|
|
|
|
|
2014-01-13 11:15:34 -05:00
|
|
|
# Add all subfolders as solution-folders:
|
2013-12-26 08:54:46 -05:00
|
|
|
function(includefolder PATH)
|
|
|
|
FILE(GLOB FOLDER_FILES
|
|
|
|
"${PATH}/*.cpp"
|
|
|
|
"${PATH}/*.h"
|
2014-01-13 11:15:34 -05:00
|
|
|
"${PATH}/*.rc"
|
2014-02-09 10:22:49 -05:00
|
|
|
"${PATH}/*.pkg"
|
2013-12-26 08:54:46 -05:00
|
|
|
)
|
2014-03-28 11:42:32 -04:00
|
|
|
string(REPLACE "/" "\\" PROJECT_PATH ${PATH})
|
|
|
|
source_group("${PROJECT_PATH}" FILES ${FOLDER_FILES})
|
2013-12-26 08:54:46 -05:00
|
|
|
endfunction(includefolder)
|
2013-12-19 10:07:45 -05:00
|
|
|
|
2013-12-26 08:54:46 -05:00
|
|
|
foreach(folder ${FOLDERS})
|
2014-07-18 17:08:49 -04:00
|
|
|
add_subdirectory(${folder})
|
2013-12-26 08:54:46 -05:00
|
|
|
includefolder(${folder})
|
2014-07-18 17:08:49 -04:00
|
|
|
|
|
|
|
# Get all source files in this folder:
|
|
|
|
get_directory_property(FOLDER_SRCS DIRECTORY ${folder} DEFINITION SRCS)
|
|
|
|
foreach (src ${FOLDER_SRCS})
|
|
|
|
list(APPEND SOURCE "${folder}/${src}")
|
|
|
|
endforeach(src)
|
|
|
|
|
|
|
|
# Get all headers in this folder:
|
|
|
|
get_directory_property(FOLDER_HDRS DIRECTORY ${folder} DEFINITION HDRS)
|
|
|
|
foreach (hdr ${FOLDER_HDRS})
|
|
|
|
list(APPEND SOURCE "${folder}/${hdr}")
|
|
|
|
endforeach(hdr)
|
2013-12-26 08:54:46 -05:00
|
|
|
endforeach(folder)
|
2013-12-19 19:31:52 -05:00
|
|
|
|
2014-07-18 17:08:49 -04:00
|
|
|
list(APPEND SOURCE "${SRCS}")
|
|
|
|
list(APPEND SOURCE "${HDRS}")
|
|
|
|
list(APPEND SOURCE "Bindings/AllToLua.pkg")
|
|
|
|
|
|
|
|
includefolder("Resources")
|
|
|
|
source_group("" FILES ${SOURCE})
|
|
|
|
|
2013-12-26 08:54:46 -05:00
|
|
|
include_directories("${PROJECT_SOURCE_DIR}")
|
2013-12-20 11:05:12 -05:00
|
|
|
|
2013-12-26 08:54:46 -05:00
|
|
|
# Precompiled headers (1st part)
|
|
|
|
SET_SOURCE_FILES_PROPERTIES(
|
2013-12-27 05:51:08 -05:00
|
|
|
Globals.cpp PROPERTIES COMPILE_FLAGS "/Yc\"Globals.h\""
|
|
|
|
)
|
|
|
|
# CMake cannot "remove" the precompiled header flags, so we use a dummy precompiled header compatible with just this one file:
|
|
|
|
SET_SOURCE_FILES_PROPERTIES(
|
|
|
|
Bindings/Bindings.cpp PROPERTIES COMPILE_FLAGS "/Yc\"string.h\" /Fp\"$(IntDir)/Bindings.pch\""
|
|
|
|
)
|
|
|
|
SET_SOURCE_FILES_PROPERTIES(
|
2014-11-26 05:00:21 -05:00
|
|
|
"StackWalker.cpp LeakFinder.cpp" PROPERTIES COMPILE_FLAGS "/Yc\"Globals.h\""
|
2013-12-26 08:54:46 -05:00
|
|
|
)
|
2014-01-13 11:15:34 -05:00
|
|
|
list(APPEND SOURCE "Resources/MCServer.rc")
|
2014-01-24 04:24:24 -05:00
|
|
|
|
|
|
|
# Make MSVC generate the PDB files even for the release build:
|
|
|
|
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Zi")
|
|
|
|
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /Zi")
|
|
|
|
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /DEBUG")
|
|
|
|
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /DEBUG")
|
|
|
|
set(CMAKE_MODULE_LINKER_FLAGS_RELEASE "${CMAKE_MODULE_LINKER_FLAGS_RELEASE} /DEBUG")
|
2013-12-19 10:07:45 -05:00
|
|
|
endif()
|
2013-12-10 13:41:43 -05:00
|
|
|
|
2014-07-21 11:35:09 -04:00
|
|
|
|
|
|
|
# Generate a list of all source files:
|
2014-08-13 19:03:30 -04:00
|
|
|
set(ALLFILES "${SRCS}" "${HDRS}")
|
2014-07-21 11:35:09 -04:00
|
|
|
foreach(folder ${FOLDERS})
|
|
|
|
get_directory_property(FOLDER_SRCS DIRECTORY ${folder} DEFINITION SRCS)
|
|
|
|
foreach (src ${FOLDER_SRCS})
|
|
|
|
list(APPEND ALLFILES "${folder}/${src}")
|
|
|
|
endforeach(src)
|
|
|
|
|
|
|
|
get_directory_property(FOLDER_HDRS DIRECTORY ${folder} DEFINITION HDRS)
|
|
|
|
foreach (hdr ${FOLDER_HDRS})
|
|
|
|
list(APPEND ALLFILES "${folder}/${hdr}")
|
|
|
|
endforeach(hdr)
|
|
|
|
endforeach(folder)
|
|
|
|
foreach(arg ${ALLFILES})
|
|
|
|
set(ALLFILESLINES "${ALLFILESLINES}${arg}\n")
|
|
|
|
endforeach()
|
|
|
|
FILE(WRITE "AllFiles.lst" "${ALLFILESLINES}")
|
|
|
|
|
|
|
|
|
2013-12-28 08:42:11 -05:00
|
|
|
set(EXECUTABLE MCServer)
|
2013-12-19 19:22:06 -05:00
|
|
|
|
2014-07-19 07:22:16 -04:00
|
|
|
if (MSVC)
|
2014-07-18 22:25:15 -04:00
|
|
|
get_directory_property(BINDING_OUTPUTS DIRECTORY "Bindings" DEFINITION BINDING_OUTPUTS)
|
|
|
|
get_directory_property(BINDING_DEPENDENCIES DIRECTORY "Bindings" DEFINITION BINDING_DEPENDENCIES)
|
2014-09-01 10:10:40 -04:00
|
|
|
|
|
|
|
# The paths in BINDING_DEPENDENCIES are relative to the Bindings folder, convert them relative to this folder:
|
|
|
|
foreach (dep ${BINDING_DEPENDENCIES})
|
|
|
|
list (APPEND BINDINGS_DEPENDENCIES "Bindings/${dep}")
|
|
|
|
endforeach(dep)
|
2014-07-18 22:25:15 -04:00
|
|
|
|
|
|
|
ADD_CUSTOM_COMMAND(
|
|
|
|
OUTPUT ${BINDING_OUTPUTS}
|
|
|
|
|
|
|
|
# Copy the Lua DLL into the Bindings folder, so that tolua can run from there:
|
|
|
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_SOURCE_DIR}/MCServer/lua51.dll ./lua51.dll
|
|
|
|
|
|
|
|
# Regenerate bindings:
|
2015-05-12 03:20:54 -04:00
|
|
|
COMMAND tolua -L BindingsProcessor.lua -o Bindings.cpp -H Bindings.h AllToLua.pkg
|
2014-07-19 07:22:16 -04:00
|
|
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Bindings/
|
2014-07-18 22:25:15 -04:00
|
|
|
|
|
|
|
# add any new generation dependencies here
|
2014-09-01 10:10:40 -04:00
|
|
|
DEPENDS ${BINDINGS_DEPENDENCIES}
|
2014-07-18 22:25:15 -04:00
|
|
|
)
|
|
|
|
endif()
|
|
|
|
|
2013-12-19 19:22:06 -05:00
|
|
|
add_executable(${EXECUTABLE} ${SOURCE})
|
2013-12-10 13:41:43 -05:00
|
|
|
|
2013-12-28 08:42:11 -05:00
|
|
|
|
2014-01-16 12:33:28 -05:00
|
|
|
# Output the executable into the $/MCServer folder, so that it has access to external resources:
|
|
|
|
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/MCServer)
|
|
|
|
SET_TARGET_PROPERTIES(${EXECUTABLE} PROPERTIES
|
|
|
|
RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_SOURCE_DIR}/MCServer
|
|
|
|
RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_SOURCE_DIR}/MCServer
|
|
|
|
RUNTIME_OUTPUT_DIRECTORY_DEBUGPROFILE ${CMAKE_SOURCE_DIR}/MCServer
|
|
|
|
RUNTIME_OUTPUT_DIRECTORY_RELEASEPROFILE ${CMAKE_SOURCE_DIR}/MCServer
|
|
|
|
)
|
2013-12-28 08:42:11 -05:00
|
|
|
|
|
|
|
|
|
|
|
# Make the debug executable have a "_debug" suffix
|
|
|
|
SET_TARGET_PROPERTIES(${EXECUTABLE} PROPERTIES DEBUG_POSTFIX "_debug")
|
|
|
|
|
2014-01-14 03:32:43 -05:00
|
|
|
# Make the profiled executables have a "_profile" postfix
|
|
|
|
SET_TARGET_PROPERTIES(${EXECUTABLE} PROPERTIES DEBUGPROFILE_POSTFIX "_debug_profile")
|
|
|
|
SET_TARGET_PROPERTIES(${EXECUTABLE} PROPERTIES RELEASEPROFILE_POSTFIX "_profile")
|
|
|
|
|
2013-12-26 08:54:46 -05:00
|
|
|
|
2013-12-27 05:51:08 -05:00
|
|
|
# Precompiled headers (2nd part)
|
2013-12-28 08:42:11 -05:00
|
|
|
if (MSVC)
|
2013-12-26 08:54:46 -05:00
|
|
|
SET_TARGET_PROPERTIES(
|
2013-12-27 05:51:08 -05:00
|
|
|
${EXECUTABLE} PROPERTIES COMPILE_FLAGS "/Yu\"Globals.h\""
|
|
|
|
OBJECT_DEPENDS "$(IntDir)/$(TargetName.pch)"
|
2013-12-26 08:54:46 -05:00
|
|
|
)
|
|
|
|
endif ()
|
|
|
|
|
|
|
|
|
2013-12-28 08:42:11 -05:00
|
|
|
if (NOT MSVC)
|
2014-07-18 04:40:01 -04:00
|
|
|
target_link_libraries(${EXECUTABLE}
|
2014-11-18 06:07:08 -05:00
|
|
|
OSSupport HTTPServer Bindings Items Blocks Noise
|
2014-07-18 04:40:01 -04:00
|
|
|
Protocol Generating Generating_Prefabs WorldStorage
|
2015-03-10 14:40:53 -04:00
|
|
|
Mobs Entities Simulator BlockEntities UI PolarSSL++
|
2014-07-18 04:40:01 -04:00
|
|
|
)
|
2013-12-26 08:54:46 -05:00
|
|
|
endif ()
|
2013-12-27 05:51:08 -05:00
|
|
|
if (WIN32)
|
|
|
|
target_link_libraries(${EXECUTABLE} expat tolualib ws2_32.lib Psapi.lib)
|
|
|
|
endif()
|
2015-05-24 22:07:31 -04:00
|
|
|
|
|
|
|
if (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
|
|
|
|
add_flags_lnk(-L/usr/local/lib)
|
|
|
|
endif()
|
|
|
|
|
2015-05-02 10:57:49 -04:00
|
|
|
target_link_libraries(${EXECUTABLE} luaexpat jsoncpp mbedtls zlib sqlite lua SQLiteCpp event_core event_extra)
|