code: def write_master_ninja(master_ninja, targets):
      """Writes master build.ninja file, referencing all given subninjas."""
      master_ninja.variable("cxx", "c++")
      master_ninja.variable("ld", "$cxx")
      if sys.platform == "darwin":
          master_ninja.variable("alink", "libtool -static")
      else:
          master_ninja.variable("alink", "ar rcs")
      master_ninja.newline()
  
      master_ninja.pool("link_pool", depth=4)
      master_ninja.newline()
  
      master_ninja.rule(
          "cxx",
          description="CXX $out",
          command="$cxx -MMD -MF $out.d $defines $includes $cflags -c $in -o $out",
          depfile="$out.d",
          deps="gcc",
      )
      master_ninja.rule(
          "alink",
          description="ARCHIVE $out",
          command="rm -f $out && $alink -o $out $in",
      )
      master_ninja.rule(
          "link",
          description="LINK $out",
          pool="link_pool",
          command="$ld $ldflags -o $out $in $libs",
      )
      master_ninja.rule(
          "stamp", description="STAMP $out", command="touch $out"
      )
      master_ninja.newline()
  
      for target in targets:
          master_ninja.subninja(target.ninja_file_path)
      master_ninja.newline()
  
      master_ninja.comment("Short names for targets.")
      for target in targets:
          if target.name != target.output:
              master_ninja.build(target.name, "phony", target.output)
      master_ninja.newline()
  
      master_ninja.build(
          "all", "phony", [target.output for target in targets]
      )
      master_ninja.default("all")
  
imports: import argparse
  import contextlib
  import os
  import random
  import sys
  import ninja_syntax
label_desc: Use image node_id 5 for calling a global function with example usage: write_master_ninja(master_ninja, targets) without return types