code: def run(self):
      try:
          out = subprocess.check_output(["cmake", "--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(ext)
  
file_path: lightseq/setup.py
imports: import os
  import re
  import sys
  import platform
  import subprocess
  import multiprocessing
  import glob
  import logging
  from setuptools import setup, Extension
  import setuptools
  from setuptools.command.build_ext import build_ext
  from distutils.version import LooseVersion
  from lightseq import __version__
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