fix: alot of stuff changed. Mostly bugfixxes / architechture changes
This commit is contained in:
+62
-7
@@ -31,6 +31,11 @@ set(SRC_FILES
|
||||
"src/Graphics/Util.cpp"
|
||||
"src/Graphics/RenderResources.cpp"
|
||||
|
||||
"src/Graphics/Managers/VulkanInstanceManager.cpp"
|
||||
"src/Graphics/Managers/MemoryManager.cpp"
|
||||
"src/Graphics/Managers/FrameManager.cpp"
|
||||
"src/Graphics/Managers/ImageManager.cpp"
|
||||
|
||||
"src/Graphics/Resources/GPUImage.cpp"
|
||||
"src/Graphics/Resources/NBuffer.cpp"
|
||||
"src/Graphics/Resources/Cubemap.cpp"
|
||||
@@ -139,30 +144,80 @@ set(ASSETS_RUNTIME_DIR "${CMAKE_CURRENT_LIST_DIR}/assets_runtime")
|
||||
# VERBATIM
|
||||
#)
|
||||
|
||||
file(GLOB_RECURSE ENGINE_ASSET_SOURCES CONFIGURE_DEPENDS
|
||||
"${ASSETS_SRC_DIR}/*")
|
||||
|
||||
add_custom_target(_internal_clean_engine_assets
|
||||
COMMAND TheChef
|
||||
--input "${ASSETS_SRC_DIR}"
|
||||
--output "${ASSETS_RUNTIME_DIR}"
|
||||
--clean
|
||||
DEPENDS TheChef
|
||||
)
|
||||
|
||||
add_custom_target(_internal_cook_engine_assets
|
||||
COMMAND TheChef
|
||||
--input "${ASSETS_SRC_DIR}"
|
||||
--output "${ASSETS_RUNTIME_DIR}"
|
||||
--clean
|
||||
)
|
||||
|
||||
add_custom_target(_internal_cook_engine_assets ALL
|
||||
COMMAND TheChef
|
||||
--input "${ASSETS_SRC_DIR}"
|
||||
--output "${ASSETS_RUNTIME_DIR}"
|
||||
DEPENDS TheChef
|
||||
DEPENDS TheChef ${ENGINE_ASSET_SOURCES}
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
find_program(SPIRV_VAL_EXECUTABLE NAMES spirv-val spirv-val.exe)
|
||||
if (SPIRV_VAL_EXECUTABLE)
|
||||
file(GLOB_RECURSE ENGINE_SHADER_SOURCES CONFIGURE_DEPENDS
|
||||
"${ASSETS_SRC_DIR}/*.vert"
|
||||
"${ASSETS_SRC_DIR}/*.frag"
|
||||
"${ASSETS_SRC_DIR}/*.comp")
|
||||
|
||||
set(VALIDATE_SHADER_COMMANDS)
|
||||
foreach(shader_source IN LISTS ENGINE_SHADER_SOURCES)
|
||||
file(RELATIVE_PATH shader_relative "${ASSETS_SRC_DIR}" "${shader_source}")
|
||||
list(APPEND VALIDATE_SHADER_COMMANDS
|
||||
COMMAND "${SPIRV_VAL_EXECUTABLE}"
|
||||
"${ASSETS_RUNTIME_DIR}/${shader_relative}.spv")
|
||||
endforeach()
|
||||
|
||||
add_custom_target(_internal_validate_engine_shaders
|
||||
DEPENDS _internal_cook_engine_assets
|
||||
${VALIDATE_SHADER_COMMANDS}
|
||||
)
|
||||
endif()
|
||||
|
||||
function(destrum_cook_engine_assets GAME_TARGET GAME_OUTPUT_DIR)
|
||||
# This resolves to destrum's own directory at function DEFINITION time
|
||||
set(_engine_src "${CMAKE_CURRENT_FUNCTION_LIST_DIR}/assets_src")
|
||||
set(_engine_runtime "${CMAKE_CURRENT_FUNCTION_LIST_DIR}/assets_runtime")
|
||||
set(_output_engine "${GAME_OUTPUT_DIR}/assets/engine")
|
||||
set(_output_engine "$<TARGET_FILE_DIR:${GAME_TARGET}>/assets/engine")
|
||||
|
||||
if (WIN32)
|
||||
set(_engine_asset_install_commands
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
"${_engine_runtime}" "${_output_engine}")
|
||||
else()
|
||||
set(_engine_asset_install_commands
|
||||
COMMAND ${CMAKE_COMMAND} -E create_symlink
|
||||
"${_engine_runtime}" "${_output_engine}")
|
||||
endif()
|
||||
|
||||
add_custom_command(TARGET ${GAME_TARGET} POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${GAME_OUTPUT_DIR}/assets"
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${_output_engine}/.."
|
||||
COMMAND ${CMAKE_COMMAND} -E rm -rf "${_output_engine}"
|
||||
COMMAND ${CMAKE_COMMAND} -E create_symlink "${_engine_runtime}" "${_output_engine}"
|
||||
${_engine_asset_install_commands}
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
add_dependencies(${GAME_TARGET} _internal_cook_engine_assets)
|
||||
|
||||
install(DIRECTORY "${_engine_runtime}/" DESTINATION "bin/assets/engine")
|
||||
endfunction()
|
||||
|
||||
install(TARGETS destrum
|
||||
ARCHIVE DESTINATION lib
|
||||
LIBRARY DESTINATION lib
|
||||
RUNTIME DESTINATION bin)
|
||||
install(DIRECTORY "${CMAKE_CURRENT_LIST_DIR}/include/" DESTINATION include)
|
||||
|
||||
Reference in New Issue
Block a user