[
  {
    "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/tools/build_command_buffer.py",
      "--chrome-dir",
      "[START_DIR]/cache/work",
      "--output-dir",
      "[START_DIR]/cache/work/skia/out/Build-Mac-Clang-x86_64-Debug-CommandBuffer/Debug",
      "--extra-gn-args",
      "mac_sdk_min=\"10.13\"",
      "--no-sync",
      "--no-hooks",
      "--make-output-dir"
    ],
    "env": {
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
    },
    "name": "build command_buffer"
  },
  {
    "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-x86_64-Debug-CommandBuffer/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_gl_standard=\"\" target_cpu=\"x86_64\" 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-x86_64-Debug-CommandBuffer/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-x86_64-Debug-CommandBuffer/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"
  }
]