summaryrefslogblamecommitdiffstats
path: root/tests/Generating/CMakeLists.txt
blob: 0232b7a8a5c504cdaab5d4a2aec5fc863f124490 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
                                     










                                                    
                                           

                                             



                                                 

                                                     
                                              
 
                                                                                           


                                               
                                                                                    


                                                        
                                                            




                                                                        































                                                                    


                                           
                                         

                                           


                                              
                                         

                                               

                                                   
                                            


                                                   






                                                           
                                                          




                                                                      



































                                                                  
          












                                                       
 






                                          
                                                                     
                                    
                                                                      




 















                                                                                           

                                                             




                             
                                                             




                                                     





                     


                             
                                                            




                                                     



 
 


                                     

                                                                    




                                                                            




 

                                                
                          

                               
                             
                     
                                          
 
cmake_minimum_required(VERSION 3.0.2)
enable_testing()

include_directories(${CMAKE_SOURCE_DIR}/src/)
include_directories(SYSTEM ${CMAKE_SOURCE_DIR}/lib/)
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/BlockID.cpp
	${CMAKE_SOURCE_DIR}/src/Cuboid.cpp
	${CMAKE_SOURCE_DIR}/src/ChunkData.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/BlockID.h
	${CMAKE_SOURCE_DIR}/src/Cuboid.h
	${CMAKE_SOURCE_DIR}/src/ChunkData.h
	${CMAKE_SOURCE_DIR}/src/ChunkDef.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)
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
)
target_link_libraries(BasicGeneratorTest GeneratorTestingSupport)
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
)