code: def get_config_schema():
      from aksetup_helper import (
          ConfigSchema,
          Option,
          IncludeDir,
          LibraryDir,
          Libraries,
          BoostLibraries,
          Switch,
          StringListOption,
          make_boost_base_options,
      )
  
      nvcc_path = search_on_path(["nvcc", "nvcc.exe"])
      if nvcc_path is None:
          print(
              "***************************************************************"
          )
          print("*** WARNING: nvcc not in path.")
          print(
              "*** May need to set CUDA_INC_DIR for installation to succeed."
          )
          print(
              "***************************************************************"
          )
          cuda_root_default = None
      else:
          cuda_root_default = normpath(join(dirname(nvcc_path), ".."))
  
      cxxflags_default = []
      ldflags_default = []
  
      lib64 = "lib64"
      import sys
  
      if sys.platform.startswith("win"):
          # https://github.com/inducer/pycuda/issues/113
          lib64 = "lib/x64"
  
          import os
  
          if not os.environ.get("MINGW_CHOST"):
              cxxflags_default.extend(["/EHsc"])
              ldflags_default.extend(["/FORCE"])
  
      elif "darwin" in sys.platform:
          import glob
  
          root_candidates = glob.glob("/Developer/NVIDIA/CUDA-*")
          if root_candidates:
              cuda_root_default = root_candidates[-1]
              lib64 = "lib"
  
      default_lib_dirs = [
          "${CUDA_ROOT}/lib",
          "${CUDA_ROOT}/" + lib64,
          # https://github.com/inducer/pycuda/issues/98
          "${CUDA_ROOT}/lib/stubs",
          "${CUDA_ROOT}/%s/stubs" % lib64,
      ]
  
      if "darwin" in sys.platform:
          default_lib_dirs.append("/usr/local/cuda/lib")
  
      return ConfigSchema(
          make_boost_base_options()
          + [
              Switch(
                  "USE_SHIPPED_BOOST",
                  True,
                  "Use included Boost library",
              ),
              BoostLibraries("python"),
              BoostLibraries("thread"),
              Switch("CUDA_TRACE", False, "Enable CUDA API tracing"),
              Option(
                  "CUDA_ROOT",
                  default=cuda_root_default,
                  help="Path to the CUDA toolkit",
              ),
              Option(
                  "CUDA_PRETEND_VERSION",
                  help="Assumed CUDA version, in the form 3010 for 3.1.",
              ),
              IncludeDir("CUDA", None),
              Switch(
                  "CUDA_ENABLE_GL",
                  False,
                  "Enable CUDA GL interoperability",
              ),
              Switch(
                  "CUDA_ENABLE_CURAND", True, "Enable CURAND library"
              ),
              LibraryDir("CUDADRV", default_lib_dirs),
              Libraries("CUDADRV", ["cuda"]),
              LibraryDir("CUDART", default_lib_dirs),
              Libraries("CUDART", ["cudart"]),
              LibraryDir("CURAND", default_lib_dirs),
              Libraries("CURAND", ["curand"]),
              StringListOption(
                  "CXXFLAGS",
                  cxxflags_default,
                  help="Any extra C++ compiler options to include",
              ),
              StringListOption(
                  "LDFLAGS",
                  ldflags_default,
                  help="Any extra linker options to include",
              ),
          ]
      )
  
imports: from __future__ import absolute_import, print_function
  from os.path import dirname, join, normpath
label_desc: Use image node_id 2 for calling a global function with example usage: get_config_schema() and returns: ConfigSchema