qsk_add_shaders cmake function added

This commit is contained in:
Uwe Rathmann 2024-01-09 11:59:55 +01:00
parent 79f91a57b6
commit 099281972e
2 changed files with 32 additions and 40 deletions

View File

@ -99,3 +99,19 @@ function(qsk_add_example target)
target_include_directories(${target} PRIVATE ${CMAKE_CURRENT_LIST_DIR}) target_include_directories(${target} PRIVATE ${CMAKE_CURRENT_LIST_DIR})
endfunction() 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()

View File

@ -175,6 +175,21 @@ list(APPEND SOURCES
if (QT_VERSION_MAJOR VERSION_LESS 6) if (QT_VERSION_MAJOR VERSION_LESS 6)
qt_add_resources(SOURCES nodes/shaders.qrc) 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() endif()
list(APPEND HEADERS list(APPEND HEADERS
@ -476,46 +491,7 @@ if(BUILD_QSKDLL)
endif() endif()
if (QT_VERSION_MAJOR VERSION_GREATER_EQUAL 6) if (QT_VERSION_MAJOR VERSION_GREATER_EQUAL 6)
qsk_add_shaders( ${target} FILES ${SHADERS} )
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
)
endif() endif()
target_include_directories(${target} PUBLIC target_include_directories(${target} PUBLIC