infra: add cmake builders

Bug: dawn:2435
Change-Id: I0e136de703add8b80ce144d4ea64fff8a6b18431
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/176982
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
diff --git a/infra/config/global/generated/commit-queue.cfg b/infra/config/global/generated/commit-queue.cfg
index 383cf55..fcf6342 100644
--- a/infra/config/global/generated/commit-queue.cfg
+++ b/infra/config/global/generated/commit-queue.cfg
@@ -172,6 +172,96 @@
         }
       }
       builders {
+        name: "dawn/try/cmake-linux-clang-dbg-x64"
+        experiment_percentage: 100
+        location_filters {
+          gerrit_host_regexp: ".*"
+          gerrit_project_regexp: ".*"
+          path_regexp: ".*"
+        }
+        location_filters {
+          gerrit_host_regexp: ".*"
+          gerrit_project_regexp: ".*"
+          path_regexp: "\\.github/.+"
+          exclude: true
+        }
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-dbg-x64-asan"
+        experiment_percentage: 100
+        location_filters {
+          gerrit_host_regexp: ".*"
+          gerrit_project_regexp: ".*"
+          path_regexp: ".*"
+        }
+        location_filters {
+          gerrit_host_regexp: ".*"
+          gerrit_project_regexp: ".*"
+          path_regexp: "\\.github/.+"
+          exclude: true
+        }
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-dbg-x64-ubsan"
+        experiment_percentage: 100
+        location_filters {
+          gerrit_host_regexp: ".*"
+          gerrit_project_regexp: ".*"
+          path_regexp: ".*"
+        }
+        location_filters {
+          gerrit_host_regexp: ".*"
+          gerrit_project_regexp: ".*"
+          path_regexp: "\\.github/.+"
+          exclude: true
+        }
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-rel-x64"
+        experiment_percentage: 100
+        location_filters {
+          gerrit_host_regexp: ".*"
+          gerrit_project_regexp: ".*"
+          path_regexp: ".*"
+        }
+        location_filters {
+          gerrit_host_regexp: ".*"
+          gerrit_project_regexp: ".*"
+          path_regexp: "\\.github/.+"
+          exclude: true
+        }
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-rel-x64-asan"
+        experiment_percentage: 100
+        location_filters {
+          gerrit_host_regexp: ".*"
+          gerrit_project_regexp: ".*"
+          path_regexp: ".*"
+        }
+        location_filters {
+          gerrit_host_regexp: ".*"
+          gerrit_project_regexp: ".*"
+          path_regexp: "\\.github/.+"
+          exclude: true
+        }
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-rel-x64-ubsan"
+        experiment_percentage: 100
+        location_filters {
+          gerrit_host_regexp: ".*"
+          gerrit_project_regexp: ".*"
+          path_regexp: ".*"
+        }
+        location_filters {
+          gerrit_host_regexp: ".*"
+          gerrit_project_regexp: ".*"
+          path_regexp: "\\.github/.+"
+          exclude: true
+        }
+      }
+      builders {
         name: "dawn/try/dawn_analysis"
         owner_whitelist_group: "project-dawn-tryjob-access"
         mode_allowlist: "ANALYZER_RUN"
@@ -384,6 +474,30 @@
         includable_only: true
       }
       builders {
+        name: "dawn/try/cmake-linux-clang-dbg-x64"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-dbg-x64-asan"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-dbg-x64-ubsan"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-rel-x64"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-rel-x64-asan"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-rel-x64-ubsan"
+        experiment_percentage: 100
+      }
+      builders {
         name: "dawn/try/linux-clang-dbg-x64"
       }
       builders {
@@ -462,6 +576,30 @@
         includable_only: true
       }
       builders {
+        name: "dawn/try/cmake-linux-clang-dbg-x64"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-dbg-x64-asan"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-dbg-x64-ubsan"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-rel-x64"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-rel-x64-asan"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-rel-x64-ubsan"
+        experiment_percentage: 100
+      }
+      builders {
         name: "dawn/try/linux-clang-dbg-x64"
       }
       builders {
@@ -540,6 +678,30 @@
         includable_only: true
       }
       builders {
+        name: "dawn/try/cmake-linux-clang-dbg-x64"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-dbg-x64-asan"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-dbg-x64-ubsan"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-rel-x64"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-rel-x64-asan"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-rel-x64-ubsan"
+        experiment_percentage: 100
+      }
+      builders {
         name: "dawn/try/linux-clang-dbg-x64"
       }
       builders {
@@ -618,6 +780,30 @@
         includable_only: true
       }
       builders {
+        name: "dawn/try/cmake-linux-clang-dbg-x64"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-dbg-x64-asan"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-dbg-x64-ubsan"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-rel-x64"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-rel-x64-asan"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-rel-x64-ubsan"
+        experiment_percentage: 100
+      }
+      builders {
         name: "dawn/try/linux-clang-dbg-x64"
       }
       builders {
@@ -696,6 +882,30 @@
         includable_only: true
       }
       builders {
+        name: "dawn/try/cmake-linux-clang-dbg-x64"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-dbg-x64-asan"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-dbg-x64-ubsan"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-rel-x64"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-rel-x64-asan"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-rel-x64-ubsan"
+        experiment_percentage: 100
+      }
+      builders {
         name: "dawn/try/linux-clang-dbg-x64"
       }
       builders {
@@ -774,6 +984,30 @@
         includable_only: true
       }
       builders {
+        name: "dawn/try/cmake-linux-clang-dbg-x64"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-dbg-x64-asan"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-dbg-x64-ubsan"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-rel-x64"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-rel-x64-asan"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-rel-x64-ubsan"
+        experiment_percentage: 100
+      }
+      builders {
         name: "dawn/try/linux-clang-dbg-x64"
       }
       builders {
@@ -852,6 +1086,30 @@
         includable_only: true
       }
       builders {
+        name: "dawn/try/cmake-linux-clang-dbg-x64"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-dbg-x64-asan"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-dbg-x64-ubsan"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-rel-x64"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-rel-x64-asan"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-rel-x64-ubsan"
+        experiment_percentage: 100
+      }
+      builders {
         name: "dawn/try/linux-clang-dbg-x64"
       }
       builders {
@@ -930,6 +1188,30 @@
         includable_only: true
       }
       builders {
+        name: "dawn/try/cmake-linux-clang-dbg-x64"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-dbg-x64-asan"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-dbg-x64-ubsan"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-rel-x64"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-rel-x64-asan"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-rel-x64-ubsan"
+        experiment_percentage: 100
+      }
+      builders {
         name: "dawn/try/linux-clang-dbg-x64"
       }
       builders {
@@ -1008,6 +1290,30 @@
         includable_only: true
       }
       builders {
+        name: "dawn/try/cmake-linux-clang-dbg-x64"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-dbg-x64-asan"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-dbg-x64-ubsan"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-rel-x64"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-rel-x64-asan"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-rel-x64-ubsan"
+        experiment_percentage: 100
+      }
+      builders {
         name: "dawn/try/linux-clang-dbg-x64"
       }
       builders {
@@ -1086,6 +1392,30 @@
         includable_only: true
       }
       builders {
+        name: "dawn/try/cmake-linux-clang-dbg-x64"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-dbg-x64-asan"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-dbg-x64-ubsan"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-rel-x64"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-rel-x64-asan"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-rel-x64-ubsan"
+        experiment_percentage: 100
+      }
+      builders {
         name: "dawn/try/linux-clang-dbg-x64"
       }
       builders {
@@ -1167,6 +1497,30 @@
         includable_only: true
       }
       builders {
+        name: "dawn/try/cmake-linux-clang-dbg-x64"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-dbg-x64-asan"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-dbg-x64-ubsan"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-rel-x64"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-rel-x64-asan"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-rel-x64-ubsan"
+        experiment_percentage: 100
+      }
+      builders {
         name: "dawn/try/linux-clang-dbg-x64"
       }
       builders {
@@ -1248,6 +1602,30 @@
         includable_only: true
       }
       builders {
+        name: "dawn/try/cmake-linux-clang-dbg-x64"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-dbg-x64-asan"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-dbg-x64-ubsan"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-rel-x64"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-rel-x64-asan"
+        experiment_percentage: 100
+      }
+      builders {
+        name: "dawn/try/cmake-linux-clang-rel-x64-ubsan"
+        experiment_percentage: 100
+      }
+      builders {
         name: "dawn/try/linux-clang-dbg-x64"
       }
       builders {
diff --git a/infra/config/global/generated/cr-buildbucket.cfg b/infra/config/global/generated/cr-buildbucket.cfg
index 34568ad..6ae0019 100644
--- a/infra/config/global/generated/cr-buildbucket.cfg
+++ b/infra/config/global/generated/cr-buildbucket.cfg
@@ -11,6 +11,120 @@
   }
   swarming {
     builders {
+      name: "cmake-linux-clang-dbg-x64"
+      swarming_host: "chromium-swarm.appspot.com"
+      dimensions: "cpu:x86-64"
+      dimensions: "os:Ubuntu-18.04"
+      dimensions: "pool:luci.flex.ci"
+      recipe {
+        name: "dawn/cmake"
+        cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build"
+        cipd_version: "refs/heads/main"
+        properties_j: "$build/reclient:{\"instance\":\"rbe-chromium-trusted\",\"jobs\":250,\"metrics_project\":\"chromium-reclient-metrics\",\"scandeps_server\":true}"
+        properties_j: "asan:false"
+        properties_j: "clang:true"
+        properties_j: "debug:true"
+        properties_j: "target_cpu:\"x64\""
+        properties_j: "ubsan:false"
+      }
+      service_account: "dawn-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
+    }
+    builders {
+      name: "cmake-linux-clang-dbg-x64-asan"
+      swarming_host: "chromium-swarm.appspot.com"
+      dimensions: "cpu:x86-64"
+      dimensions: "os:Ubuntu-18.04"
+      dimensions: "pool:luci.flex.ci"
+      recipe {
+        name: "dawn/cmake"
+        cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build"
+        cipd_version: "refs/heads/main"
+        properties_j: "$build/reclient:{\"instance\":\"rbe-chromium-trusted\",\"jobs\":250,\"metrics_project\":\"chromium-reclient-metrics\",\"scandeps_server\":true}"
+        properties_j: "asan:true"
+        properties_j: "clang:true"
+        properties_j: "debug:true"
+        properties_j: "target_cpu:\"x64\""
+        properties_j: "ubsan:false"
+      }
+      service_account: "dawn-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
+    }
+    builders {
+      name: "cmake-linux-clang-dbg-x64-ubsan"
+      swarming_host: "chromium-swarm.appspot.com"
+      dimensions: "cpu:x86-64"
+      dimensions: "os:Ubuntu-18.04"
+      dimensions: "pool:luci.flex.ci"
+      recipe {
+        name: "dawn/cmake"
+        cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build"
+        cipd_version: "refs/heads/main"
+        properties_j: "$build/reclient:{\"instance\":\"rbe-chromium-trusted\",\"jobs\":250,\"metrics_project\":\"chromium-reclient-metrics\",\"scandeps_server\":true}"
+        properties_j: "asan:false"
+        properties_j: "clang:true"
+        properties_j: "debug:true"
+        properties_j: "target_cpu:\"x64\""
+        properties_j: "ubsan:true"
+      }
+      service_account: "dawn-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
+    }
+    builders {
+      name: "cmake-linux-clang-rel-x64"
+      swarming_host: "chromium-swarm.appspot.com"
+      dimensions: "cpu:x86-64"
+      dimensions: "os:Ubuntu-18.04"
+      dimensions: "pool:luci.flex.ci"
+      recipe {
+        name: "dawn/cmake"
+        cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build"
+        cipd_version: "refs/heads/main"
+        properties_j: "$build/reclient:{\"instance\":\"rbe-chromium-trusted\",\"jobs\":250,\"metrics_project\":\"chromium-reclient-metrics\",\"scandeps_server\":true}"
+        properties_j: "asan:false"
+        properties_j: "clang:true"
+        properties_j: "debug:false"
+        properties_j: "target_cpu:\"x64\""
+        properties_j: "ubsan:false"
+      }
+      service_account: "dawn-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
+    }
+    builders {
+      name: "cmake-linux-clang-rel-x64-asan"
+      swarming_host: "chromium-swarm.appspot.com"
+      dimensions: "cpu:x86-64"
+      dimensions: "os:Ubuntu-18.04"
+      dimensions: "pool:luci.flex.ci"
+      recipe {
+        name: "dawn/cmake"
+        cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build"
+        cipd_version: "refs/heads/main"
+        properties_j: "$build/reclient:{\"instance\":\"rbe-chromium-trusted\",\"jobs\":250,\"metrics_project\":\"chromium-reclient-metrics\",\"scandeps_server\":true}"
+        properties_j: "asan:true"
+        properties_j: "clang:true"
+        properties_j: "debug:false"
+        properties_j: "target_cpu:\"x64\""
+        properties_j: "ubsan:false"
+      }
+      service_account: "dawn-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
+    }
+    builders {
+      name: "cmake-linux-clang-rel-x64-ubsan"
+      swarming_host: "chromium-swarm.appspot.com"
+      dimensions: "cpu:x86-64"
+      dimensions: "os:Ubuntu-18.04"
+      dimensions: "pool:luci.flex.ci"
+      recipe {
+        name: "dawn/cmake"
+        cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build"
+        cipd_version: "refs/heads/main"
+        properties_j: "$build/reclient:{\"instance\":\"rbe-chromium-trusted\",\"jobs\":250,\"metrics_project\":\"chromium-reclient-metrics\",\"scandeps_server\":true}"
+        properties_j: "asan:false"
+        properties_j: "clang:true"
+        properties_j: "debug:false"
+        properties_j: "target_cpu:\"x64\""
+        properties_j: "ubsan:true"
+      }
+      service_account: "dawn-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
+    }
+    builders {
       name: "cron-linux-clang-rel-x64"
       swarming_host: "chromium-swarm.appspot.com"
       dimensions: "cpu:x86-64"
@@ -73,6 +187,7 @@
         properties_j: "$build/reclient:{\"instance\":\"rbe-chromium-trusted\",\"jobs\":250,\"metrics_project\":\"chromium-reclient-metrics\",\"scandeps_server\":true}"
         properties_j: "clang:true"
         properties_j: "debug:true"
+        properties_j: "gen_fuzz_corpus:false"
         properties_j: "target_cpu:\"x64\""
       }
       service_account: "dawn-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
@@ -90,6 +205,7 @@
         properties_j: "$build/reclient:{\"instance\":\"rbe-chromium-trusted\",\"jobs\":250,\"metrics_project\":\"chromium-reclient-metrics\",\"scandeps_server\":true}"
         properties_j: "clang:true"
         properties_j: "debug:true"
+        properties_j: "gen_fuzz_corpus:false"
         properties_j: "target_cpu:\"x86\""
       }
       service_account: "dawn-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
@@ -107,6 +223,7 @@
         properties_j: "$build/reclient:{\"instance\":\"rbe-chromium-trusted\",\"jobs\":250,\"metrics_project\":\"chromium-reclient-metrics\",\"scandeps_server\":true}"
         properties_j: "clang:true"
         properties_j: "debug:false"
+        properties_j: "gen_fuzz_corpus:false"
         properties_j: "target_cpu:\"x64\""
       }
       service_account: "dawn-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
@@ -124,6 +241,7 @@
         properties_j: "$build/reclient:{\"instance\":\"rbe-chromium-trusted\",\"jobs\":250,\"metrics_project\":\"chromium-reclient-metrics\",\"scandeps_server\":true}"
         properties_j: "clang:true"
         properties_j: "debug:false"
+        properties_j: "gen_fuzz_corpus:false"
         properties_j: "target_cpu:\"x86\""
       }
       service_account: "dawn-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
@@ -141,6 +259,7 @@
         properties_j: "$build/reclient:{\"instance\":\"rbe-chromium-trusted\",\"jobs\":250,\"metrics_project\":\"chromium-reclient-metrics\",\"scandeps_server\":true}"
         properties_j: "clang:true"
         properties_j: "debug:true"
+        properties_j: "gen_fuzz_corpus:false"
         properties_j: "target_cpu:\"x64\""
       }
       caches {
@@ -162,6 +281,7 @@
         properties_j: "$build/reclient:{\"instance\":\"rbe-chromium-trusted\",\"jobs\":250,\"metrics_project\":\"chromium-reclient-metrics\",\"scandeps_server\":true}"
         properties_j: "clang:true"
         properties_j: "debug:false"
+        properties_j: "gen_fuzz_corpus:false"
         properties_j: "target_cpu:\"x64\""
       }
       caches {
@@ -183,6 +303,7 @@
         properties_j: "$build/reclient:{\"instance\":\"rbe-chromium-trusted\",\"jobs\":250,\"metrics_project\":\"chromium-reclient-metrics\",\"scandeps_server\":true}"
         properties_j: "clang:true"
         properties_j: "debug:true"
+        properties_j: "gen_fuzz_corpus:false"
         properties_j: "target_cpu:\"x64\""
       }
       service_account: "dawn-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
@@ -200,6 +321,7 @@
         properties_j: "$build/reclient:{\"instance\":\"rbe-chromium-trusted\",\"jobs\":250,\"metrics_project\":\"chromium-reclient-metrics\",\"scandeps_server\":true}"
         properties_j: "clang:true"
         properties_j: "debug:true"
+        properties_j: "gen_fuzz_corpus:false"
         properties_j: "target_cpu:\"x86\""
       }
       service_account: "dawn-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
@@ -217,6 +339,7 @@
         properties_j: "$build/reclient:{\"instance\":\"rbe-chromium-trusted\",\"jobs\":250,\"metrics_project\":\"chromium-reclient-metrics\",\"scandeps_server\":true}"
         properties_j: "clang:true"
         properties_j: "debug:false"
+        properties_j: "gen_fuzz_corpus:false"
         properties_j: "target_cpu:\"x64\""
       }
       service_account: "dawn-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
@@ -234,6 +357,7 @@
         properties_j: "$build/reclient:{\"instance\":\"rbe-chromium-trusted\",\"jobs\":250,\"metrics_project\":\"chromium-reclient-metrics\",\"scandeps_server\":true}"
         properties_j: "clang:true"
         properties_j: "debug:false"
+        properties_j: "gen_fuzz_corpus:false"
         properties_j: "target_cpu:\"x86\""
       }
       service_account: "dawn-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
@@ -250,6 +374,7 @@
         cipd_version: "refs/heads/main"
         properties_j: "clang:false"
         properties_j: "debug:true"
+        properties_j: "gen_fuzz_corpus:false"
         properties_j: "target_cpu:\"x64\""
       }
       service_account: "dawn-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
@@ -266,6 +391,7 @@
         cipd_version: "refs/heads/main"
         properties_j: "clang:false"
         properties_j: "debug:false"
+        properties_j: "gen_fuzz_corpus:false"
         properties_j: "target_cpu:\"x64\""
       }
       service_account: "dawn-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
@@ -291,6 +417,126 @@
   }
   swarming {
     builders {
+      name: "cmake-linux-clang-dbg-x64"
+      swarming_host: "chromium-swarm.appspot.com"
+      dimensions: "cpu:x86-64"
+      dimensions: "os:Ubuntu-18.04"
+      dimensions: "pool:luci.flex.try"
+      recipe {
+        name: "dawn/cmake"
+        cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build"
+        cipd_version: "refs/heads/main"
+        properties_j: "$build/reclient:{\"instance\":\"rbe-chromium-untrusted\",\"jobs\":150,\"metrics_project\":\"chromium-reclient-metrics\",\"scandeps_server\":true}"
+        properties_j: "$depot_tools/bot_update:{\"apply_patch_on_gclient\":true}"
+        properties_j: "asan:false"
+        properties_j: "clang:true"
+        properties_j: "debug:true"
+        properties_j: "target_cpu:\"x64\""
+        properties_j: "ubsan:false"
+      }
+      service_account: "dawn-try-builder@chops-service-accounts.iam.gserviceaccount.com"
+    }
+    builders {
+      name: "cmake-linux-clang-dbg-x64-asan"
+      swarming_host: "chromium-swarm.appspot.com"
+      dimensions: "cpu:x86-64"
+      dimensions: "os:Ubuntu-18.04"
+      dimensions: "pool:luci.flex.try"
+      recipe {
+        name: "dawn/cmake"
+        cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build"
+        cipd_version: "refs/heads/main"
+        properties_j: "$build/reclient:{\"instance\":\"rbe-chromium-untrusted\",\"jobs\":150,\"metrics_project\":\"chromium-reclient-metrics\",\"scandeps_server\":true}"
+        properties_j: "$depot_tools/bot_update:{\"apply_patch_on_gclient\":true}"
+        properties_j: "asan:true"
+        properties_j: "clang:true"
+        properties_j: "debug:true"
+        properties_j: "target_cpu:\"x64\""
+        properties_j: "ubsan:false"
+      }
+      service_account: "dawn-try-builder@chops-service-accounts.iam.gserviceaccount.com"
+    }
+    builders {
+      name: "cmake-linux-clang-dbg-x64-ubsan"
+      swarming_host: "chromium-swarm.appspot.com"
+      dimensions: "cpu:x86-64"
+      dimensions: "os:Ubuntu-18.04"
+      dimensions: "pool:luci.flex.try"
+      recipe {
+        name: "dawn/cmake"
+        cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build"
+        cipd_version: "refs/heads/main"
+        properties_j: "$build/reclient:{\"instance\":\"rbe-chromium-untrusted\",\"jobs\":150,\"metrics_project\":\"chromium-reclient-metrics\",\"scandeps_server\":true}"
+        properties_j: "$depot_tools/bot_update:{\"apply_patch_on_gclient\":true}"
+        properties_j: "asan:false"
+        properties_j: "clang:true"
+        properties_j: "debug:true"
+        properties_j: "target_cpu:\"x64\""
+        properties_j: "ubsan:true"
+      }
+      service_account: "dawn-try-builder@chops-service-accounts.iam.gserviceaccount.com"
+    }
+    builders {
+      name: "cmake-linux-clang-rel-x64"
+      swarming_host: "chromium-swarm.appspot.com"
+      dimensions: "cpu:x86-64"
+      dimensions: "os:Ubuntu-18.04"
+      dimensions: "pool:luci.flex.try"
+      recipe {
+        name: "dawn/cmake"
+        cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build"
+        cipd_version: "refs/heads/main"
+        properties_j: "$build/reclient:{\"instance\":\"rbe-chromium-untrusted\",\"jobs\":150,\"metrics_project\":\"chromium-reclient-metrics\",\"scandeps_server\":true}"
+        properties_j: "$depot_tools/bot_update:{\"apply_patch_on_gclient\":true}"
+        properties_j: "asan:false"
+        properties_j: "clang:true"
+        properties_j: "debug:false"
+        properties_j: "target_cpu:\"x64\""
+        properties_j: "ubsan:false"
+      }
+      service_account: "dawn-try-builder@chops-service-accounts.iam.gserviceaccount.com"
+    }
+    builders {
+      name: "cmake-linux-clang-rel-x64-asan"
+      swarming_host: "chromium-swarm.appspot.com"
+      dimensions: "cpu:x86-64"
+      dimensions: "os:Ubuntu-18.04"
+      dimensions: "pool:luci.flex.try"
+      recipe {
+        name: "dawn/cmake"
+        cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build"
+        cipd_version: "refs/heads/main"
+        properties_j: "$build/reclient:{\"instance\":\"rbe-chromium-untrusted\",\"jobs\":150,\"metrics_project\":\"chromium-reclient-metrics\",\"scandeps_server\":true}"
+        properties_j: "$depot_tools/bot_update:{\"apply_patch_on_gclient\":true}"
+        properties_j: "asan:true"
+        properties_j: "clang:true"
+        properties_j: "debug:false"
+        properties_j: "target_cpu:\"x64\""
+        properties_j: "ubsan:false"
+      }
+      service_account: "dawn-try-builder@chops-service-accounts.iam.gserviceaccount.com"
+    }
+    builders {
+      name: "cmake-linux-clang-rel-x64-ubsan"
+      swarming_host: "chromium-swarm.appspot.com"
+      dimensions: "cpu:x86-64"
+      dimensions: "os:Ubuntu-18.04"
+      dimensions: "pool:luci.flex.try"
+      recipe {
+        name: "dawn/cmake"
+        cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build"
+        cipd_version: "refs/heads/main"
+        properties_j: "$build/reclient:{\"instance\":\"rbe-chromium-untrusted\",\"jobs\":150,\"metrics_project\":\"chromium-reclient-metrics\",\"scandeps_server\":true}"
+        properties_j: "$depot_tools/bot_update:{\"apply_patch_on_gclient\":true}"
+        properties_j: "asan:false"
+        properties_j: "clang:true"
+        properties_j: "debug:false"
+        properties_j: "target_cpu:\"x64\""
+        properties_j: "ubsan:true"
+      }
+      service_account: "dawn-try-builder@chops-service-accounts.iam.gserviceaccount.com"
+    }
+    builders {
       name: "dawn_analysis"
       swarming_host: "chromium-swarm.appspot.com"
       dimensions: "cores:8"
@@ -319,6 +565,7 @@
         properties_j: "$depot_tools/bot_update:{\"apply_patch_on_gclient\":true}"
         properties_j: "clang:true"
         properties_j: "debug:true"
+        properties_j: "gen_fuzz_corpus:false"
         properties_j: "target_cpu:\"x64\""
       }
       service_account: "dawn-try-builder@chops-service-accounts.iam.gserviceaccount.com"
@@ -337,6 +584,7 @@
         properties_j: "$depot_tools/bot_update:{\"apply_patch_on_gclient\":true}"
         properties_j: "clang:true"
         properties_j: "debug:true"
+        properties_j: "gen_fuzz_corpus:false"
         properties_j: "target_cpu:\"x86\""
       }
       service_account: "dawn-try-builder@chops-service-accounts.iam.gserviceaccount.com"
@@ -355,6 +603,7 @@
         properties_j: "$depot_tools/bot_update:{\"apply_patch_on_gclient\":true}"
         properties_j: "clang:true"
         properties_j: "debug:false"
+        properties_j: "gen_fuzz_corpus:false"
         properties_j: "target_cpu:\"x64\""
       }
       service_account: "dawn-try-builder@chops-service-accounts.iam.gserviceaccount.com"
@@ -373,6 +622,7 @@
         properties_j: "$depot_tools/bot_update:{\"apply_patch_on_gclient\":true}"
         properties_j: "clang:true"
         properties_j: "debug:false"
+        properties_j: "gen_fuzz_corpus:false"
         properties_j: "target_cpu:\"x86\""
       }
       service_account: "dawn-try-builder@chops-service-accounts.iam.gserviceaccount.com"
@@ -391,6 +641,7 @@
         properties_j: "$depot_tools/bot_update:{\"apply_patch_on_gclient\":true}"
         properties_j: "clang:true"
         properties_j: "debug:true"
+        properties_j: "gen_fuzz_corpus:false"
         properties_j: "target_cpu:\"x64\""
       }
       caches {
@@ -413,6 +664,7 @@
         properties_j: "$depot_tools/bot_update:{\"apply_patch_on_gclient\":true}"
         properties_j: "clang:true"
         properties_j: "debug:false"
+        properties_j: "gen_fuzz_corpus:false"
         properties_j: "target_cpu:\"x64\""
       }
       caches {
@@ -451,6 +703,7 @@
         properties_j: "$depot_tools/bot_update:{\"apply_patch_on_gclient\":true}"
         properties_j: "clang:true"
         properties_j: "debug:true"
+        properties_j: "gen_fuzz_corpus:false"
         properties_j: "target_cpu:\"x64\""
       }
       service_account: "dawn-try-builder@chops-service-accounts.iam.gserviceaccount.com"
@@ -469,6 +722,7 @@
         properties_j: "$depot_tools/bot_update:{\"apply_patch_on_gclient\":true}"
         properties_j: "clang:true"
         properties_j: "debug:true"
+        properties_j: "gen_fuzz_corpus:false"
         properties_j: "target_cpu:\"x86\""
       }
       service_account: "dawn-try-builder@chops-service-accounts.iam.gserviceaccount.com"
@@ -487,6 +741,7 @@
         properties_j: "$depot_tools/bot_update:{\"apply_patch_on_gclient\":true}"
         properties_j: "clang:true"
         properties_j: "debug:false"
+        properties_j: "gen_fuzz_corpus:false"
         properties_j: "target_cpu:\"x64\""
       }
       service_account: "dawn-try-builder@chops-service-accounts.iam.gserviceaccount.com"
@@ -505,6 +760,7 @@
         properties_j: "$depot_tools/bot_update:{\"apply_patch_on_gclient\":true}"
         properties_j: "clang:true"
         properties_j: "debug:false"
+        properties_j: "gen_fuzz_corpus:false"
         properties_j: "target_cpu:\"x86\""
       }
       service_account: "dawn-try-builder@chops-service-accounts.iam.gserviceaccount.com"
@@ -522,6 +778,7 @@
         properties_j: "$depot_tools/bot_update:{\"apply_patch_on_gclient\":true}"
         properties_j: "clang:false"
         properties_j: "debug:true"
+        properties_j: "gen_fuzz_corpus:false"
         properties_j: "target_cpu:\"x64\""
       }
       service_account: "dawn-try-builder@chops-service-accounts.iam.gserviceaccount.com"
@@ -539,6 +796,7 @@
         properties_j: "$depot_tools/bot_update:{\"apply_patch_on_gclient\":true}"
         properties_j: "clang:false"
         properties_j: "debug:false"
+        properties_j: "gen_fuzz_corpus:false"
         properties_j: "target_cpu:\"x64\""
       }
       service_account: "dawn-try-builder@chops-service-accounts.iam.gserviceaccount.com"
diff --git a/infra/config/global/generated/luci-milo.cfg b/infra/config/global/generated/luci-milo.cfg
index 9ad9529..f613c34 100644
--- a/infra/config/global/generated/luci-milo.cfg
+++ b/infra/config/global/generated/luci-milo.cfg
@@ -80,6 +80,36 @@
     category: "cron|linux|clang|rel"
     short_name: "x64"
   }
+  builders {
+    name: "buildbucket/luci.dawn.ci/cmake-linux-clang-dbg-x64"
+    category: "linux|clang|dbg"
+    short_name: "x64"
+  }
+  builders {
+    name: "buildbucket/luci.dawn.ci/cmake-linux-clang-dbg-x64-asan"
+    category: "linux|clang|dbg"
+    short_name: "x64"
+  }
+  builders {
+    name: "buildbucket/luci.dawn.ci/cmake-linux-clang-dbg-x64-ubsan"
+    category: "linux|clang|dbg"
+    short_name: "x64"
+  }
+  builders {
+    name: "buildbucket/luci.dawn.ci/cmake-linux-clang-rel-x64"
+    category: "linux|clang|rel"
+    short_name: "x64"
+  }
+  builders {
+    name: "buildbucket/luci.dawn.ci/cmake-linux-clang-rel-x64-asan"
+    category: "linux|clang|rel"
+    short_name: "x64"
+  }
+  builders {
+    name: "buildbucket/luci.dawn.ci/cmake-linux-clang-rel-x64-ubsan"
+    category: "linux|clang|rel"
+    short_name: "x64"
+  }
 }
 consoles {
   id: "try"
@@ -124,6 +154,24 @@
     name: "buildbucket/luci.dawn.try/win-msvc-rel-x64"
   }
   builders {
+    name: "buildbucket/luci.dawn.try/cmake-linux-clang-dbg-x64"
+  }
+  builders {
+    name: "buildbucket/luci.dawn.try/cmake-linux-clang-dbg-x64-asan"
+  }
+  builders {
+    name: "buildbucket/luci.dawn.try/cmake-linux-clang-dbg-x64-ubsan"
+  }
+  builders {
+    name: "buildbucket/luci.dawn.try/cmake-linux-clang-rel-x64"
+  }
+  builders {
+    name: "buildbucket/luci.dawn.try/cmake-linux-clang-rel-x64-asan"
+  }
+  builders {
+    name: "buildbucket/luci.dawn.try/cmake-linux-clang-rel-x64-ubsan"
+  }
+  builders {
     name: "buildbucket/luci.dawn.try/dawn_analysis"
   }
   builder_view_only: true
diff --git a/infra/config/global/generated/luci-notify.cfg b/infra/config/global/generated/luci-notify.cfg
index c0308fb..1c16f10 100644
--- a/infra/config/global/generated/luci-notify.cfg
+++ b/infra/config/global/generated/luci-notify.cfg
@@ -14,6 +14,90 @@
   }
   builders {
     bucket: "ci"
+    name: "cmake-linux-clang-dbg-x64"
+    repository: "https://dawn.googlesource.com/dawn"
+  }
+}
+notifiers {
+  notifications {
+    on_occurrence: FAILURE
+    on_occurrence: INFRA_FAILURE
+    email {
+      rotation_urls: "https://chrome-ops-rotation-proxy.appspot.com/current/grotation:webgpu-gardener"
+    }
+  }
+  builders {
+    bucket: "ci"
+    name: "cmake-linux-clang-dbg-x64-asan"
+    repository: "https://dawn.googlesource.com/dawn"
+  }
+}
+notifiers {
+  notifications {
+    on_occurrence: FAILURE
+    on_occurrence: INFRA_FAILURE
+    email {
+      rotation_urls: "https://chrome-ops-rotation-proxy.appspot.com/current/grotation:webgpu-gardener"
+    }
+  }
+  builders {
+    bucket: "ci"
+    name: "cmake-linux-clang-dbg-x64-ubsan"
+    repository: "https://dawn.googlesource.com/dawn"
+  }
+}
+notifiers {
+  notifications {
+    on_occurrence: FAILURE
+    on_occurrence: INFRA_FAILURE
+    email {
+      rotation_urls: "https://chrome-ops-rotation-proxy.appspot.com/current/grotation:webgpu-gardener"
+    }
+  }
+  builders {
+    bucket: "ci"
+    name: "cmake-linux-clang-rel-x64"
+    repository: "https://dawn.googlesource.com/dawn"
+  }
+}
+notifiers {
+  notifications {
+    on_occurrence: FAILURE
+    on_occurrence: INFRA_FAILURE
+    email {
+      rotation_urls: "https://chrome-ops-rotation-proxy.appspot.com/current/grotation:webgpu-gardener"
+    }
+  }
+  builders {
+    bucket: "ci"
+    name: "cmake-linux-clang-rel-x64-asan"
+    repository: "https://dawn.googlesource.com/dawn"
+  }
+}
+notifiers {
+  notifications {
+    on_occurrence: FAILURE
+    on_occurrence: INFRA_FAILURE
+    email {
+      rotation_urls: "https://chrome-ops-rotation-proxy.appspot.com/current/grotation:webgpu-gardener"
+    }
+  }
+  builders {
+    bucket: "ci"
+    name: "cmake-linux-clang-rel-x64-ubsan"
+    repository: "https://dawn.googlesource.com/dawn"
+  }
+}
+notifiers {
+  notifications {
+    on_occurrence: FAILURE
+    on_occurrence: INFRA_FAILURE
+    email {
+      rotation_urls: "https://chrome-ops-rotation-proxy.appspot.com/current/grotation:webgpu-gardener"
+    }
+  }
+  builders {
+    bucket: "ci"
     name: "cron-linux-clang-rel-x64"
   }
 }
diff --git a/infra/config/global/generated/luci-scheduler.cfg b/infra/config/global/generated/luci-scheduler.cfg
index 5393d61..914468f 100644
--- a/infra/config/global/generated/luci-scheduler.cfg
+++ b/infra/config/global/generated/luci-scheduler.cfg
@@ -5,6 +5,66 @@
 #   https://config.luci.app/schemas/projects:luci-scheduler.cfg
 
 job {
+  id: "cmake-linux-clang-dbg-x64"
+  realm: "ci"
+  acl_sets: "ci"
+  buildbucket {
+    server: "cr-buildbucket.appspot.com"
+    bucket: "ci"
+    builder: "cmake-linux-clang-dbg-x64"
+  }
+}
+job {
+  id: "cmake-linux-clang-dbg-x64-asan"
+  realm: "ci"
+  acl_sets: "ci"
+  buildbucket {
+    server: "cr-buildbucket.appspot.com"
+    bucket: "ci"
+    builder: "cmake-linux-clang-dbg-x64-asan"
+  }
+}
+job {
+  id: "cmake-linux-clang-dbg-x64-ubsan"
+  realm: "ci"
+  acl_sets: "ci"
+  buildbucket {
+    server: "cr-buildbucket.appspot.com"
+    bucket: "ci"
+    builder: "cmake-linux-clang-dbg-x64-ubsan"
+  }
+}
+job {
+  id: "cmake-linux-clang-rel-x64"
+  realm: "ci"
+  acl_sets: "ci"
+  buildbucket {
+    server: "cr-buildbucket.appspot.com"
+    bucket: "ci"
+    builder: "cmake-linux-clang-rel-x64"
+  }
+}
+job {
+  id: "cmake-linux-clang-rel-x64-asan"
+  realm: "ci"
+  acl_sets: "ci"
+  buildbucket {
+    server: "cr-buildbucket.appspot.com"
+    bucket: "ci"
+    builder: "cmake-linux-clang-rel-x64-asan"
+  }
+}
+job {
+  id: "cmake-linux-clang-rel-x64-ubsan"
+  realm: "ci"
+  acl_sets: "ci"
+  buildbucket {
+    server: "cr-buildbucket.appspot.com"
+    bucket: "ci"
+    builder: "cmake-linux-clang-rel-x64-ubsan"
+  }
+}
+job {
   id: "cron-linux-clang-rel-x64"
   realm: "ci"
   schedule: "0 0 0 * * * *"
@@ -150,6 +210,12 @@
   id: "primary-poller"
   realm: "ci"
   acl_sets: "ci"
+  triggers: "cmake-linux-clang-dbg-x64"
+  triggers: "cmake-linux-clang-dbg-x64-asan"
+  triggers: "cmake-linux-clang-dbg-x64-ubsan"
+  triggers: "cmake-linux-clang-rel-x64"
+  triggers: "cmake-linux-clang-rel-x64-asan"
+  triggers: "cmake-linux-clang-rel-x64-ubsan"
   triggers: "linux-clang-dbg-x64"
   triggers: "linux-clang-dbg-x86"
   triggers: "linux-clang-rel-x64"
diff --git a/infra/config/global/generated/project.cfg b/infra/config/global/generated/project.cfg
index f326746c..0bcf0da 100644
--- a/infra/config/global/generated/project.cfg
+++ b/infra/config/global/generated/project.cfg
@@ -7,7 +7,7 @@
 name: "dawn"
 access: "group:all"
 lucicfg {
-  version: "1.43.4"
+  version: "1.43.5"
   package_dir: ".."
   config_dir: "generated"
   entry_point: "main.star"
diff --git a/infra/config/global/main.star b/infra/config/global/main.star
index 8445449..44216f2 100755
--- a/infra/config/global/main.star
+++ b/infra/config/global/main.star
@@ -158,7 +158,6 @@
     ),
 )
 
-
 luci.notifier(
     name = "gardener-notifier",
     notify_rotation_urls = [
@@ -169,14 +168,14 @@
 
 # Recipes
 
-def get_builder_executable():
+def get_builder_executable(use_gn):
     """Get standard executable for builders
 
     Returns:
       A luci.recipe
     """
     return luci.recipe(
-        name = "dawn/gn",
+        name = "dawn/gn" if use_gn else "dawn/cmake",
         cipd_package = "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build",
         cipd_version = "refs/heads/main",
     )
@@ -257,57 +256,49 @@
 
     return dimensions
 
-def get_default_properties(os, clang, debug, cpu, fuzzer, reclient_instance, reclient_jobs):
-    """Get the properties for a builder that don't depend on being CI vs Try
+def get_common_properties(os, clang, reclient_instance, reclient_jobs):
+    """Add the common properties for a builder that don't depend on being CI vs Try
 
     Args:
       os: OS enum for the builder
-      clang: is this builder running clang
-      debug: is this builder generating debug builds
-      cpu: string representing the target CPU architecture
-      fuzzer: is this builder running the fuzzers
 
     Returns:
       A properties dict
     """
     properties = {}
-
-    properties["debug"] = debug
-    properties["target_cpu"] = cpu
-
-    properties["clang"] = clang
     msvc = os.category == os_category.WINDOWS and not clang
 
-    if fuzzer:
-        properties["gen_fuzz_corpus"] = True
-
     if not msvc:
         reclient_props = {
             "instance": reclient_instance,
             "jobs": reclient_jobs,
             "metrics_project": "chromium-reclient-metrics",
-            "scandeps_server": True
+            "scandeps_server": True,
         }
         properties["$build/reclient"] = reclient_props
 
     return properties
 
-def add_ci_builder(name, os, clang, debug, cpu, fuzzer):
+def add_ci_builder(name, os, properties):
     """Add a CI builder
 
     Args:
       name: builder's name in string form
       os: OS enum for the builder
-      clang: is this builder running clang
-      debug: is this builder generating debug builds
-      cpu: string representing the target CPU architecture
-      fuzzer: is this builder running the fuzzers
+      properties: properties dictionary
     """
+    clang = properties["clang"]
+    fuzzer = ("gen_fuzz_corpus" in properties) and properties["gen_fuzz_corpus"]
+
     dimensions_ci = get_default_dimensions(os)
     dimensions_ci["pool"] = "luci.flex.ci"
-    properties_ci = get_default_properties(os, clang, debug, cpu, fuzzer,
-                                           reclient.instance.DEFAULT_TRUSTED,
-                                           reclient.jobs.HIGH_JOBS_FOR_CI)
+    properties_ci = get_common_properties(
+        os,
+        clang,
+        reclient.instance.DEFAULT_TRUSTED,
+        reclient.jobs.HIGH_JOBS_FOR_CI,
+    )
+    properties_ci.update(properties)
     schedule_ci = None
     if fuzzer:
         schedule_ci = "0 0 0 * * * *"
@@ -319,7 +310,7 @@
         bucket = "ci",
         schedule = schedule_ci,
         triggered_by = triggered_by_ci,
-        executable = get_builder_executable(),
+        executable = get_builder_executable(use_gn = "cmake" not in name),
         properties = properties_ci,
         dimensions = dimensions_ci,
         caches = get_default_caches(os, clang),
@@ -327,29 +318,32 @@
         service_account = "dawn-ci-builder@chops-service-accounts.iam.gserviceaccount.com",
     )
 
-def add_try_builder(name, os, clang, debug, cpu, fuzzer):
+def add_try_builder(name, os, properties):
     """Add a Try builder
 
     Args:
       name: builder's name in string form
       os: OS enum for the builder
-      clang: is this builder running clang
-      debug: is this builder generating debug builds
-      cpu: string representing the target CPU architecture
-      fuzzer: is this builder running the fuzzers
+      properties: properties dictionary
     """
+    clang = properties["clang"]
+
     dimensions_try = get_default_dimensions(os)
     dimensions_try["pool"] = "luci.flex.try"
-    properties_try = get_default_properties(os, clang, debug, cpu, fuzzer,
-                                            reclient.instance.DEFAULT_UNTRUSTED,
-                                            reclient.jobs.LOW_JOBS_FOR_CQ)
+    properties_try = get_common_properties(
+        os,
+        clang,
+        reclient.instance.DEFAULT_UNTRUSTED,
+        reclient.jobs.LOW_JOBS_FOR_CQ,
+    )
+    properties_try.update(properties)
     properties_try["$depot_tools/bot_update"] = {
         "apply_patch_on_gclient": True,
     }
     luci.builder(
         name = name,
         bucket = "try",
-        executable = get_builder_executable(),
+        executable = get_builder_executable(use_gn = "cmake" not in name),
         properties = properties_try,
         dimensions = dimensions_try,
         caches = get_default_caches(os, clang),
@@ -375,7 +369,7 @@
         service_account = "dawn-try-builder@chops-service-accounts.iam.gserviceaccount.com",
     )
 
-def dawn_standalone_builder(name, clang, debug, cpu, fuzzer = False):
+def dawn_standalone_builder(name, clang, debug, cpu, fuzzer):
     """Adds both the CI and Try standalone builders as appropriate
 
     Args:
@@ -388,9 +382,16 @@
     """
     os = get_os_from_arg(name)
 
-    add_ci_builder(name, os, clang, debug, cpu, fuzzer)
+    properties = {
+        "clang": clang,
+        "debug": debug,
+        "target_cpu": cpu,
+        "gen_fuzz_corpus": fuzzer,
+    }
+
+    add_ci_builder(name, os, properties)
     if not fuzzer:
-        add_try_builder(name, os, clang, debug, cpu, fuzzer)
+        add_try_builder(name, os, properties)
 
     config = ""
     if clang:
@@ -446,6 +447,83 @@
                 builder = "dawn:try/" + name,
             )
 
+def dawn_cmake_standalone_builder(name, clang, debug, cpu, asan, ubsan):
+    """Adds both the CI and Try standalone builders as appropriate for the CMake build
+
+    Args:
+      name: builder's name in string form
+      clang: is this builder running clang
+      debug: is this builder generating debug builds
+      cpu: string representing the target CPU architecture
+      asan: is this builder building with asan enabled
+      ubsan: is this builder building with ubsan enabled
+    """
+    os = get_os_from_arg(name)
+
+    properties = {
+        "clang": clang,
+        "debug": debug,
+        "target_cpu": cpu,
+        "asan": asan,
+        "ubsan": ubsan,
+    }
+
+    add_ci_builder(name, os, properties)
+    add_try_builder(name, os, properties)
+
+    config = ""
+    if clang:
+        config = "clang"
+    elif os.category == os_category.WINDOWS:
+        config = "msvc"
+
+    category = ""
+    category += os.console_name
+
+    if os.category != os_category.MAC:
+        category += "|" + config
+        if config != "msvc":
+            category += "|dbg" if debug else "|rel"
+
+    short_name = "dbg" if debug else "rel"
+    if os.category != os_category.MAC:
+        if config != "msvc":
+            short_name = cpu
+
+    luci.console_view_entry(
+        console_view = "ci",
+        builder = "ci/" + name,
+        category = category,
+        short_name = short_name,
+    )
+
+    luci.list_view_entry(
+        list_view = "try",
+        builder = "try/" + name,
+    )
+
+    luci.cq_tryjob_verifier(
+        experiment_percentage = 100,  # Temporarily make this experimental
+        cq_group = "Dawn-CQ",
+        builder = "dawn:try/" + name,
+        location_filters = [
+            cq.location_filter(path_regexp = ".*"),
+            cq.location_filter(
+                path_regexp = "\\.github/.+",
+                exclude = True,
+            ),
+        ],
+    )
+
+    # These builders run fine unbranched on branch CLs, so add them to the
+    # branch groups as well.
+    for milestone in ACTIVE_MILESTONES.keys():
+        luci.cq_tryjob_verifier(
+            experiment_percentage = 100,  # Temporarily make this experimental
+            cq_group = "Dawn-CQ-" + milestone,
+            builder = "dawn:try/" + name,
+        )
+
 def _add_branch_verifiers(builder_name, os, min_milestone = None, includable_only = False):
     for milestone, details in ACTIVE_MILESTONES.items():
         if os not in details.platforms:
@@ -500,7 +578,7 @@
         luci.cq_tryjob_verifier(
             cq_group = "Dawn-CQ",
             builder = "chromium:try/{builder}".format(builder =
-                _os_arch_to_dawn_cq_builder["{os}-{arch}".format(os = os, arch = arch)]),
+                                                          _os_arch_to_dawn_cq_builder["{os}-{arch}".format(os = os, arch = arch)]),
             location_filters = [
                 cq.location_filter(path_regexp = ".*"),
                 cq.location_filter(
@@ -551,10 +629,10 @@
         owner_whitelist = ["project-dawn-tryjob-access"],
         mode_allowlist = [cq.MODE_ANALYZER_RUN],
         location_filters = [
-          cq.location_filter(path_regexp = ".+\\.h"),
-          cq.location_filter(path_regexp = ".+\\.c"),
-          cq.location_filter(path_regexp = ".+\\.cc"),
-          cq.location_filter(path_regexp = ".+\\.cpp")
+            cq.location_filter(path_regexp = ".+\\.h"),
+            cq.location_filter(path_regexp = ".+\\.c"),
+            cq.location_filter(path_regexp = ".+\\.cc"),
+            cq.location_filter(path_regexp = ".+\\.cpp"),
         ],
     )
 
@@ -563,7 +641,6 @@
         builder = "try/dawn_analysis",
     )
 
-
 luci.gitiles_poller(
     name = "primary-poller",
     bucket = "ci",
@@ -634,20 +711,26 @@
     short_name = "cts",
 )
 
-#                        name, clang, debug, cpu(, fuzzer)
-dawn_standalone_builder("linux-clang-dbg-x64", True, True, "x64")
-dawn_standalone_builder("linux-clang-dbg-x86", True, True, "x86")
-dawn_standalone_builder("linux-clang-rel-x64", True, False, "x64")
-dawn_standalone_builder("linux-clang-rel-x86", True, False, "x86")
-dawn_standalone_builder("mac-dbg", True, True, "x64")
-dawn_standalone_builder("mac-rel", True, False, "x64")
-dawn_standalone_builder("win-clang-dbg-x64", True, True, "x64")
-dawn_standalone_builder("win-clang-dbg-x86", True, True, "x86")
-dawn_standalone_builder("win-clang-rel-x64", True, False, "x64")
-dawn_standalone_builder("win-clang-rel-x86", True, False, "x86")
-dawn_standalone_builder("win-msvc-dbg-x64", False, True, "x64")
-dawn_standalone_builder("win-msvc-rel-x64", False, False, "x64")
-dawn_standalone_builder("cron-linux-clang-rel-x64", True, False, "x64", True)
+dawn_standalone_builder("linux-clang-dbg-x64", clang = True, debug = True, cpu = "x64", fuzzer = False)
+dawn_standalone_builder("linux-clang-dbg-x86", clang = True, debug = True, cpu = "x86", fuzzer = False)
+dawn_standalone_builder("linux-clang-rel-x64", clang = True, debug = False, cpu = "x64", fuzzer = False)
+dawn_standalone_builder("linux-clang-rel-x86", clang = True, debug = False, cpu = "x86", fuzzer = False)
+dawn_standalone_builder("mac-dbg", clang = True, debug = True, cpu = "x64", fuzzer = False)
+dawn_standalone_builder("mac-rel", clang = True, debug = False, cpu = "x64", fuzzer = False)
+dawn_standalone_builder("win-clang-dbg-x64", clang = True, debug = True, cpu = "x64", fuzzer = False)
+dawn_standalone_builder("win-clang-dbg-x86", clang = True, debug = True, cpu = "x86", fuzzer = False)
+dawn_standalone_builder("win-clang-rel-x64", clang = True, debug = False, cpu = "x64", fuzzer = False)
+dawn_standalone_builder("win-clang-rel-x86", clang = True, debug = False, cpu = "x86", fuzzer = False)
+dawn_standalone_builder("win-msvc-dbg-x64", clang = False, debug = True, cpu = "x64", fuzzer = False)
+dawn_standalone_builder("win-msvc-rel-x64", clang = False, debug = False, cpu = "x64", fuzzer = False)
+dawn_standalone_builder("cron-linux-clang-rel-x64", clang = True, debug = False, cpu = "x64", fuzzer = True)
+
+dawn_cmake_standalone_builder("cmake-linux-clang-dbg-x64", clang = True, debug = True, cpu = "x64", asan = False, ubsan = False)
+dawn_cmake_standalone_builder("cmake-linux-clang-dbg-x64-asan", clang = True, debug = True, cpu = "x64", asan = True, ubsan = False)
+dawn_cmake_standalone_builder("cmake-linux-clang-dbg-x64-ubsan", clang = True, debug = True, cpu = "x64", asan = False, ubsan = True)
+dawn_cmake_standalone_builder("cmake-linux-clang-rel-x64", clang = True, debug = False, cpu = "x64", asan = False, ubsan = False)
+dawn_cmake_standalone_builder("cmake-linux-clang-rel-x64-asan", clang = True, debug = False, cpu = "x64", asan = True, ubsan = False)
+dawn_cmake_standalone_builder("cmake-linux-clang-rel-x64-ubsan", clang = True, debug = False, cpu = "x64", asan = False, ubsan = True)
 
 chromium_dawn_tryjob("linux")
 chromium_dawn_tryjob("mac")