mirror of
https://github.com/KhronosGroup/OpenCL-CTS.git
synced 2026-03-19 06:09:01 +00:00
55 lines
1.8 KiB
CMake
55 lines
1.8 KiB
CMake
find_program(
|
|
Vulkan_glslang_binary
|
|
NAMES glslang
|
|
HINTS $ENV{VULKAN_SDK})
|
|
|
|
if(${Vulkan_glslang_binary} STREQUAL "Vulkan_glslang_binary-NOTFOUND")
|
|
message(FATAL_ERROR "glslang tool (part of Vulkan SDK) is a prerequisite to compile shaders to spir-v")
|
|
else()
|
|
message(STATUS "Found glslang: ${Vulkan_glslang_binary}")
|
|
|
|
if(NOT DEFINED VULKAN_TEST_RESOURCES)
|
|
set(VULKAN_TEST_RESOURCES ${CMAKE_CURRENT_BINARY_DIR})
|
|
endif()
|
|
|
|
set(vulkan_spirv_files "")
|
|
|
|
add_custom_command(
|
|
OUTPUT ${VULKAN_TEST_RESOURCES}/buffer.spv
|
|
COMMAND ${Vulkan_glslang_binary}
|
|
--target-env vulkan1.1
|
|
-o ${VULKAN_TEST_RESOURCES}/buffer.spv
|
|
${CMAKE_CURRENT_SOURCE_DIR}/buffer.comp
|
|
DEPENDS buffer.comp
|
|
VERBATIM)
|
|
list(APPEND vulkan_spirv_files ${VULKAN_TEST_RESOURCES}/buffer.spv)
|
|
|
|
file(STRINGS "image2D_test_formats.txt" image2D_formats)
|
|
|
|
foreach(format ${image2D_formats})
|
|
list(GET format 1 GLSL_FORMAT)
|
|
list(GET format 2 GLSL_TYPE_PREFIX)
|
|
|
|
configure_file(image2D.comp.in image2D_${GLSL_FORMAT}.comp)
|
|
|
|
add_custom_command(
|
|
OUTPUT ${VULKAN_TEST_RESOURCES}/image2D_${GLSL_FORMAT}.spv
|
|
COMMAND ${Vulkan_glslang_binary}
|
|
--target-env vulkan1.1
|
|
-o ${VULKAN_TEST_RESOURCES}/image2D_${GLSL_FORMAT}.spv
|
|
${CMAKE_CURRENT_BINARY_DIR}/image2D_${GLSL_FORMAT}.comp
|
|
DEPENDS image2D_${GLSL_FORMAT}.comp
|
|
VERBATIM)
|
|
list(APPEND vulkan_spirv_files ${VULKAN_TEST_RESOURCES}/image2D_${GLSL_FORMAT}.spv)
|
|
endforeach()
|
|
|
|
add_custom_target(vulkan_shaders DEPENDS ${vulkan_spirv_files})
|
|
|
|
include(GNUInstallDirs)
|
|
|
|
install(DIRECTORY
|
|
${CMAKE_CURRENT_BINARY_DIR}
|
|
DESTINATION
|
|
${CMAKE_INSTALL_BINDIR}/$<CONFIG>)
|
|
endif()
|