code: def run(self):
      try:
          out = subprocess.check_output(["cmake", "--version"])
      except OSError:
          raise RuntimeError(
              "CMake must be installed to build ChainerX"
          )
  
      cmake_version = distutils.version.LooseVersion(
          re.search(r"version\s*([\d.]+)", out.decode()).group(1)
      )
      if cmake_version < "3.1.0":
          raise RuntimeError(
              "CMake >= 3.1.0 is required to build ChainerX"
          )
  
      generator = os.getenv("CHAINERX_CMAKE_GENERATOR", "").lower()
      if generator not in ["", "ninja"]:
          raise RuntimeError(
              "Generator %s is not supported." % generator
          )
      self.use_ninja = generator == "ninja"
  
      for ext in self.extensions:
          self.build_extension(ext)
  
file_path: chainer/chainerx_build_helper.py
imports: import distutils
  import os
  import platform
  import re
  import subprocess
  import sys
  import setuptools
  from setuptools.command import build_ext
label_desc: Use image node_id 1 for calling the CMakeBuild obj's underlying member method code with example usage: obj.run() without return types