diff --git a/cmake/QskBuildFunctions.cmake b/cmake/QskBuildFunctions.cmake index 38fee091..50858598 100644 --- a/cmake/QskBuildFunctions.cmake +++ b/cmake/QskBuildFunctions.cmake @@ -99,3 +99,19 @@ function(qsk_add_example target) target_include_directories(${target} PRIVATE ${CMAKE_CURRENT_LIST_DIR}) endfunction() + +function(qsk_add_shaders target) + + cmake_parse_arguments( arg "" "" "FILES" ${ARGN} ) + + # assuming that OUTPUTS is not set in ARGV + foreach( file IN LISTS arg_FILES ) + get_filename_component(qsbname "${file}" NAME) + string(REPLACE "-vulkan" "" qsbname "${qsbname}" ) + list(APPEND outfiles "${qsbname}.qsb") + endforeach() + + qt6_add_shaders( ${target} "qskshaders" BATCHABLE PRECOMPILE QUIET + PREFIX "/qskinny/shaders" ${ARGV} OUTPUTS ${outfiles} ) + +endfunction() diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 99386af7..15eaa4ef 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -175,6 +175,21 @@ list(APPEND SOURCES if (QT_VERSION_MAJOR VERSION_LESS 6) qt_add_resources(SOURCES nodes/shaders.qrc) +else() + list(APPEND SHADERS + nodes/shaders/arcshadow-vulkan.vert + nodes/shaders/arcshadow-vulkan.frag + nodes/shaders/boxshadow-vulkan.vert + nodes/shaders/boxshadow-vulkan.frag + nodes/shaders/crisplines-vulkan.vert + nodes/shaders/crisplines-vulkan.frag + nodes/shaders/gradientconic-vulkan.vert + nodes/shaders/gradientconic-vulkan.frag + nodes/shaders/gradientlinear-vulkan.vert + nodes/shaders/gradientlinear-vulkan.frag + nodes/shaders/gradientradial-vulkan.vert + nodes/shaders/gradientradial-vulkan.frag + ) endif() list(APPEND HEADERS @@ -476,46 +491,7 @@ if(BUILD_QSKDLL) endif() if (QT_VERSION_MAJOR VERSION_GREATER_EQUAL 6) - - qt6_add_shaders(${target} "qskshaders" - - BATCHABLE - PRECOMPILE - - #OPTIMIZED - QUIET - - PREFIX - "/qskinny/shaders" - - FILES - nodes/shaders/arcshadow-vulkan.vert - nodes/shaders/arcshadow-vulkan.frag - nodes/shaders/boxshadow-vulkan.vert - nodes/shaders/boxshadow-vulkan.frag - nodes/shaders/crisplines-vulkan.vert - nodes/shaders/crisplines-vulkan.frag - nodes/shaders/gradientconic-vulkan.vert - nodes/shaders/gradientconic-vulkan.frag - nodes/shaders/gradientlinear-vulkan.vert - nodes/shaders/gradientlinear-vulkan.frag - nodes/shaders/gradientradial-vulkan.vert - nodes/shaders/gradientradial-vulkan.frag - - OUTPUTS - arcshadow.vert.qsb - arcshadow.frag.qsb - boxshadow.vert.qsb - boxshadow.frag.qsb - crisplines.vert.qsb - crisplines.frag.qsb - gradientconic.vert.qsb - gradientconic.frag.qsb - gradientlinear.vert.qsb - gradientlinear.frag.qsb - gradientradial.vert.qsb - gradientradial.frag.qsb - ) + qsk_add_shaders( ${target} FILES ${SHADERS} ) endif() target_include_directories(${target} PUBLIC