This commit is contained in:
2025-06-16 01:49:08 +03:00
parent a1f1e09af6
commit 82df3bb299
13 changed files with 562 additions and 41 deletions

View File

@@ -22,7 +22,8 @@ set_target_properties(fix::assimp PROPERTIES
INTERFACE_LINK_LIBRARIES "${ASSIMP_LIBRARIES};pugixml"
INTERFACE_LINK_DIRECTORIES "${ASSIMP_LIBRARY_DIRS}"
)
file(GLOB TERRAIN_SRC src/terrain/*.cpp)
file(GLOB TERRAIN_SRC ${CMAKE_SOURCE_DIR}/src/terrain/*.cpp)
file(GLOB WATER_SRC ${CMAKE_SOURCE_DIR}/water/*.cpp)
# The COMPONENTS part checks that OGRE was built the way we need it
# The CONFIG flag makes sure we get OGRE instead of OGRE-next
@@ -50,9 +51,9 @@ target_link_libraries(0_Bootstrap OgreBites OgreBullet OgrePaging ${BULLET_DYNAM
target_include_directories(0_Bootstrap PUBLIC OgreBites OgrePaging OgreBullet)
add_dependencies(0_Bootstrap stage_files)
add_executable(GuiTest GuiTest.cpp ${TERRAIN_SRC})
target_link_libraries(GuiTest OgreBites OgreBullet OgrePaging OgreTerrain ${OgreProcedural_LIBRARIES} ${BULLET_DYNAMICS_LIBRARY} ${BULLET_COLLISION_LIBRARY} ${BULLET_MATH_LIBRARY})
target_include_directories(GuiTest PUBLIC OgreBites OgrePaging OgreBullet OgreTerrain ${OgreProcedural_INCLUDE_DIRS})
add_executable(GuiTest GuiTest.cpp ${TERRAIN_SRC} ${WATER_SRC})
target_link_libraries(GuiTest OgreBites OgreBullet OgrePaging OgreTerrain OgreMeshLodGenerator ${OgreProcedural_LIBRARIES} ${BULLET_DYNAMICS_LIBRARY} ${BULLET_COLLISION_LIBRARY} ${BULLET_MATH_LIBRARY})
target_include_directories(GuiTest PUBLIC OgreBites OgrePaging OgreBullet OgreTerrain OgreMeshLodGenerator ${OgreProcedural_INCLUDE_DIRS})
add_dependencies(GuiTest stage_files import_buildings)
add_executable(Procedural Procedural.cpp ${TERRAIN_SRC})
@@ -130,23 +131,35 @@ set(DEBUG_MATERIAL_SRC
debug.program
debug.vert
)
set(WATER_SRC
water.material
water.program
water.frag
water.vert
water.compositor
waves2.png
)
set(MATERIAL_FILES)
foreach(MATERIAL_FILE ${SKYBOX_SRC})
list(APPEND MATERIAL_FILES skybox/${MATERIAL_FILE})
endforeach()
foreach(MATERIAL_FILE ${DEBUG_MATERIAL_SRC})
list(APPEND MATERIAL_FILES resources/debug/${MATERIAL_FILE})
endforeach()
foreach(MATERIAL_FILE ${WATER_SRC})
list(APPEND MATERIAL_FILES water/${MATERIAL_FILE})
endforeach()
set(MATERIALS_OUTPUT)
foreach(SKYBOX_FILE ${SKYBOX_SRC})
set(OUTPUT_FILE ${CMAKE_BINARY_DIR}/skybox/${SKYBOX_FILE})
set(INPUT_FILE ${CMAKE_SOURCE_DIR}/skybox/${SKYBOX_FILE})
add_custom_command(OUTPUT ${OUTPUT_FILE}
COMMAND ${CMAKE_COMMAND} -E copy ${INPUT_FILE} ${OUTPUT_FILE}
DEPENDS ${INPUT_FILE})
list(APPEND MATERIALS_OUTPUT ${OUTPUT_FILE})
endforeach()
foreach(DEBUG_MATERIAL_FILE ${DEBUG_MATERIAL_SRC})
set(OUTPUT_FILE ${CMAKE_BINARY_DIR}/resources/debug/${DEBUG_MATERIAL_FILE})
set(INPUT_FILE ${CMAKE_SOURCE_DIR}/resources/debug/${DEBUG_MATERIAL_FILE})
add_custom_command(OUTPUT ${OUTPUT_FILE}
COMMAND ${CMAKE_COMMAND} -E copy ${INPUT_FILE} ${OUTPUT_FILE}
DEPENDS ${INPUT_FILE})
list(APPEND MATERIALS_OUTPUT ${OUTPUT_FILE})
foreach(MATERIAL_FILE ${MATERIAL_FILES})
set(OUTPUT_FILE ${CMAKE_BINARY_DIR}/${MATERIAL_FILE})
set(INPUT_FILE ${CMAKE_SOURCE_DIR}/${MATERIAL_FILE})
add_custom_command(OUTPUT ${OUTPUT_FILE}
COMMAND ${CMAKE_COMMAND} -E copy ${INPUT_FILE} ${OUTPUT_FILE}
DEPENDS ${INPUT_FILE})
list(APPEND MATERIALS_OUTPUT ${OUTPUT_FILE})
endforeach()
add_custom_command(