| 
					
				 | 
			
			
				@@ -13,12 +13,28 @@ and computing API. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 IMPORTED Targets 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ^^^^^^^^^^^^^^^^ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-This module defines :prop_tgt:`IMPORTED` target ``Vulkan::Vulkan``, if 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-Vulkan has been found. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+This module defines :prop_tgt:`IMPORTED` targets if Vulkan has been found: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-.. versionadded:: 3.19 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  This module defines :prop_tgt:`IMPORTED` target ``Vulkan::glslc``, if 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  Vulkan and the GLSLC SPIR-V compiler has been found. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+``Vulkan::Vulkan`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  The main Vulkan library. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+``Vulkan::glslc`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  .. versionadded:: 3.19 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  The GLSLC SPIR-V compiler, if it has been found. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+``Vulkan::Headers`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  .. versionadded:: 3.21 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  Provides just Vulkan headers include paths, if found.  No library is 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  included in this target.  This can be useful for applications that 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  load Vulkan library dynamically. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+``Vulkan::glslangValidator`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  .. versionadded:: 3.21 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  The glslangValidator tool, if found.  It is used to compile GLSL and 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  HLSL shaders into SPIR-V. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Result Variables 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ^^^^^^^^^^^^^^^^ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -34,6 +50,7 @@ The module will also define three cache variables:: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   Vulkan_INCLUDE_DIR        - the Vulkan include directory 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   Vulkan_LIBRARY            - the path to the Vulkan library 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   Vulkan_GLSLC_EXECUTABLE   - the path to the GLSL SPIR-V compiler 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  Vulkan_GLSLANG_VALIDATOR_EXECUTABLE - the path to the glslangValidator tool 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Hints 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ^^^^^ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -67,6 +84,11 @@ if(WIN32) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       HINTS 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         "$ENV{VULKAN_SDK}/Bin" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    find_program(Vulkan_GLSLANG_VALIDATOR_EXECUTABLE 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      NAMES glslangValidator 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      HINTS 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        "$ENV{VULKAN_SDK}/Bin" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   elseif(CMAKE_SIZEOF_VOID_P EQUAL 4) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     find_library(Vulkan_LIBRARY 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       NAMES vulkan-1 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -79,6 +101,11 @@ if(WIN32) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       HINTS 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         "$ENV{VULKAN_SDK}/Bin32" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    find_program(Vulkan_GLSLANG_VALIDATOR_EXECUTABLE 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      NAMES glslangValidator 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      HINTS 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        "$ENV{VULKAN_SDK}/Bin32" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   endif() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 else() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   find_path(Vulkan_INCLUDE_DIR 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -90,6 +117,9 @@ else() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   find_program(Vulkan_GLSLC_EXECUTABLE 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     NAMES glslc 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     HINTS "$ENV{VULKAN_SDK}/bin") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  find_program(Vulkan_GLSLANG_VALIDATOR_EXECUTABLE 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    NAMES glslangValidator 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    HINTS "$ENV{VULKAN_SDK}/bin") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 endif() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 set(Vulkan_LIBRARIES ${Vulkan_LIBRARY}) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -100,7 +130,8 @@ find_package_handle_standard_args(Vulkan 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   DEFAULT_MSG 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   Vulkan_LIBRARY Vulkan_INCLUDE_DIR) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-mark_as_advanced(Vulkan_INCLUDE_DIR Vulkan_LIBRARY Vulkan_GLSLC_EXECUTABLE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+mark_as_advanced(Vulkan_INCLUDE_DIR Vulkan_LIBRARY Vulkan_GLSLC_EXECUTABLE 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                 Vulkan_GLSLANG_VALIDATOR_EXECUTABLE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 if(Vulkan_FOUND AND NOT TARGET Vulkan::Vulkan) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   add_library(Vulkan::Vulkan UNKNOWN IMPORTED) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -109,7 +140,18 @@ if(Vulkan_FOUND AND NOT TARGET Vulkan::Vulkan) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     INTERFACE_INCLUDE_DIRECTORIES "${Vulkan_INCLUDE_DIRS}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 endif() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+if(Vulkan_FOUND AND NOT TARGET Vulkan::Headers) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  add_library(Vulkan::Headers INTERFACE IMPORTED) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  set_target_properties(Vulkan::Headers PROPERTIES 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    INTERFACE_INCLUDE_DIRECTORIES "${Vulkan_INCLUDE_DIRS}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+endif() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 if(Vulkan_FOUND AND Vulkan_GLSLC_EXECUTABLE AND NOT TARGET Vulkan::glslc) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   add_executable(Vulkan::glslc IMPORTED) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   set_property(TARGET Vulkan::glslc PROPERTY IMPORTED_LOCATION "${Vulkan_GLSLC_EXECUTABLE}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 endif() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+if(Vulkan_FOUND AND Vulkan_GLSLANG_VALIDATOR_EXECUTABLE AND NOT TARGET Vulkan::glslangValidator) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  add_executable(Vulkan::glslangValidator IMPORTED) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  set_property(TARGET Vulkan::glslangValidator PROPERTY IMPORTED_LOCATION "${Vulkan_GLSLANG_VALIDATOR_EXECUTABLE}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+endif() 
			 |