diff --git a/pack/CMakeLists.txt b/pack/CMakeLists.txt index 202eb52447fa6147c1ec47a24eac44be3190fbb8..91e53b922d6a3c654cdedbd236d7cf421c7435f7 100644 --- a/pack/CMakeLists.txt +++ b/pack/CMakeLists.txt @@ -84,19 +84,20 @@ if (${res_count}) get_property(GLSL_VALIDATOR GLOBAL PROPERTY glsl_validator_property) - get_filename_component(intermediate_dir "${intermediate}" DIRECTORY) - if("${intermediate_dir}" STREQUAL "") - set(intermediate_dir "./") # make_directory would fail on empty path - endif() + get_filename_component(intermediate_dir "${intermediate}" DIRECTORY) + if("${intermediate_dir}" STREQUAL "") + set(intermediate_dir "./") # make_directory would fail on empty path + endif() + message("Dependencies: ${lava_pack_dependencies_${input}}") add_custom_command( OUTPUT "${intermediate}" - DEPENDS "${input}" + DEPENDS "${input}" "${lava_pack_dependencies_${input}}" COMMAND ${CMAKE_COMMAND} -E make_directory "${intermediate_dir}" - COMMAND ${GLSL_VALIDATOR} -V "${input}" -o "${intermediate}" + COMMAND ${GLSL_VALIDATOR} -V "${input}" -o "${intermediate}" COMMENT "Rebuilding ${intermediate}." ) - message("${intermediate}") + message("${intermediate}") add_custom_command( OUTPUT "${outfile}" @@ -122,6 +123,10 @@ if (${res_count}) endforeach() endif() +macro(LAVA_PACK_SHADER_DEPENDENCY shader dependencies) + set("lava_pack_dependencies_${shader}" "${dependencies}" CACHE INTERNAL "") +endmacro(LAVA_PACK_SHADER_DEPENDENCY) + set(cpp_content [=[ #include <string> #include <unordered_map> @@ -144,3 +149,4 @@ void putPackages(std::unordered_map<std::string, Package>& map) { file(GENERATE OUTPUT "${pack_outfile}" CONTENT "${cpp_content}") set(lava_pack_shaders "" CACHE INTERNAL "lava_pack_shaders") +set(lava_pack_shader_includes "" CACHE INTERNAL "lava_pack_shader_includes")