| 
					
				 | 
			
			
				@@ -1,9 +1,17 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 cmake_minimum_required(VERSION 3.18) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+unset(ENV{CMAKE_CUDA_ARCHITECTURES_NATIVE_CLAMP}) # CUBIN needs true native arch 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 project(CudaCUBIN LANGUAGES CUDA) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 set(CMAKE_CUDA_ARCHITECTURES all-major) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# CUBIN needs the true native arch to be supported by the CUDA toolkit. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+set(unavailable_native_archs "${CMAKE_CUDA_ARCHITECTURES_NATIVE}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+list(REMOVE_ITEM unavailable_native_archs ${CMAKE_CUDA_ARCHITECTURES_ALL}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+if(unavailable_native_archs) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  add_executable(CudaOnlyCUBIN main_no_native_archs.cu) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  return() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+endif() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 add_library(CudaCUBIN OBJECT kernelA.cu kernelB.cu kernelC.cu) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 set_property(TARGET CudaCUBIN PROPERTY CUDA_CUBIN_COMPILATION ON) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 set_property(TARGET CudaCUBIN PROPERTY CUDA_ARCHITECTURES native) 
			 |