code: def run_cmake(self):
      self.cmake_cmd = which("cmake")
      try:
          out = subprocess.check_output([self.cmake_cmd, "--version"])
      except OSError:
          raise RuntimeError(
              "CMake must be installed to build the following extensions: "
              + ", ".join(e.name for e in self.extensions)
          )
  
      if platform.system() == "Windows":
          cmake_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 on Windows"
              )
  
      for ext in self.extensions:
          self.build_extension_cmake(ext)
  
imports: from __future__ import print_function
  import os
  import os.path
  import platform
  import re
  import subprocess
  import sys
  import sysconfig
  from codecs import open
  from distutils.version import LooseVersion
  from jupyter_packaging import get_data_files, wrap_installers, get_version
  from setuptools import Extension, find_packages, setup
  from setuptools.command.build_ext import build_ext
  from setuptools.command.sdist import sdist
label_desc: Use image node_id 2 for calling the PSPBuild obj's underlying member method code with example usage: obj.run_cmake() without return types