1
0
cuberite-2a/tests/Generating/CMakeLists.txt
peterbell10 e6634ed26c
Update submodules (#4727)
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.
2020-05-09 15:51:15 +01:00

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
)