add_executable(SimVulcan
    main.cpp
)
target_link_libraries(SimVulcan PRIVATE
    simv_core simv_vk simv_mesh simv_editor
    glm::glm spdlog::spdlog
)
add_dependencies(SimVulcan simv_shaders)
simv_set_warnings(SimVulcan)

# Copy assets next to the executable.
add_custom_command(TARGET SimVulcan POST_BUILD
    COMMAND ${CMAKE_COMMAND} -E rm -rf "$<TARGET_FILE_DIR:SimVulcan>/assets"
    COMMAND ${CMAKE_COMMAND} -E copy_directory
        "${CMAKE_SOURCE_DIR}/assets"
        "$<TARGET_FILE_DIR:SimVulcan>/assets"
    COMMENT "Copying assets to output directory"
)

# Copy compiled SPIR-V next to the executable.
add_custom_command(TARGET SimVulcan POST_BUILD
    COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_BINARY_DIR}/spirv"
    COMMAND ${CMAKE_COMMAND} -E copy_directory
        "${CMAKE_BINARY_DIR}/spirv"
        "$<TARGET_FILE_DIR:SimVulcan>/spirv"
    COMMENT "Copying SPIR-V shaders to output directory"
)
