tint_ir_fuzzer: make build fail if missing preconditions

Rather than silently fail if tint_build_ir_binary is false, or if
is_asan is enabled in a non-chromium build.

Bug: 345196552
Change-Id: If95534c7d8aab292b613d989923e83abb20fa58d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/218855
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
Reviewed-by: James Price <jrprice@google.com>
diff --git a/CMakeLists.txt b/CMakeLists.txt
index bcb91ba1..98af4e9 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -387,7 +387,9 @@
 include(DawnInitializeBuildType)
 include(DawnLibrary)
 
+# Set vars used as conditions in generated CMake build files
 set(IS_ASAN ${DAWN_ENABLE_ASAN})
+set(BUILD_WITH_CHROMIUM FALSE)
 
 if (NOT ${TINT_LIB_FUZZING_ENGINE_LINK_OPTIONS} STREQUAL "")
   message(STATUS "Using provided LIB_FUZZING_ENGINE options: ${TINT_LIB_FUZZING_ENGINE_LINK_OPTIONS}")
diff --git a/src/tint/BUILD.gn b/src/tint/BUILD.gn
index 9aaa47b..109d2a1 100644
--- a/src/tint/BUILD.gn
+++ b/src/tint/BUILD.gn
@@ -122,6 +122,11 @@
   }
 
   if (tint_build_ir_fuzzer) {
+    assert(tint_build_ir_binary,
+           "tint_build_ir_fuzzer requires tint_build_ir_binary")
+    assert(
+        !is_asan || build_with_chromium,
+        "tint_build_ir_fuzzer: ASAN not yet supported in non-Chromium builds (b/345196552)")
     defines += [ "TINT_BUILD_IR_FUZZER=1" ]
   } else {
     defines += [ "TINT_BUILD_IR_FUZZER=0" ]
@@ -317,7 +322,7 @@
   }
 
   if (tint_build_ir_fuzzer) {
-    if (tint_build_cmds && tint_build_wgsl_reader && tint_build_ir_binary) {
+    if (tint_build_cmds && tint_build_wgsl_reader) {
       action("tint_generate_ir_corpus") {
         script = "${tint_src_dir}/cmd/fuzz/ir/generate_ir_corpus.py"
         sources = [ "${script}" ]
@@ -353,7 +358,7 @@
   if (tint_build_tintd) {
     deps += [ "${tint_src_dir}/cmd/tintd" ]
   }
-  if (tint_build_ir_fuzzer && tint_build_ir_binary) {
+  if (tint_build_ir_fuzzer) {
     if (tint_build_wgsl_reader) {
       deps += [ "${tint_src_dir}/cmd/fuzz/ir/as" ]
     }
@@ -370,7 +375,7 @@
     deps += [ "${tint_src_dir}/cmd/fuzz/wgsl" ]
   }
 
-  if (tint_build_ir_fuzzer && (!is_asan || build_with_chromium)) {
+  if (tint_build_ir_fuzzer) {
     deps += [ "${tint_src_dir}/cmd/fuzz/ir" ]
   }
 }
diff --git a/src/tint/CMakeLists.txt b/src/tint/CMakeLists.txt
index 3515ee4..e662a37 100644
--- a/src/tint/CMakeLists.txt
+++ b/src/tint/CMakeLists.txt
@@ -59,9 +59,10 @@
 endif()
 
 if (TINT_BUILD_IR_FUZZER AND NOT TINT_BUILD_IR_BINARY)
-  message(FATAL_ERROR "Building IR fuzzer 'TINT_BUILD_IR_FUZZER' is enabled, "
-                      "but building IR binary format 'TINT_BUILD_IR_BINARY' is "
-                      "not")
+  message(FATAL_ERROR "TINT_BUILD_IR_FUZZER requires TINT_BUILD_IR_BINARY")
+endif()
+if (TINT_BUILD_IR_FUZZER AND NOT (((NOT IS_ASAN) OR BUILD_WITH_CHROMIUM)))
+  message(FATAL_ERROR "TINT_BUILD_IR_FUZZER: ASAN not yet supported in non-Chromium builds (b/345196552)")
 endif()
 
 ################################################################################
diff --git a/src/tint/cmd/fuzz/ir/BUILD.bazel b/src/tint/cmd/fuzz/ir/BUILD.bazel
index 308c902..68cf24d 100644
--- a/src/tint/cmd/fuzz/ir/BUILD.bazel
+++ b/src/tint/cmd/fuzz/ir/BUILD.bazel
@@ -38,16 +38,6 @@
 load("@bazel_skylib//lib:selects.bzl", "selects")
 
 alias(
-  name = "build_with_chromium",
-  actual = "//src/tint:build_with_chromium_true",
-)
-
-alias(
-  name = "_not_is_asan_",
-  actual = "//src/tint:is_asan_false",
-)
-
-alias(
   name = "tint_build_glsl_writer",
   actual = "//src/tint:tint_build_glsl_writer_true",
 )
@@ -88,26 +78,10 @@
 )
 
 selects.config_setting_group(
-    name = "_not_is_asan__or_build_with_chromium",
-    match_any = [
-        "_not_is_asan_",
-        "build_with_chromium",
-    ],
-)
-
-selects.config_setting_group(
     name = "tint_build_ir_binary_and_tint_build_ir_fuzzer",
     match_all = [
         ":tint_build_ir_binary",
         ":tint_build_ir_fuzzer",
     ],
 )
-selects.config_setting_group(
-    name = "tint_build_ir_binary_and_tint_build_ir_fuzzer_and___not_is_asan__or_build_with_chromium_",
-    match_all = [
-        ":tint_build_ir_binary",
-        ":tint_build_ir_fuzzer",
-        ":_not_is_asan__or_build_with_chromium",
-    ],
-)
 
diff --git a/src/tint/cmd/fuzz/ir/BUILD.cfg b/src/tint/cmd/fuzz/ir/BUILD.cfg
index 5b903ba..84ec9c5 100644
--- a/src/tint/cmd/fuzz/ir/BUILD.cfg
+++ b/src/tint/cmd/fuzz/ir/BUILD.cfg
@@ -1,7 +1,6 @@
 {
     "fuzz_cmd": {
-        /* Fuzzer has known false positive with ASAN in standalone builds */
-        "Condition": "tint_build_ir_binary && tint_build_ir_fuzzer && (!is_asan || build_with_chromium)",
+        "Condition": "tint_build_ir_binary && tint_build_ir_fuzzer",
         /* The Tint fuzzer executable for IR-input. */
         "OutputName": "tint_ir_fuzzer",
         "AdditionalDependencies": {
diff --git a/src/tint/cmd/fuzz/ir/BUILD.cmake b/src/tint/cmd/fuzz/ir/BUILD.cmake
index edb4bd4..2e7c241 100644
--- a/src/tint/cmd/fuzz/ir/BUILD.cmake
+++ b/src/tint/cmd/fuzz/ir/BUILD.cmake
@@ -37,11 +37,11 @@
 include(cmd/fuzz/ir/as/BUILD.cmake)
 include(cmd/fuzz/ir/dis/BUILD.cmake)
 
-if(TINT_BUILD_IR_BINARY AND TINT_BUILD_IR_FUZZER AND ((NOT IS_ASAN) OR BUILD_WITH_CHROMIUM))
+if(TINT_BUILD_IR_BINARY AND TINT_BUILD_IR_FUZZER)
 ################################################################################
 # Target:    tint_cmd_fuzz_ir_fuzz_cmd
 # Kind:      fuzz_cmd
-# Condition: TINT_BUILD_IR_BINARY AND TINT_BUILD_IR_FUZZER AND ((NOT IS_ASAN) OR BUILD_WITH_CHROMIUM)
+# Condition: TINT_BUILD_IR_BINARY AND TINT_BUILD_IR_FUZZER
 ################################################################################
 tint_add_target(tint_cmd_fuzz_ir_fuzz_cmd fuzz_cmd
   cmd/fuzz/ir/main_fuzz.cc
@@ -131,7 +131,7 @@
 
 tint_target_set_output_name(tint_cmd_fuzz_ir_fuzz_cmd fuzz_cmd "tint_ir_fuzzer")
 
-endif(TINT_BUILD_IR_BINARY AND TINT_BUILD_IR_FUZZER AND ((NOT IS_ASAN) OR BUILD_WITH_CHROMIUM))
+endif(TINT_BUILD_IR_BINARY AND TINT_BUILD_IR_FUZZER)
 ################################################################################
 # Target:    tint_cmd_fuzz_ir_fuzz
 # Kind:      fuzz
diff --git a/src/tint/cmd/fuzz/ir/BUILD.gn b/src/tint/cmd/fuzz/ir/BUILD.gn
index a2af4f9..679ca8d 100644
--- a/src/tint/cmd/fuzz/ir/BUILD.gn
+++ b/src/tint/cmd/fuzz/ir/BUILD.gn
@@ -80,8 +80,7 @@
     ]
   }
 }
-if (tint_build_ir_binary && tint_build_ir_fuzzer &&
-    (!is_asan || build_with_chromium)) {
+if (tint_build_ir_binary && tint_build_ir_fuzzer) {
   tint_fuzzer_test("ir") {
     output_name = "tint_ir_fuzzer"
     sources = [ "main_fuzz.cc" ]