cmake_minimum_required(VERSION 3.12) function(run_glslangValidator exe exe_display) execute_process(COMMAND ${exe} --help OUTPUT_VARIABLE output OUTPUT_STRIP_TRAILING_WHITESPACE RESULT_VARIABLE result ) if(NOT result EQUAL 1) message(SEND_ERROR "Result of ${exe_display} --help is ${result}, should be 1") endif() # NOTE: Newer version prefer just "glslang" since it's no longer really just a validator. # This approach is still compatible with older version that output glslangValidator if(NOT output MATCHES "^Usage: glslang") message(SEND_ERROR "Output of ${exe_display} --help is \"${output}\", should begin with \"Usage: glslang\"") endif() endfunction() run_glslangValidator("${VULKAN_GLSLANG_VALIDATOR_EXECUTABLE}" "\${VULKAN_GLSLANG_VALIDATOR_EXECUTABLE}") run_glslangValidator("${VULKAN_GLSLANG_VALIDATOR_EXECUTABLE_TARGET}" "Vulkan::glslangValidator")