01b8ed5295
The BlockID.h file was removed from Globals.h and renamed to BlockType.h (main change) The BlockInfo.h file was removed from Globals.h (main change) The ENUM_BLOCK_ID and ENUM_ITEM_ID enum names were replaced with ENUM_BLOCK_TYPE and ENUM_ITEM_TYPE (cosmetics) The various enums, such as eDimension, eDamageType and eExplosionSource were moved from BlockType.h to Defines.h, together with the helper functions for converting between them and strings (StringToDimension et al.) (minor) Many inline functions were moved from headers to their respective cpp files, so that BlockType.h could be included only into the cpp file, rather than the header. That broke our tests a bit, since they pick bits and pieces out of the main code and provide stubs for the rest; they had to be re-stubbed and re-verified. eMonsterType values are no longer tied to E_ITEM_SPAWN_EGG_META_* values
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_static)
|
|
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
|
|
)
|