diff --git a/tests/RHI/D3D12/integration/CMakeLists.txt b/tests/RHI/D3D12/integration/CMakeLists.txt index 09b147f5..4817c280 100644 --- a/tests/RHI/D3D12/integration/CMakeLists.txt +++ b/tests/RHI/D3D12/integration/CMakeLists.txt @@ -2,169 +2,10 @@ cmake_minimum_required(VERSION 3.15) project(D3D12_Integration) -set(ENGINE_ROOT_DIR ${CMAKE_SOURCE_DIR}/engine) - find_package(Python3 REQUIRED) enable_testing() -# Minimal test - just verifies initialization and render loop -add_executable(D3D12_Minimal - WIN32 - minimal/main.cpp -) - -target_include_directories(D3D12_Minimal PRIVATE - ${CMAKE_CURRENT_SOURCE_DIR}/minimal - ${ENGINE_ROOT_DIR}/include -) - -target_compile_definitions(D3D12_Minimal PRIVATE - UNICODE - _UNICODE -) - -target_link_libraries(D3D12_Minimal PRIVATE - d3d12 - dxgi - d3dcompiler - winmm - XCEngine -) - -# Render model test - complete rendering with model, shader, texture -add_executable(D3D12_RenderModel - WIN32 - render_model/main.cpp -) - -target_include_directories(D3D12_RenderModel PRIVATE - ${CMAKE_CURRENT_SOURCE_DIR}/render_model - ${ENGINE_ROOT_DIR}/include - ${ENGINE_ROOT_DIR} -) - -target_compile_definitions(D3D12_RenderModel PRIVATE - UNICODE - _UNICODE -) - -target_link_libraries(D3D12_RenderModel PRIVATE - d3d12 - dxgi - d3dcompiler - winmm - XCEngine -) - -# Copy Res folder to output directory for Minimal test -add_custom_command(TARGET D3D12_Minimal POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_directory - ${CMAKE_CURRENT_SOURCE_DIR}/minimal/Res - $/Res -) - -# Copy Res folder to output directory for RenderModel test -add_custom_command(TARGET D3D12_RenderModel POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_directory - ${CMAKE_CURRENT_SOURCE_DIR}/render_model/Res - $/Res -) - -# Copy test scripts to output directory for Minimal test -add_custom_command(TARGET D3D12_Minimal POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_CURRENT_SOURCE_DIR}/run.bat - $/ - COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_CURRENT_SOURCE_DIR}/compare_ppm.py - $/ - COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_CURRENT_SOURCE_DIR}/run_integration_test.py - $/ -) - -# Copy test scripts to output directory for RenderModel test -add_custom_command(TARGET D3D12_RenderModel POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_CURRENT_SOURCE_DIR}/run.bat - $/ - COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_CURRENT_SOURCE_DIR}/compare_ppm.py - $/ - COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_CURRENT_SOURCE_DIR}/run_integration_test.py - $/ -) - -# Triangle test - renders a rainbow gradient triangle -add_executable(D3D12_Triangle - WIN32 - triangle/main.cpp -) - -target_include_directories(D3D12_Triangle PRIVATE - ${CMAKE_CURRENT_SOURCE_DIR}/triangle - ${ENGINE_ROOT_DIR}/include -) - -target_compile_definitions(D3D12_Triangle PRIVATE - UNICODE - _UNICODE -) - -target_link_libraries(D3D12_Triangle PRIVATE - d3d12 - dxgi - d3dcompiler - winmm - XCEngine -) - -# Copy Res folder to output directory for Triangle test -add_custom_command(TARGET D3D12_Triangle POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_directory - ${CMAKE_CURRENT_SOURCE_DIR}/triangle/Res - $/Res -) - -# Copy test scripts to output directory for Triangle test -add_custom_command(TARGET D3D12_Triangle POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_CURRENT_SOURCE_DIR}/run.bat - $/ - COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_CURRENT_SOURCE_DIR}/compare_ppm.py - $/ - COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_CURRENT_SOURCE_DIR}/run_integration_test.py - $/ -) - -# Register integration tests with CTest -add_test(NAME D3D12_Minimal_Integration - COMMAND ${Python3_EXECUTABLE} $/run_integration_test.py - $ - minimal.ppm - ${CMAKE_CURRENT_SOURCE_DIR}/minimal/GT.ppm - 5 - WORKING_DIRECTORY $ -) - -add_test(NAME D3D12_RenderModel_Integration - COMMAND ${Python3_EXECUTABLE} $/run_integration_test.py - $ - screenshot.ppm - ${CMAKE_CURRENT_SOURCE_DIR}/render_model/GT.ppm - 5 - WORKING_DIRECTORY $ -) - -add_test(NAME D3D12_Triangle_Integration - COMMAND ${Python3_EXECUTABLE} $/run_integration_test.py - $ - triangle.ppm - ${CMAKE_CURRENT_SOURCE_DIR}/triangle/GT.ppm - 5 - WORKING_DIRECTORY $ -) +add_subdirectory(minimal) +add_subdirectory(triangle) +add_subdirectory(render_model) diff --git a/tests/RHI/D3D12/integration/minimal/CMakeLists.txt b/tests/RHI/D3D12/integration/minimal/CMakeLists.txt new file mode 100644 index 00000000..42ac5738 --- /dev/null +++ b/tests/RHI/D3D12/integration/minimal/CMakeLists.txt @@ -0,0 +1,57 @@ +cmake_minimum_required(VERSION 3.15) + +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) + +project(D3D12_Minimal) + +set(ENGINE_ROOT_DIR ${CMAKE_SOURCE_DIR}/engine) + +add_executable(D3D12_Minimal + WIN32 + main.cpp +) + +target_include_directories(D3D12_Minimal PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR} + ${ENGINE_ROOT_DIR}/include +) + +target_compile_definitions(D3D12_Minimal PRIVATE + UNICODE + _UNICODE +) + +target_link_libraries(D3D12_Minimal PRIVATE + d3d12 + dxgi + d3dcompiler + winmm + XCEngine +) + +add_custom_command(TARGET D3D12_Minimal POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_directory + ${CMAKE_CURRENT_SOURCE_DIR}/Res + $/Res +) + +add_custom_command(TARGET D3D12_Minimal POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_if_different + ${CMAKE_SOURCE_DIR}/tests/RHI/D3D12/integration/compare_ppm.py + $/ + COMMAND ${CMAKE_COMMAND} -E copy_if_different + ${CMAKE_SOURCE_DIR}/tests/RHI/D3D12/integration/run_integration_test.py + $/ + COMMAND ${CMAKE_COMMAND} -E copy_if_different + ${CMAKE_CURRENT_SOURCE_DIR}/GT.ppm + $/ +) + +add_test(NAME D3D12_Minimal_Integration + COMMAND ${Python3_EXECUTABLE} $/run_integration_test.py + $ + minimal.ppm + ${CMAKE_CURRENT_SOURCE_DIR}/GT.ppm + 5 + WORKING_DIRECTORY $ +) diff --git a/tests/RHI/D3D12/integration/render_model/CMakeLists.txt b/tests/RHI/D3D12/integration/render_model/CMakeLists.txt new file mode 100644 index 00000000..349f0fbd --- /dev/null +++ b/tests/RHI/D3D12/integration/render_model/CMakeLists.txt @@ -0,0 +1,55 @@ +cmake_minimum_required(VERSION 3.15) + +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) + +project(D3D12_RenderModel) + +set(ENGINE_ROOT_DIR ${CMAKE_SOURCE_DIR}/engine) + +add_executable(D3D12_RenderModel + WIN32 + main.cpp +) + +target_include_directories(D3D12_RenderModel PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR} + ${ENGINE_ROOT_DIR}/include + ${ENGINE_ROOT_DIR} +) + +target_compile_definitions(D3D12_RenderModel PRIVATE + UNICODE + _UNICODE +) + +target_link_libraries(D3D12_RenderModel PRIVATE + d3d12 + dxgi + d3dcompiler + winmm + XCEngine +) + +add_custom_command(TARGET D3D12_RenderModel POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_directory + ${CMAKE_CURRENT_SOURCE_DIR}/Res + $/Res +) + +add_custom_command(TARGET D3D12_RenderModel POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_if_different + ${CMAKE_SOURCE_DIR}/tests/RHI/D3D12/integration/compare_ppm.py + $/ + COMMAND ${CMAKE_COMMAND} -E copy_if_different + ${CMAKE_SOURCE_DIR}/tests/RHI/D3D12/integration/run_integration_test.py + $/ +) + +add_test(NAME D3D12_RenderModel_Integration + COMMAND ${Python3_EXECUTABLE} $/run_integration_test.py + $ + screenshot.ppm + ${CMAKE_CURRENT_SOURCE_DIR}/GT.ppm + 5 + WORKING_DIRECTORY $ +) diff --git a/tests/RHI/D3D12/integration/triangle/CMakeLists.txt b/tests/RHI/D3D12/integration/triangle/CMakeLists.txt new file mode 100644 index 00000000..55116b69 --- /dev/null +++ b/tests/RHI/D3D12/integration/triangle/CMakeLists.txt @@ -0,0 +1,57 @@ +cmake_minimum_required(VERSION 3.15) + +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) + +project(D3D12_Triangle) + +set(ENGINE_ROOT_DIR ${CMAKE_SOURCE_DIR}/engine) + +add_executable(D3D12_Triangle + WIN32 + main.cpp +) + +target_include_directories(D3D12_Triangle PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR} + ${ENGINE_ROOT_DIR}/include +) + +target_compile_definitions(D3D12_Triangle PRIVATE + UNICODE + _UNICODE +) + +target_link_libraries(D3D12_Triangle PRIVATE + d3d12 + dxgi + d3dcompiler + winmm + XCEngine +) + +add_custom_command(TARGET D3D12_Triangle POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_directory + ${CMAKE_CURRENT_SOURCE_DIR}/Res + $/Res +) + +add_custom_command(TARGET D3D12_Triangle POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_if_different + ${CMAKE_SOURCE_DIR}/tests/RHI/D3D12/integration/compare_ppm.py + $/ + COMMAND ${CMAKE_COMMAND} -E copy_if_different + ${CMAKE_SOURCE_DIR}/tests/RHI/D3D12/integration/run_integration_test.py + $/ + COMMAND ${CMAKE_COMMAND} -E copy_if_different + ${CMAKE_CURRENT_SOURCE_DIR}/GT.ppm + $/ +) + +add_test(NAME D3D12_Triangle_Integration + COMMAND ${Python3_EXECUTABLE} $/run_integration_test.py + $ + triangle.ppm + ${CMAKE_CURRENT_SOURCE_DIR}/GT.ppm + 5 + WORKING_DIRECTORY $ +)