code: def build_jvm_artifacts(
      src_root_dir: str,
      build_native_root_dir: str,
      target_platform: str,
      macos_universal_binaries: bool,
      have_cuda: str,
      dry_run: bool,
      verbose: bool,
  ):
      os.chdir(src_root_dir)
  
      for base_dir, lib_name in [
          (
              os.path.join(
                  "catboost", "jvm-packages", "catboost4j-prediction"
              ),
              "catboost4j-prediction",
          ),
          (
              os.path.join(
                  "catboost", "spark", "catboost4j-spark", "core"
              ),
              "catboost4j-spark-impl",
          ),
      ]:
          cmd = [
              "python3",
              os.path.join(
                  "catboost",
                  "jvm-packages",
                  "tools",
                  "build_native_for_maven.py",
              ),
              "--only-postprocessing",
              "--base-dir",
              base_dir,
              "--lib-name",
              lib_name,
              "--build-output-root-dir",
              build_native_root_dir,
          ]
          if verbose:
              cmd += ["--verbose"]
          if have_cuda:
              cmd += ["--have-cuda", f'--cuda-root-dir="{CUDA_ROOT}"']
          if macos_universal_binaries:
              cmd += ["--macos-universal-binaries"]
          else:
              cmd += ["--target-platform", target_platform]
  
          if verbose:
              logging.info(" ".join(cmd))
          if not dry_run:
              subprocess.check_call(cmd)
  
imports: import argparse
  import distutils
  import hashlib
  import logging
  import os
  import subprocess
  import sys
  import tarfile
  from typing import List, Tuple
label_desc: Use image node_id 11 for calling a global function with example usage: build_jvm_artifacts(src_root_dir, build_native_root_dir, target_platform, macos_universal_binaries, have_cuda, dry_run, verbose) without return types