code: def build_all(
      src_root_dir: str, dry_run: bool = False, verbose: bool = False
  ):
      run_in_python_package_dir(
          src_root_dir,
          dry_run,
          verbose,
          [
              ["python3", "setup.py", "build_widget"],
              ["python3", "-m", "build", "--sdist"],
          ],
      )
  
      build_native_root_dir = os.path.join(
          src_root_dir, "build_native_root"
      )
  
      platform_name = get_primary_platform_name()
  
      build_all_for_one_platform(
          src_root_dir=src_root_dir,
          built_output_root_dir=os.path.join(
              build_native_root_dir, platform_name
          ),
          platform_name=platform_name,
          dry_run=dry_run,
          verbose=verbose,
      )
  
      if platform_name.startswith("linux"):
          platform_java_home = os.path.join(
              CMAKE_BUILD_ENV_ROOT, "linux-aarch64", JAVA_HOME[1:]
          )
  
          # build for aarch64 as well
          build_all_for_one_platform(
              src_root_dir=src_root_dir,
              built_output_root_dir=os.path.join(
                  build_native_root_dir, "linux-aarch64"
              ),
              platform_name="linux-aarch64",
              cmake_target_toolchain=os.path.join(
                  src_root_dir,
                  "ci",
                  "toolchains",
                  "dockcross.manylinux2014_aarch64.clang.toolchain",
              ),
              conan_host_profile=os.path.join(
                  src_root_dir,
                  "ci",
                  "conan-profiles",
                  "dockcross.manylinux2014_aarch64.profile",
              ),
              dry_run=dry_run,
              verbose=verbose,
              native_built_tools_root_dir=get_real_build_root_dir(
                  src_root_dir,
                  "linux-x86_64",
                  os.path.join(build_native_root_dir, "linux-x86_64"),
              ),
              # for some reason CMake can't find JDK libraries in Adoptium's standard path so we have to specify them explicitly
              cmake_extra_args=[
                  f'-DJAVA_AWT_LIBRARY={os.path.join(platform_java_home, "lib/aarch64/libjawt.so")}',
                  f'-DJAVA_JVM_LIBRARY={os.path.join(platform_java_home, "jre/lib/aarch64/server/libjvm.so")}',
              ],
          )
  
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 18 for calling a global function with example usage: build_all(src_root_dir, dry_run, verbose) without return types