e6634ed26c
Closes #4708 This updates jsoncpp, mbedtls, TCLAP and SQLiteCpp to their latest stable release. A few additional changes were needed: * jsoncpp deprecated Reader, FastWriter and StyledWriter which I've replaced with some helper functions in JsonUtils.cpp * SQLiteCpp changed how it builds with external sqlite libraries, now expecting them to be installed. The simplest path was to remove sqlite from cuberite's submodule and just use SQLiteCpp's internal version.
246 lines
7.7 KiB
CMake
246 lines
7.7 KiB
CMake
cmake_minimum_required(VERSION 3.0.2)
|
|
enable_testing()
|
|
|
|
include_directories(${CMAKE_SOURCE_DIR}/src/)
|
|
include_directories(SYSTEM ${CMAKE_SOURCE_DIR}/lib/)
|
|
include_directories(SYSTEM ${CMAKE_SOURCE_DIR}/lib/mbedtls/include)
|
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
|
|
|
|
add_definitions(-DTEST_GLOBALS=1)
|
|
|
|
set (SHARED_SRCS
|
|
${CMAKE_SOURCE_DIR}/src/BiomeDef.cpp
|
|
${CMAKE_SOURCE_DIR}/src/BlockArea.cpp
|
|
${CMAKE_SOURCE_DIR}/src/BlockInfo.cpp
|
|
${CMAKE_SOURCE_DIR}/src/BlockType.cpp
|
|
${CMAKE_SOURCE_DIR}/src/Cuboid.cpp
|
|
${CMAKE_SOURCE_DIR}/src/ChunkData.cpp
|
|
${CMAKE_SOURCE_DIR}/src/Defines.cpp
|
|
${CMAKE_SOURCE_DIR}/src/Enchantments.cpp
|
|
${CMAKE_SOURCE_DIR}/src/FastRandom.cpp
|
|
${CMAKE_SOURCE_DIR}/src/IniFile.cpp
|
|
${CMAKE_SOURCE_DIR}/src/ProbabDistrib.cpp
|
|
${CMAKE_SOURCE_DIR}/src/StringCompression.cpp
|
|
${CMAKE_SOURCE_DIR}/src/StringUtils.cpp
|
|
${CMAKE_SOURCE_DIR}/src/VoronoiMap.cpp
|
|
|
|
${CMAKE_SOURCE_DIR}/src/Bindings/LuaState.cpp # Needed for PrefabPiecePool loading
|
|
|
|
${CMAKE_SOURCE_DIR}/src/Noise/Noise.cpp
|
|
|
|
${CMAKE_SOURCE_DIR}/src/OSSupport/CriticalSection.cpp # Needed for LuaState
|
|
${CMAKE_SOURCE_DIR}/src/OSSupport/File.cpp
|
|
${CMAKE_SOURCE_DIR}/src/OSSupport/GZipFile.cpp
|
|
${CMAKE_SOURCE_DIR}/src/OSSupport/StackTrace.cpp
|
|
${CMAKE_SOURCE_DIR}/src/OSSupport/WinStackWalker.cpp
|
|
|
|
${CMAKE_SOURCE_DIR}/src/WorldStorage/FastNBT.cpp
|
|
${CMAKE_SOURCE_DIR}/src/WorldStorage/SchematicFileSerializer.cpp
|
|
)
|
|
|
|
set (GENERATING_SRCS
|
|
${CMAKE_SOURCE_DIR}/src/Generating/BioGen.cpp
|
|
${CMAKE_SOURCE_DIR}/src/Generating/Caves.cpp
|
|
${CMAKE_SOURCE_DIR}/src/Generating/ChunkDesc.cpp
|
|
${CMAKE_SOURCE_DIR}/src/Generating/ChunkGenerator.cpp
|
|
${CMAKE_SOURCE_DIR}/src/Generating/CompoGen.cpp
|
|
${CMAKE_SOURCE_DIR}/src/Generating/CompoGenBiomal.cpp
|
|
${CMAKE_SOURCE_DIR}/src/Generating/ComposableGenerator.cpp
|
|
${CMAKE_SOURCE_DIR}/src/Generating/DistortedHeightmap.cpp
|
|
${CMAKE_SOURCE_DIR}/src/Generating/DungeonRoomsFinisher.cpp
|
|
${CMAKE_SOURCE_DIR}/src/Generating/EndGen.cpp
|
|
${CMAKE_SOURCE_DIR}/src/Generating/FinishGen.cpp
|
|
${CMAKE_SOURCE_DIR}/src/Generating/GridStructGen.cpp
|
|
${CMAKE_SOURCE_DIR}/src/Generating/HeiGen.cpp
|
|
${CMAKE_SOURCE_DIR}/src/Generating/MineShafts.cpp
|
|
${CMAKE_SOURCE_DIR}/src/Generating/Noise3DGenerator.cpp
|
|
${CMAKE_SOURCE_DIR}/src/Generating/PieceGeneratorBFSTree.cpp
|
|
${CMAKE_SOURCE_DIR}/src/Generating/PiecePool.cpp
|
|
${CMAKE_SOURCE_DIR}/src/Generating/PieceStructuresGen.cpp
|
|
${CMAKE_SOURCE_DIR}/src/Generating/Prefab.cpp
|
|
${CMAKE_SOURCE_DIR}/src/Generating/PrefabPiecePool.cpp
|
|
${CMAKE_SOURCE_DIR}/src/Generating/PrefabStructure.cpp
|
|
${CMAKE_SOURCE_DIR}/src/Generating/Ravines.cpp
|
|
${CMAKE_SOURCE_DIR}/src/Generating/RoughRavines.cpp
|
|
${CMAKE_SOURCE_DIR}/src/Generating/StructGen.cpp
|
|
${CMAKE_SOURCE_DIR}/src/Generating/Trees.cpp
|
|
${CMAKE_SOURCE_DIR}/src/Generating/TwoHeights.cpp
|
|
${CMAKE_SOURCE_DIR}/src/Generating/VerticalLimit.cpp
|
|
${CMAKE_SOURCE_DIR}/src/Generating/VerticalStrategy.cpp
|
|
${CMAKE_SOURCE_DIR}/src/Generating/VillageGen.cpp
|
|
)
|
|
|
|
set (SHARED_HDRS
|
|
${CMAKE_SOURCE_DIR}/src/BiomeDef.h
|
|
${CMAKE_SOURCE_DIR}/src/BlockArea.h
|
|
${CMAKE_SOURCE_DIR}/src/BlockInfo.h
|
|
${CMAKE_SOURCE_DIR}/src/BlockType.h
|
|
${CMAKE_SOURCE_DIR}/src/Cuboid.h
|
|
${CMAKE_SOURCE_DIR}/src/ChunkData.h
|
|
${CMAKE_SOURCE_DIR}/src/ChunkDef.h
|
|
${CMAKE_SOURCE_DIR}/src/Defines.h
|
|
${CMAKE_SOURCE_DIR}/src/Enchantments.h
|
|
${CMAKE_SOURCE_DIR}/src/FastRandom.h
|
|
${CMAKE_SOURCE_DIR}/src/Globals.h
|
|
${CMAKE_SOURCE_DIR}/src/IniFile.h
|
|
${CMAKE_SOURCE_DIR}/src/ProbabDistrib.h
|
|
${CMAKE_SOURCE_DIR}/src/StringCompression.h
|
|
${CMAKE_SOURCE_DIR}/src/StringUtils.h
|
|
${CMAKE_SOURCE_DIR}/src/VoronoiMap.h
|
|
|
|
${CMAKE_SOURCE_DIR}/src/Bindings/LuaState.h
|
|
|
|
${CMAKE_SOURCE_DIR}/src/Noise/Noise.h
|
|
|
|
${CMAKE_SOURCE_DIR}/src/OSSupport/CriticalSection.h
|
|
${CMAKE_SOURCE_DIR}/src/OSSupport/Event.h
|
|
${CMAKE_SOURCE_DIR}/src/OSSupport/File.h
|
|
${CMAKE_SOURCE_DIR}/src/OSSupport/GZipFile.h
|
|
${CMAKE_SOURCE_DIR}/src/OSSupport/StackTrace.h
|
|
${CMAKE_SOURCE_DIR}/src/OSSupport/WinStackWalker.h
|
|
|
|
${CMAKE_SOURCE_DIR}/src/WorldStorage/FastNBT.h
|
|
${CMAKE_SOURCE_DIR}/src/WorldStorage/SchematicFileSerializer.h
|
|
)
|
|
|
|
set (GENERATING_HDRS
|
|
${CMAKE_SOURCE_DIR}/src/Generating/BioGen.h
|
|
${CMAKE_SOURCE_DIR}/src/Generating/Caves.h
|
|
${CMAKE_SOURCE_DIR}/src/Generating/ChunkDesc.h
|
|
${CMAKE_SOURCE_DIR}/src/Generating/ChunkGenerator.h
|
|
${CMAKE_SOURCE_DIR}/src/Generating/CompoGen.h
|
|
${CMAKE_SOURCE_DIR}/src/Generating/CompoGenBiomal.h
|
|
${CMAKE_SOURCE_DIR}/src/Generating/ComposableGenerator.h
|
|
${CMAKE_SOURCE_DIR}/src/Generating/CompositedHeiGen.h
|
|
${CMAKE_SOURCE_DIR}/src/Generating/DistortedHeightmap.h
|
|
${CMAKE_SOURCE_DIR}/src/Generating/DungeonRoomsFinisher.h
|
|
${CMAKE_SOURCE_DIR}/src/Generating/EndGen.h
|
|
${CMAKE_SOURCE_DIR}/src/Generating/FinishGen.h
|
|
${CMAKE_SOURCE_DIR}/src/Generating/GridStructGen.h
|
|
${CMAKE_SOURCE_DIR}/src/Generating/HeiGen.h
|
|
${CMAKE_SOURCE_DIR}/src/Generating/IntGen.h
|
|
${CMAKE_SOURCE_DIR}/src/Generating/MineShafts.h
|
|
${CMAKE_SOURCE_DIR}/src/Generating/Noise3DGenerator.h
|
|
${CMAKE_SOURCE_DIR}/src/Generating/PieceGeneratorBFSTree.h
|
|
${CMAKE_SOURCE_DIR}/src/Generating/PiecePool.h
|
|
${CMAKE_SOURCE_DIR}/src/Generating/PieceStructuresGen.h
|
|
${CMAKE_SOURCE_DIR}/src/Generating/Prefab.h
|
|
${CMAKE_SOURCE_DIR}/src/Generating/PrefabPiecePool.h
|
|
${CMAKE_SOURCE_DIR}/src/Generating/PrefabStructure.h
|
|
${CMAKE_SOURCE_DIR}/src/Generating/ProtIntGen.h
|
|
${CMAKE_SOURCE_DIR}/src/Generating/Ravines.h
|
|
${CMAKE_SOURCE_DIR}/src/Generating/RoughRavines.h
|
|
${CMAKE_SOURCE_DIR}/src/Generating/ShapeGen.cpp
|
|
${CMAKE_SOURCE_DIR}/src/Generating/StructGen.h
|
|
${CMAKE_SOURCE_DIR}/src/Generating/Trees.h
|
|
${CMAKE_SOURCE_DIR}/src/Generating/TwoHeights.h
|
|
${CMAKE_SOURCE_DIR}/src/Generating/VerticalLimit.h
|
|
${CMAKE_SOURCE_DIR}/src/Generating/VerticalStrategy.h
|
|
${CMAKE_SOURCE_DIR}/src/Generating/VillageGen.h
|
|
)
|
|
|
|
set (STUBS
|
|
Stubs.cpp
|
|
LuaState_Typedefs.inc
|
|
LuaState_Declaration.inc
|
|
Bindings.h
|
|
)
|
|
|
|
|
|
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
|
add_flags_cxx("-Wno-error=global-constructors")
|
|
add_flags_cxx("-Wno-error=switch-enum")
|
|
endif()
|
|
|
|
|
|
|
|
add_library(GeneratorTestingSupport STATIC
|
|
${SHARED_SRCS}
|
|
${SHARED_HDRS}
|
|
${GENERATING_SRCS}
|
|
${GENERATING_HDRS}
|
|
${STUBS}
|
|
)
|
|
target_link_libraries(GeneratorTestingSupport tolualib zlib fmt::fmt jsoncpp_lib)
|
|
source_group("Stubs" FILES ${STUBS})
|
|
source_group("Generating" FILES ${GENERATING_HDRS} ${GENERATING_SRCS})
|
|
|
|
|
|
|
|
|
|
|
|
# BasicGeneratingTest:
|
|
add_executable(BasicGeneratorTest
|
|
BasicGeneratorTest.cpp
|
|
${CMAKE_SOURCE_DIR}/src/IniFile.cpp
|
|
${CMAKE_SOURCE_DIR}/src/mbedTLS++/Sha1Checksum.cpp
|
|
)
|
|
target_link_libraries(BasicGeneratorTest GeneratorTestingSupport mbedtls)
|
|
file(COPY "${CMAKE_SOURCE_DIR}/Server/items.ini" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")
|
|
add_test(
|
|
NAME BasicGeneratorTest
|
|
COMMAND BasicGeneratorTest
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
# LoadablePieces test:
|
|
source_group("Data files" FILES Test.cubeset Test1.schematic)
|
|
add_executable(LoadablePieces
|
|
LoadablePieces.cpp
|
|
Test.cubeset
|
|
Test1.schematic
|
|
)
|
|
target_link_libraries(LoadablePieces GeneratorTestingSupport)
|
|
add_test(
|
|
NAME LoadablePieces-test
|
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
|
COMMAND LoadablePieces
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
# PieceRotation test:
|
|
add_executable(PieceRotation
|
|
PieceRotationTest.cpp
|
|
)
|
|
target_link_libraries(PieceRotation GeneratorTestingSupport)
|
|
add_test(
|
|
NAME PieceRotation-test
|
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
|
COMMAND PieceRotation
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
# PieceGeneratorBFSTree test:
|
|
add_executable(PieceGeneratorBFSTree
|
|
PieceGeneratorBFSTreeTest.cpp
|
|
)
|
|
target_link_libraries(PieceGeneratorBFSTree GeneratorTestingSupport)
|
|
add_test(
|
|
NAME PieceGeneratorBFSTree-test
|
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/Server/Prefabs/PieceStructures
|
|
COMMAND PieceGeneratorBFSTree
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
# Put the projects into solution folders (MSVC):
|
|
set_target_properties(
|
|
BasicGeneratorTest
|
|
GeneratorTestingSupport
|
|
LoadablePieces
|
|
PieceGeneratorBFSTree
|
|
PieceRotation
|
|
PROPERTIES FOLDER Tests/Generating
|
|
)
|