in build2cmake/src/torch/cuda.rs [142:190]
fn write_cmake(
env: &Environment,
backend: Backend,
build: &Build,
torch: &Torch,
name: &str,
ops_name: &str,
file_set: &mut FileSet,
) -> Result<()> {
let mut utils_path = PathBuf::new();
utils_path.push("cmake");
utils_path.push("utils.cmake");
file_set
.entry(utils_path.clone())
.extend_from_slice(CMAKE_UTILS.as_bytes());
let mut hipify_path = PathBuf::new();
hipify_path.push("cmake");
hipify_path.push("hipify.py");
file_set
.entry(hipify_path.clone())
.extend_from_slice(HIPIFY.as_bytes());
let cmake_writer = file_set.entry("CMakeLists.txt");
render_preamble(
env,
name,
build.general.cuda_minver.as_ref(),
build.general.cuda_maxver.as_ref(),
cmake_writer,
)?;
render_deps(env, build, cmake_writer)?;
render_binding(env, torch, name, cmake_writer)?;
for (kernel_name, kernel) in build
.kernels
.iter()
.filter(|(_, kernel)| kernel.backend() == backend)
{
render_kernel(env, kernel_name, kernel, cmake_writer)?;
}
render_extension(env, ops_name, cmake_writer)?;
Ok(())
}