[
  {
    "cmd": [],
    "name": "ensure xcode",
    "~followup_annotations": [
      "@@@STEP_TEXT@Ensuring Xcode version 12c33 in [START_DIR]/cache/Xcode.app@@@"
    ]
  },
  {
    "cmd": [
      "[START_DIR]/mac_toolchain/mac_toolchain",
      "install",
      "-kind",
      "ios",
      "-xcode-version",
      "12c33",
      "-output-dir",
      "[START_DIR]/cache/Xcode.app"
    ],
    "name": "ensure xcode.install xcode",
    "~followup_annotations": [
      "@@@STEP_NEST_LEVEL@1@@@"
    ]
  },
  {
    "cmd": [
      "sudo",
      "xcode-select",
      "-switch",
      "[START_DIR]/cache/Xcode.app"
    ],
    "name": "ensure xcode.select xcode",
    "~followup_annotations": [
      "@@@STEP_NEST_LEVEL@1@@@"
    ]
  },
  {
    "cmd": [
      "python",
      "-u",
      "[START_DIR]/cache/work/skia/bin/fetch-gn"
    ],
    "cwd": "[START_DIR]/cache/work/skia",
    "env": {
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
    },
    "infra_step": true,
    "name": "fetch-gn"
  },
  {
    "cmd": [
      "[START_DIR]/ccache_mac/bin/ccache",
      "-s"
    ],
    "cwd": "[START_DIR]/cache/work/skia",
    "env": {
      "CCACHE_COMPILERCHECK": "content",
      "CCACHE_DIR": "[START_DIR]/cache/ccache",
      "CCACHE_MAXFILES": "0",
      "CCACHE_MAXSIZE": "50G",
      "CHROME_HEADLESS": "1",
      "MACOSX_DEPLOYMENT_TARGET": "10.13",
      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
    },
    "name": "ccache stats-start"
  },
  {
    "cmd": [
      "[START_DIR]/cache/work/skia/bin/gn",
      "gen",
      "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-arm64-Debug-Graphite/Debug",
      "--args=cc=\"clang\" cc_wrapper=\"[START_DIR]/ccache_mac/bin/ccache\" cxx=\"clang++\" extra_cflags=[\"-DREBUILD_IF_CHANGED_xcode_build_version=12c33\", \"-O1\"] skia_enable_graphite=true skia_use_metal=true target_cpu=\"arm64\" werror=true"
    ],
    "cwd": "[START_DIR]/cache/work/skia",
    "env": {
      "CCACHE_COMPILERCHECK": "content",
      "CCACHE_DIR": "[START_DIR]/cache/ccache",
      "CCACHE_MAXFILES": "0",
      "CCACHE_MAXSIZE": "50G",
      "CHROME_HEADLESS": "1",
      "MACOSX_DEPLOYMENT_TARGET": "10.13",
      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
    },
    "name": "gn gen"
  },
  {
    "cmd": [
      "ninja",
      "-C",
      "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-arm64-Debug-Graphite/Debug"
    ],
    "cwd": "[START_DIR]/cache/work/skia",
    "env": {
      "CCACHE_COMPILERCHECK": "content",
      "CCACHE_DIR": "[START_DIR]/cache/ccache",
      "CCACHE_MAXFILES": "0",
      "CCACHE_MAXSIZE": "50G",
      "CHROME_HEADLESS": "1",
      "MACOSX_DEPLOYMENT_TARGET": "10.13",
      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
    },
    "name": "ninja"
  },
  {
    "cmd": [
      "[START_DIR]/ccache_mac/bin/ccache",
      "-s"
    ],
    "cwd": "[START_DIR]/cache/work/skia",
    "env": {
      "CCACHE_COMPILERCHECK": "content",
      "CCACHE_DIR": "[START_DIR]/cache/ccache",
      "CCACHE_MAXFILES": "0",
      "CCACHE_MAXSIZE": "50G",
      "CHROME_HEADLESS": "1",
      "MACOSX_DEPLOYMENT_TARGET": "10.13",
      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
    },
    "name": "ccache stats-end"
  },
  {
    "cmd": [
      "python",
      "-u",
      "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products = ['dm', 'dm.exe', 'dm.app', 'fm', 'fm.exe', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', 'skpbench.exe', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skottie_tool', 'lib/*.so', 'run_testlab']\n\ntry:\n  os.makedirs(dst)\nexcept OSError as e:\n  if e.errno != errno.EEXIST:\n    raise\n\nfor pattern in build_products:\n  path = os.path.join(src, pattern)\n  for f in glob.glob(path):\n    dst_path = os.path.join(dst, os.path.relpath(f, src))\n    if not os.path.isdir(os.path.dirname(dst_path)):\n      os.makedirs(os.path.dirname(dst_path))\n    print('Copying build product %s to %s' % (f, dst_path))\n    shutil.move(f, dst_path)\n",
      "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-arm64-Debug-Graphite/Debug",
      "[START_DIR]/[SWARM_OUT_DIR]/out/Debug"
    ],
    "infra_step": true,
    "name": "copy build products",
    "~followup_annotations": [
      "@@@STEP_LOG_LINE@python.inline@import errno@@@",
      "@@@STEP_LOG_LINE@python.inline@import glob@@@",
      "@@@STEP_LOG_LINE@python.inline@import os@@@",
      "@@@STEP_LOG_LINE@python.inline@import shutil@@@",
      "@@@STEP_LOG_LINE@python.inline@import sys@@@",
      "@@@STEP_LOG_LINE@python.inline@@@@",
      "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
      "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
      "@@@STEP_LOG_LINE@python.inline@build_products = ['dm', 'dm.exe', 'dm.app', 'fm', 'fm.exe', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', 'skpbench.exe', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skottie_tool', 'lib/*.so', 'run_testlab']@@@",
      "@@@STEP_LOG_LINE@python.inline@@@@",
      "@@@STEP_LOG_LINE@python.inline@try:@@@",
      "@@@STEP_LOG_LINE@python.inline@  os.makedirs(dst)@@@",
      "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
      "@@@STEP_LOG_LINE@python.inline@  if e.errno != errno.EEXIST:@@@",
      "@@@STEP_LOG_LINE@python.inline@    raise@@@",
      "@@@STEP_LOG_LINE@python.inline@@@@",
      "@@@STEP_LOG_LINE@python.inline@for pattern in build_products:@@@",
      "@@@STEP_LOG_LINE@python.inline@  path = os.path.join(src, pattern)@@@",
      "@@@STEP_LOG_LINE@python.inline@  for f in glob.glob(path):@@@",
      "@@@STEP_LOG_LINE@python.inline@    dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
      "@@@STEP_LOG_LINE@python.inline@    if not os.path.isdir(os.path.dirname(dst_path)):@@@",
      "@@@STEP_LOG_LINE@python.inline@      os.makedirs(os.path.dirname(dst_path))@@@",
      "@@@STEP_LOG_LINE@python.inline@    print('Copying build product %s to %s' % (f, dst_path))@@@",
      "@@@STEP_LOG_LINE@python.inline@    shutil.move(f, dst_path)@@@",
      "@@@STEP_LOG_END@python.inline@@@"
    ]
  },
  {
    "name": "$result"
  }
]