function(one_cppfile_one_executable EXEC_PREFIX INCLUDE_DIRS LINK_LIBS)
    FILE(GLOB_RECURSE CUFILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.cu)
	foreach(CUFILE ${CUFILES})
		get_filename_component(CUNAME ${CUFILE} NAME_WE)
		set(EXECUTABLE_NAME ${EXEC_PREFIX}${CUNAME})
		add_executable(${EXECUTABLE_NAME} ${CUFILE})
		set_property(TARGET ${EXECUTABLE_NAME} PROPERTY CUDA_SEPARABLE_COMPILATION ON)
		set_property(TARGET ${EXECUTABLE_NAME} PROPERTY CUDA_ARCHITECTURES OFF)
		foreach(INCLUDE_DIR ${INCLUDE_DIRS} ${CUDA_COMMON_INCLUDES})
		    target_include_directories(${EXECUTABLE_NAME} PUBLIC ${INCLUDE_DIR})
		endforeach()
		foreach(LINK_LIB ${LINK_LIBS})
			target_link_libraries(${EXECUTABLE_NAME} ${LINK_LIB})
		endforeach()
	endforeach()
endfunction()
