code: def compile(self, obj: str, src: str, ext: Extension) -> None:
      if self._context.use_hip:
          raise RuntimeError("ROCm is not supported on Windows")
  
      compiler_so = build.get_nvcc_path()
      cc_args = self._get_preprocess_options(ext) + ["-c"]
      cuda_version = self._context.features["cuda"].get_version()
      postargs = _nvcc_gencode_options(cuda_version) + [
          "-Xfatbin=-compress-all",
          "-O2",
      ]
      if cuda_version >= 11020:
          # MSVC 14.0 (2015) is deprecated for CUDA 11.2 but we need it
          # to build CuPy because some Python versions were built using it.
          # REF: https://wiki.python.org/moin/WindowsCompilers
          postargs += ["-allow-unsupported-compiler"]
      postargs += ["-Xcompiler", "/MD", "-D_USE_MATH_DEFINES"]
      # This is to compile thrust with MSVC2015
      if cuda_version >= 11020:
          postargs += ["--std=c++14"]
          num_threads = int(
              os.environ.get("CUPY_NUM_NVCC_THREADS", "2")
          )
          postargs += [f"-t{num_threads}"]
      cl_exe_path = self._find_host_compiler_path()
      if cl_exe_path is not None:
          print(f"Using host compiler at {cl_exe_path}")
          postargs += ["--compiler-bindir", cl_exe_path]
      print("NVCC options:", postargs)
      self.spawn(compiler_so + cc_args + [src, "-o", obj] + postargs)
  
imports: import distutils.ccompiler
  import os
  import os.path
  import platform
  import shutil
  import sys
  import subprocess
  from typing import Any, Optional, List
  import setuptools
  import setuptools.msvc
  from setuptools import Extension
  from cupy_builder._context import Context
  import cupy_builder.install_build
label_desc: Use image node_id 1 for calling the DeviceCompilerWin32 obj's underlying member method code with example usage: obj.compile(obj, src, ext) without return types