diff --git a/src/tint/api/BUILD.cmake b/src/tint/api/BUILD.cmake
index e10faf6..930df1d 100644
--- a/src/tint/api/BUILD.cmake
+++ b/src/tint/api/BUILD.cmake
@@ -60,33 +60,33 @@
   tint_utils_traits
 )
 
-if (TINT_BUILD_GLSL_WRITER)
+if(TINT_BUILD_GLSL_WRITER)
   tint_target_add_dependencies(tint_api lib
     tint_lang_glsl_writer
     tint_lang_glsl_writer_common
   )
 endif(TINT_BUILD_GLSL_WRITER)
 
-if (TINT_BUILD_HLSL_WRITER)
+if(TINT_BUILD_HLSL_WRITER)
   tint_target_add_dependencies(tint_api lib
     tint_lang_hlsl_writer
   )
 endif(TINT_BUILD_HLSL_WRITER)
 
-if (TINT_BUILD_MSL_WRITER)
+if(TINT_BUILD_MSL_WRITER)
   tint_target_add_dependencies(tint_api lib
     tint_lang_msl_writer
     tint_lang_msl_writer_common
   )
 endif(TINT_BUILD_MSL_WRITER)
 
-if (TINT_BUILD_SPV_READER)
+if(TINT_BUILD_SPV_READER)
   tint_target_add_dependencies(tint_api lib
     tint_lang_spirv_reader
   )
 endif(TINT_BUILD_SPV_READER)
 
-if (TINT_BUILD_SPV_WRITER)
+if(TINT_BUILD_SPV_WRITER)
   tint_target_add_dependencies(tint_api lib
     tint_lang_spirv_writer
     tint_lang_spirv_writer_common
diff --git a/src/tint/cmd/bench/BUILD.cmake b/src/tint/cmd/bench/BUILD.cmake
index 4964e60..ce4e4ad 100644
--- a/src/tint/cmd/bench/BUILD.cmake
+++ b/src/tint/cmd/bench/BUILD.cmake
@@ -88,31 +88,31 @@
   tint_utils_traits
 )
 
-if (TINT_BUILD_GLSL_WRITER)
+if(TINT_BUILD_GLSL_WRITER)
   tint_target_add_dependencies(tint_cmd_bench_bench_cmd bench_cmd
     tint_lang_glsl_writer_bench
   )
 endif(TINT_BUILD_GLSL_WRITER)
 
-if (TINT_BUILD_HLSL_WRITER)
+if(TINT_BUILD_HLSL_WRITER)
   tint_target_add_dependencies(tint_cmd_bench_bench_cmd bench_cmd
     tint_lang_hlsl_writer_bench
   )
 endif(TINT_BUILD_HLSL_WRITER)
 
-if (TINT_BUILD_MSL_WRITER)
+if(TINT_BUILD_MSL_WRITER)
   tint_target_add_dependencies(tint_cmd_bench_bench_cmd bench_cmd
     tint_lang_msl_writer_bench
   )
 endif(TINT_BUILD_MSL_WRITER)
 
-if (TINT_BUILD_SPV_READER)
+if(TINT_BUILD_SPV_READER)
   tint_target_add_dependencies(tint_cmd_bench_bench_cmd bench_cmd
     tint_lang_spirv_reader
   )
 endif(TINT_BUILD_SPV_READER)
 
-if (TINT_BUILD_SPV_WRITER)
+if(TINT_BUILD_SPV_WRITER)
   tint_target_add_dependencies(tint_cmd_bench_bench_cmd bench_cmd
     tint_lang_spirv_writer_bench
   )
diff --git a/src/tint/cmd/common/BUILD.cmake b/src/tint/cmd/common/BUILD.cmake
index 468cbee..0d6d15f 100644
--- a/src/tint/cmd/common/BUILD.cmake
+++ b/src/tint/cmd/common/BUILD.cmake
@@ -59,17 +59,17 @@
   tint_utils_traits
 )
 
-if (TINT_BUILD_SPV_READER)
+if(TINT_BUILD_SPV_READER)
   tint_target_add_dependencies(tint_cmd_common lib
     tint_lang_spirv_reader
   )
 endif(TINT_BUILD_SPV_READER)
 
-if (TINT_BUILD_SPV_READER  OR  TINT_BUILD_SPV_WRITER)
+if(TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER)
   tint_target_add_external_dependencies(tint_cmd_common lib
     "spirv-tools"
   )
-endif(TINT_BUILD_SPV_READER  OR  TINT_BUILD_SPV_WRITER)
+endif(TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER)
 
 ################################################################################
 # Target:    tint_cmd_common_test
diff --git a/src/tint/cmd/info/BUILD.cmake b/src/tint/cmd/info/BUILD.cmake
index 6c8faf8..b90b31e 100644
--- a/src/tint/cmd/info/BUILD.cmake
+++ b/src/tint/cmd/info/BUILD.cmake
@@ -55,10 +55,10 @@
   tint_utils_traits
 )
 
-if (TINT_BUILD_SPV_READER  OR  TINT_BUILD_SPV_WRITER)
+if(TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER)
   tint_target_add_external_dependencies(tint_cmd_info_cmd cmd
     "spirv-tools"
   )
-endif(TINT_BUILD_SPV_READER  OR  TINT_BUILD_SPV_WRITER)
+endif(TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER)
 
 tint_target_set_output_name(tint_cmd_info_cmd cmd "tint_info")
diff --git a/src/tint/cmd/loopy/BUILD.cmake b/src/tint/cmd/loopy/BUILD.cmake
index 850af26..44d355e 100644
--- a/src/tint/cmd/loopy/BUILD.cmake
+++ b/src/tint/cmd/loopy/BUILD.cmake
@@ -60,40 +60,40 @@
   tint_utils_traits
 )
 
-if (TINT_BUILD_GLSL_WRITER)
+if(TINT_BUILD_GLSL_WRITER)
   tint_target_add_dependencies(tint_cmd_loopy_cmd cmd
     tint_lang_glsl_writer
     tint_lang_glsl_writer_common
   )
 endif(TINT_BUILD_GLSL_WRITER)
 
-if (TINT_BUILD_HLSL_WRITER)
+if(TINT_BUILD_HLSL_WRITER)
   tint_target_add_dependencies(tint_cmd_loopy_cmd cmd
     tint_lang_hlsl_writer
   )
 endif(TINT_BUILD_HLSL_WRITER)
 
-if (TINT_BUILD_IR)
+if(TINT_BUILD_IR)
   tint_target_add_dependencies(tint_cmd_loopy_cmd cmd
     tint_lang_core_ir
     tint_lang_wgsl_reader_program_to_ir
   )
 endif(TINT_BUILD_IR)
 
-if (TINT_BUILD_MSL_WRITER)
+if(TINT_BUILD_MSL_WRITER)
   tint_target_add_dependencies(tint_cmd_loopy_cmd cmd
     tint_lang_msl_writer
     tint_lang_msl_writer_common
   )
 endif(TINT_BUILD_MSL_WRITER)
 
-if (TINT_BUILD_SPV_READER)
+if(TINT_BUILD_SPV_READER)
   tint_target_add_dependencies(tint_cmd_loopy_cmd cmd
     tint_lang_spirv_reader
   )
 endif(TINT_BUILD_SPV_READER)
 
-if (TINT_BUILD_SPV_WRITER)
+if(TINT_BUILD_SPV_WRITER)
   tint_target_add_dependencies(tint_cmd_loopy_cmd cmd
     tint_lang_spirv_writer
     tint_lang_spirv_writer_common
diff --git a/src/tint/cmd/test/BUILD.cmake b/src/tint/cmd/test/BUILD.cmake
index 59e2502..c25a473 100644
--- a/src/tint/cmd/test/BUILD.cmake
+++ b/src/tint/cmd/test/BUILD.cmake
@@ -69,19 +69,19 @@
   "gtest"
 )
 
-if (TINT_BUILD_GLSL_WRITER)
+if(TINT_BUILD_GLSL_WRITER)
   tint_target_add_dependencies(tint_cmd_test_test_cmd test_cmd
     tint_lang_glsl_writer_ast_printer_test
   )
 endif(TINT_BUILD_GLSL_WRITER)
 
-if (TINT_BUILD_HLSL_WRITER)
+if(TINT_BUILD_HLSL_WRITER)
   tint_target_add_dependencies(tint_cmd_test_test_cmd test_cmd
     tint_lang_hlsl_writer_ast_printer_test
   )
 endif(TINT_BUILD_HLSL_WRITER)
 
-if (TINT_BUILD_IR)
+if(TINT_BUILD_IR)
   tint_target_add_dependencies(tint_cmd_test_test_cmd test_cmd
     tint_lang_core_ir_transform_test
     tint_lang_core_ir_test
@@ -90,26 +90,26 @@
   )
 endif(TINT_BUILD_IR)
 
-if (TINT_BUILD_MSL_WRITER)
+if(TINT_BUILD_MSL_WRITER)
   tint_target_add_dependencies(tint_cmd_test_test_cmd test_cmd
     tint_lang_msl_writer_ast_printer_test
     tint_lang_msl_writer_common_test
   )
 endif(TINT_BUILD_MSL_WRITER)
 
-if (TINT_BUILD_MSL_WRITER  AND  TINT_BUILD_IR)
+if(TINT_BUILD_MSL_WRITER AND TINT_BUILD_IR)
   tint_target_add_dependencies(tint_cmd_test_test_cmd test_cmd
     tint_lang_msl_writer_printer_test
   )
-endif(TINT_BUILD_MSL_WRITER  AND  TINT_BUILD_IR)
+endif(TINT_BUILD_MSL_WRITER AND TINT_BUILD_IR)
 
-if (TINT_BUILD_SPV_READER)
+if(TINT_BUILD_SPV_READER)
   tint_target_add_dependencies(tint_cmd_test_test_cmd test_cmd
     tint_lang_spirv_reader_ast_parser_test
   )
 endif(TINT_BUILD_SPV_READER)
 
-if (TINT_BUILD_SPV_WRITER)
+if(TINT_BUILD_SPV_WRITER)
   tint_target_add_dependencies(tint_cmd_test_test_cmd test_cmd
     tint_lang_spirv_writer_ast_printer_test
     tint_lang_spirv_writer_common_test
@@ -117,10 +117,10 @@
   )
 endif(TINT_BUILD_SPV_WRITER)
 
-if (TINT_BUILD_SPV_WRITER  AND  TINT_BUILD_IR)
+if(TINT_BUILD_SPV_WRITER AND TINT_BUILD_IR)
   tint_target_add_dependencies(tint_cmd_test_test_cmd test_cmd
     tint_lang_spirv_writer_raise_test
   )
-endif(TINT_BUILD_SPV_WRITER  AND  TINT_BUILD_IR)
+endif(TINT_BUILD_SPV_WRITER AND TINT_BUILD_IR)
 
 tint_target_set_output_name(tint_cmd_test_test_cmd test_cmd "tint_unittests")
diff --git a/src/tint/cmd/tint/BUILD.cmake b/src/tint/cmd/tint/BUILD.cmake
index 8885563..0b32104 100644
--- a/src/tint/cmd/tint/BUILD.cmake
+++ b/src/tint/cmd/tint/BUILD.cmake
@@ -64,7 +64,7 @@
   tint_utils_traits
 )
 
-if (TINT_BUILD_GLSL_WRITER)
+if(TINT_BUILD_GLSL_WRITER)
   tint_target_add_dependencies(tint_cmd_tint_cmd cmd
     tint_lang_glsl_writer
     tint_lang_glsl_writer_common
@@ -75,21 +75,21 @@
   )
 endif(TINT_BUILD_GLSL_WRITER)
 
-if (TINT_BUILD_HLSL_WRITER)
+if(TINT_BUILD_HLSL_WRITER)
   tint_target_add_dependencies(tint_cmd_tint_cmd cmd
     tint_lang_hlsl_validate
     tint_lang_hlsl_writer
   )
 endif(TINT_BUILD_HLSL_WRITER)
 
-if (TINT_BUILD_IR)
+if(TINT_BUILD_IR)
   tint_target_add_dependencies(tint_cmd_tint_cmd cmd
     tint_lang_core_ir
     tint_lang_wgsl_reader_program_to_ir
   )
 endif(TINT_BUILD_IR)
 
-if (TINT_BUILD_MSL_WRITER)
+if(TINT_BUILD_MSL_WRITER)
   tint_target_add_dependencies(tint_cmd_tint_cmd cmd
     tint_lang_msl_validate
     tint_lang_msl_writer
@@ -97,19 +97,19 @@
   )
 endif(TINT_BUILD_MSL_WRITER)
 
-if (TINT_BUILD_SPV_READER)
+if(TINT_BUILD_SPV_READER)
   tint_target_add_dependencies(tint_cmd_tint_cmd cmd
     tint_lang_spirv_reader
   )
 endif(TINT_BUILD_SPV_READER)
 
-if (TINT_BUILD_SPV_READER  OR  TINT_BUILD_SPV_WRITER)
+if(TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER)
   tint_target_add_external_dependencies(tint_cmd_tint_cmd cmd
     "spirv-tools"
   )
-endif(TINT_BUILD_SPV_READER  OR  TINT_BUILD_SPV_WRITER)
+endif(TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER)
 
-if (TINT_BUILD_SPV_WRITER)
+if(TINT_BUILD_SPV_WRITER)
   tint_target_add_dependencies(tint_cmd_tint_cmd cmd
     tint_lang_spirv_writer
     tint_lang_spirv_writer_common
diff --git a/src/tint/lang/core/ir/BUILD.cmake b/src/tint/lang/core/ir/BUILD.cmake
index 8b5402f..0e8aede 100644
--- a/src/tint/lang/core/ir/BUILD.cmake
+++ b/src/tint/lang/core/ir/BUILD.cmake
@@ -222,7 +222,7 @@
   "gtest"
 )
 
-if (TINT_BUILD_IR)
+if(TINT_BUILD_IR)
   tint_target_add_dependencies(tint_lang_core_ir_test test
     tint_lang_core_ir
   )
diff --git a/src/tint/lang/core/ir/transform/BUILD.cmake b/src/tint/lang/core/ir/transform/BUILD.cmake
index 664b66c..5623215 100644
--- a/src/tint/lang/core/ir/transform/BUILD.cmake
+++ b/src/tint/lang/core/ir/transform/BUILD.cmake
@@ -70,7 +70,7 @@
   tint_utils_traits
 )
 
-if (TINT_BUILD_IR)
+if(TINT_BUILD_IR)
   tint_target_add_dependencies(tint_lang_core_ir_transform lib
     tint_lang_core_ir
   )
@@ -121,7 +121,7 @@
   "gtest"
 )
 
-if (TINT_BUILD_IR)
+if(TINT_BUILD_IR)
   tint_target_add_dependencies(tint_lang_core_ir_transform_test test
     tint_lang_core_ir
     tint_lang_core_ir_transform
diff --git a/src/tint/lang/glsl/writer/BUILD.cmake b/src/tint/lang/glsl/writer/BUILD.cmake
index ad259c4..ef38b5d 100644
--- a/src/tint/lang/glsl/writer/BUILD.cmake
+++ b/src/tint/lang/glsl/writer/BUILD.cmake
@@ -62,7 +62,7 @@
   tint_utils_traits
 )
 
-if (TINT_BUILD_GLSL_WRITER)
+if(TINT_BUILD_GLSL_WRITER)
   tint_target_add_dependencies(tint_lang_glsl_writer lib
     tint_lang_glsl_writer_ast_printer
     tint_lang_glsl_writer_common
@@ -105,7 +105,7 @@
   tint_utils_traits
 )
 
-if (TINT_BUILD_GLSL_WRITER)
+if(TINT_BUILD_GLSL_WRITER)
   tint_target_add_dependencies(tint_lang_glsl_writer_bench bench
     tint_lang_glsl_writer
     tint_lang_glsl_writer_common
diff --git a/src/tint/lang/glsl/writer/ast_printer/BUILD.cmake b/src/tint/lang/glsl/writer/ast_printer/BUILD.cmake
index a42bb39..6f2cc8f 100644
--- a/src/tint/lang/glsl/writer/ast_printer/BUILD.cmake
+++ b/src/tint/lang/glsl/writer/ast_printer/BUILD.cmake
@@ -59,7 +59,7 @@
   tint_utils_traits
 )
 
-if (TINT_BUILD_GLSL_WRITER)
+if(TINT_BUILD_GLSL_WRITER)
   tint_target_add_dependencies(tint_lang_glsl_writer_ast_printer lib
     tint_lang_glsl_writer_common
   )
@@ -139,7 +139,7 @@
   "gtest"
 )
 
-if (TINT_BUILD_GLSL_WRITER)
+if(TINT_BUILD_GLSL_WRITER)
   tint_target_add_dependencies(tint_lang_glsl_writer_ast_printer_test test
     tint_lang_glsl_writer
     tint_lang_glsl_writer_ast_printer
diff --git a/src/tint/lang/hlsl/writer/BUILD.cmake b/src/tint/lang/hlsl/writer/BUILD.cmake
index 84d1744..613fba2 100644
--- a/src/tint/lang/hlsl/writer/BUILD.cmake
+++ b/src/tint/lang/hlsl/writer/BUILD.cmake
@@ -63,7 +63,7 @@
   tint_utils_traits
 )
 
-if (TINT_BUILD_HLSL_WRITER)
+if(TINT_BUILD_HLSL_WRITER)
   tint_target_add_dependencies(tint_lang_hlsl_writer lib
     tint_lang_hlsl_writer_ast_printer
   )
@@ -106,7 +106,7 @@
   tint_utils_traits
 )
 
-if (TINT_BUILD_HLSL_WRITER)
+if(TINT_BUILD_HLSL_WRITER)
   tint_target_add_dependencies(tint_lang_hlsl_writer_bench bench
     tint_lang_hlsl_writer
   )
diff --git a/src/tint/lang/hlsl/writer/ast_printer/BUILD.cmake b/src/tint/lang/hlsl/writer/ast_printer/BUILD.cmake
index 1033bc4..4a3b466 100644
--- a/src/tint/lang/hlsl/writer/ast_printer/BUILD.cmake
+++ b/src/tint/lang/hlsl/writer/ast_printer/BUILD.cmake
@@ -134,7 +134,7 @@
   "gtest"
 )
 
-if (TINT_BUILD_HLSL_WRITER)
+if(TINT_BUILD_HLSL_WRITER)
   tint_target_add_dependencies(tint_lang_hlsl_writer_ast_printer_test test
     tint_lang_hlsl_writer
     tint_lang_hlsl_writer_ast_printer
diff --git a/src/tint/lang/msl/writer/BUILD.cmake b/src/tint/lang/msl/writer/BUILD.cmake
index bba6007..f7cd382 100644
--- a/src/tint/lang/msl/writer/BUILD.cmake
+++ b/src/tint/lang/msl/writer/BUILD.cmake
@@ -64,25 +64,25 @@
   tint_utils_traits
 )
 
-if (TINT_BUILD_IR)
+if(TINT_BUILD_IR)
   tint_target_add_dependencies(tint_lang_msl_writer lib
     tint_lang_core_ir
     tint_lang_wgsl_reader_program_to_ir
   )
 endif(TINT_BUILD_IR)
 
-if (TINT_BUILD_MSL_WRITER)
+if(TINT_BUILD_MSL_WRITER)
   tint_target_add_dependencies(tint_lang_msl_writer lib
     tint_lang_msl_writer_ast_printer
     tint_lang_msl_writer_common
   )
 endif(TINT_BUILD_MSL_WRITER)
 
-if (TINT_BUILD_MSL_WRITER  AND  TINT_BUILD_IR)
+if(TINT_BUILD_MSL_WRITER AND TINT_BUILD_IR)
   tint_target_add_dependencies(tint_lang_msl_writer lib
     tint_lang_msl_writer_printer
   )
-endif(TINT_BUILD_MSL_WRITER  AND  TINT_BUILD_IR)
+endif(TINT_BUILD_MSL_WRITER AND TINT_BUILD_IR)
 
 endif(TINT_BUILD_MSL_WRITER)
 if(TINT_BUILD_MSL_WRITER)
@@ -120,7 +120,7 @@
   tint_utils_traits
 )
 
-if (TINT_BUILD_MSL_WRITER)
+if(TINT_BUILD_MSL_WRITER)
   tint_target_add_dependencies(tint_lang_msl_writer_bench bench
     tint_lang_msl_writer
     tint_lang_msl_writer_common
diff --git a/src/tint/lang/msl/writer/ast_printer/BUILD.cmake b/src/tint/lang/msl/writer/ast_printer/BUILD.cmake
index 0f8fc43..42b6ab1 100644
--- a/src/tint/lang/msl/writer/ast_printer/BUILD.cmake
+++ b/src/tint/lang/msl/writer/ast_printer/BUILD.cmake
@@ -58,7 +58,7 @@
   tint_utils_traits
 )
 
-if (TINT_BUILD_MSL_WRITER)
+if(TINT_BUILD_MSL_WRITER)
   tint_target_add_dependencies(tint_lang_msl_writer_ast_printer lib
     tint_lang_msl_writer_common
   )
@@ -135,7 +135,7 @@
   "gtest"
 )
 
-if (TINT_BUILD_MSL_WRITER)
+if(TINT_BUILD_MSL_WRITER)
   tint_target_add_dependencies(tint_lang_msl_writer_ast_printer_test test
     tint_lang_msl_writer
     tint_lang_msl_writer_ast_printer
diff --git a/src/tint/lang/msl/writer/common/BUILD.cmake b/src/tint/lang/msl/writer/common/BUILD.cmake
index 6aa766e..32ab82b 100644
--- a/src/tint/lang/msl/writer/common/BUILD.cmake
+++ b/src/tint/lang/msl/writer/common/BUILD.cmake
@@ -80,7 +80,7 @@
   "gtest"
 )
 
-if (TINT_BUILD_MSL_WRITER)
+if(TINT_BUILD_MSL_WRITER)
   tint_target_add_dependencies(tint_lang_msl_writer_common_test test
     tint_lang_msl_writer_common
   )
diff --git a/src/tint/lang/msl/writer/printer/BUILD.cmake b/src/tint/lang/msl/writer/printer/BUILD.cmake
index 6b53c2f..c899f13 100644
--- a/src/tint/lang/msl/writer/printer/BUILD.cmake
+++ b/src/tint/lang/msl/writer/printer/BUILD.cmake
@@ -20,11 +20,11 @@
 # Do not modify this file directly
 ################################################################################
 
-if(TINT_BUILD_MSL_WRITER  AND  TINT_BUILD_IR)
+if(TINT_BUILD_MSL_WRITER AND TINT_BUILD_IR)
 ################################################################################
 # Target:    tint_lang_msl_writer_printer
 # Kind:      lib
-# Condition: TINT_BUILD_MSL_WRITER  AND  TINT_BUILD_IR
+# Condition: TINT_BUILD_MSL_WRITER AND TINT_BUILD_IR
 ################################################################################
 tint_add_target(tint_lang_msl_writer_printer lib
   lang/msl/writer/printer/printer.cc
@@ -52,24 +52,24 @@
   tint_utils_traits
 )
 
-if (TINT_BUILD_IR)
+if(TINT_BUILD_IR)
   tint_target_add_dependencies(tint_lang_msl_writer_printer lib
     tint_lang_core_ir
   )
 endif(TINT_BUILD_IR)
 
-if (TINT_BUILD_MSL_WRITER)
+if(TINT_BUILD_MSL_WRITER)
   tint_target_add_dependencies(tint_lang_msl_writer_printer lib
     tint_lang_msl_writer_common
   )
 endif(TINT_BUILD_MSL_WRITER)
 
-endif(TINT_BUILD_MSL_WRITER  AND  TINT_BUILD_IR)
-if(TINT_BUILD_MSL_WRITER  AND  TINT_BUILD_IR)
+endif(TINT_BUILD_MSL_WRITER AND TINT_BUILD_IR)
+if(TINT_BUILD_MSL_WRITER AND TINT_BUILD_IR)
 ################################################################################
 # Target:    tint_lang_msl_writer_printer_test
 # Kind:      test
-# Condition: TINT_BUILD_MSL_WRITER  AND  TINT_BUILD_IR
+# Condition: TINT_BUILD_MSL_WRITER AND TINT_BUILD_IR
 ################################################################################
 tint_add_target(tint_lang_msl_writer_printer_test test
   lang/msl/writer/printer/binary_test.cc
@@ -109,16 +109,16 @@
   "gtest"
 )
 
-if (TINT_BUILD_IR)
+if(TINT_BUILD_IR)
   tint_target_add_dependencies(tint_lang_msl_writer_printer_test test
     tint_lang_core_ir
   )
 endif(TINT_BUILD_IR)
 
-if (TINT_BUILD_MSL_WRITER  AND  TINT_BUILD_IR)
+if(TINT_BUILD_MSL_WRITER AND TINT_BUILD_IR)
   tint_target_add_dependencies(tint_lang_msl_writer_printer_test test
     tint_lang_msl_writer_printer
   )
-endif(TINT_BUILD_MSL_WRITER  AND  TINT_BUILD_IR)
+endif(TINT_BUILD_MSL_WRITER AND TINT_BUILD_IR)
 
-endif(TINT_BUILD_MSL_WRITER  AND  TINT_BUILD_IR)
\ No newline at end of file
+endif(TINT_BUILD_MSL_WRITER AND TINT_BUILD_IR)
\ No newline at end of file
diff --git a/src/tint/lang/spirv/reader/BUILD.cmake b/src/tint/lang/spirv/reader/BUILD.cmake
index f54eb77..0e4ab13 100644
--- a/src/tint/lang/spirv/reader/BUILD.cmake
+++ b/src/tint/lang/spirv/reader/BUILD.cmake
@@ -56,7 +56,7 @@
   tint_utils_traits
 )
 
-if (TINT_BUILD_SPV_READER)
+if(TINT_BUILD_SPV_READER)
   tint_target_add_dependencies(tint_lang_spirv_reader lib
     tint_lang_spirv_reader_ast_parser
   )
diff --git a/src/tint/lang/spirv/reader/ast_parser/BUILD.cmake b/src/tint/lang/spirv/reader/ast_parser/BUILD.cmake
index 7047e93..e8d9c3f 100644
--- a/src/tint/lang/spirv/reader/ast_parser/BUILD.cmake
+++ b/src/tint/lang/spirv/reader/ast_parser/BUILD.cmake
@@ -75,12 +75,12 @@
   tint_utils_traits
 )
 
-if (TINT_BUILD_SPV_READER  OR  TINT_BUILD_SPV_WRITER)
+if(TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER)
   tint_target_add_external_dependencies(tint_lang_spirv_reader_ast_parser lib
     "spirv-headers"
     "spirv-opt-internal"
   )
-endif(TINT_BUILD_SPV_READER  OR  TINT_BUILD_SPV_WRITER)
+endif(TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER)
 
 endif(TINT_BUILD_SPV_READER)
 if(TINT_BUILD_SPV_READER)
@@ -156,18 +156,18 @@
   "gtest"
 )
 
-if (TINT_BUILD_SPV_READER)
+if(TINT_BUILD_SPV_READER)
   tint_target_add_dependencies(tint_lang_spirv_reader_ast_parser_test test
     tint_lang_spirv_reader_ast_parser
   )
 endif(TINT_BUILD_SPV_READER)
 
-if (TINT_BUILD_SPV_READER  OR  TINT_BUILD_SPV_WRITER)
+if(TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER)
   tint_target_add_external_dependencies(tint_lang_spirv_reader_ast_parser_test test
     "spirv-headers"
     "spirv-opt-internal"
     "spirv-tools"
   )
-endif(TINT_BUILD_SPV_READER  OR  TINT_BUILD_SPV_WRITER)
+endif(TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER)
 
 endif(TINT_BUILD_SPV_READER)
\ No newline at end of file
diff --git a/src/tint/lang/spirv/writer/BUILD.cmake b/src/tint/lang/spirv/writer/BUILD.cmake
index 2c8e5d4..3bd4ed8 100644
--- a/src/tint/lang/spirv/writer/BUILD.cmake
+++ b/src/tint/lang/spirv/writer/BUILD.cmake
@@ -61,7 +61,7 @@
   tint_utils_traits
 )
 
-if (TINT_BUILD_IR)
+if(TINT_BUILD_IR)
   tint_target_add_dependencies(tint_lang_spirv_writer lib
     tint_lang_core_ir
     tint_lang_core_ir_transform
@@ -69,25 +69,25 @@
   )
 endif(TINT_BUILD_IR)
 
-if (TINT_BUILD_SPV_READER  OR  TINT_BUILD_SPV_WRITER)
+if(TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER)
   tint_target_add_external_dependencies(tint_lang_spirv_writer lib
     "spirv-headers"
   )
-endif(TINT_BUILD_SPV_READER  OR  TINT_BUILD_SPV_WRITER)
+endif(TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER)
 
-if (TINT_BUILD_SPV_WRITER)
+if(TINT_BUILD_SPV_WRITER)
   tint_target_add_dependencies(tint_lang_spirv_writer lib
     tint_lang_spirv_writer_ast_printer
     tint_lang_spirv_writer_common
   )
 endif(TINT_BUILD_SPV_WRITER)
 
-if (TINT_BUILD_SPV_WRITER  AND  TINT_BUILD_IR)
+if(TINT_BUILD_SPV_WRITER AND TINT_BUILD_IR)
   tint_target_add_dependencies(tint_lang_spirv_writer lib
     tint_lang_spirv_writer_printer
     tint_lang_spirv_writer_raise
   )
-endif(TINT_BUILD_SPV_WRITER  AND  TINT_BUILD_IR)
+endif(TINT_BUILD_SPV_WRITER AND TINT_BUILD_IR)
 
 endif(TINT_BUILD_SPV_WRITER)
 if(TINT_BUILD_SPV_WRITER)
@@ -124,7 +124,7 @@
   "gtest"
 )
 
-if (TINT_BUILD_IR)
+if(TINT_BUILD_IR)
   tint_target_add_sources(tint_lang_spirv_writer_test test
     "lang/spirv/writer/access_test.cc"
     "lang/spirv/writer/atomic_builtin_test.cc"
@@ -152,26 +152,26 @@
   )
 endif(TINT_BUILD_IR)
 
-if (TINT_BUILD_SPV_READER  OR  TINT_BUILD_SPV_WRITER)
+if(TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER)
   tint_target_add_external_dependencies(tint_lang_spirv_writer_test test
     "spirv-headers"
     "spirv-tools"
   )
-endif(TINT_BUILD_SPV_READER  OR  TINT_BUILD_SPV_WRITER)
+endif(TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER)
 
-if (TINT_BUILD_SPV_WRITER)
+if(TINT_BUILD_SPV_WRITER)
   tint_target_add_dependencies(tint_lang_spirv_writer_test test
     tint_lang_spirv_writer_common
     tint_lang_spirv_writer_common_test
   )
 endif(TINT_BUILD_SPV_WRITER)
 
-if (TINT_BUILD_SPV_WRITER  AND  TINT_BUILD_IR)
+if(TINT_BUILD_SPV_WRITER AND TINT_BUILD_IR)
   tint_target_add_dependencies(tint_lang_spirv_writer_test test
     tint_lang_spirv_writer_printer
     tint_lang_spirv_writer_raise
   )
-endif(TINT_BUILD_SPV_WRITER  AND  TINT_BUILD_IR)
+endif(TINT_BUILD_SPV_WRITER AND TINT_BUILD_IR)
 
 endif(TINT_BUILD_SPV_WRITER)
 if(TINT_BUILD_SPV_WRITER)
@@ -208,13 +208,13 @@
   tint_utils_traits
 )
 
-if (TINT_BUILD_IR)
+if(TINT_BUILD_IR)
   tint_target_add_sources(tint_lang_spirv_writer_bench bench
     "lang/spirv/writer/writer_bench.cc"
   )
 endif(TINT_BUILD_IR)
 
-if (TINT_BUILD_SPV_WRITER)
+if(TINT_BUILD_SPV_WRITER)
   tint_target_add_dependencies(tint_lang_spirv_writer_bench bench
     tint_lang_spirv_writer
     tint_lang_spirv_writer_common
diff --git a/src/tint/lang/spirv/writer/ast_printer/BUILD.cmake b/src/tint/lang/spirv/writer/ast_printer/BUILD.cmake
index b14b0d6..8c116ed 100644
--- a/src/tint/lang/spirv/writer/ast_printer/BUILD.cmake
+++ b/src/tint/lang/spirv/writer/ast_printer/BUILD.cmake
@@ -60,13 +60,13 @@
   tint_utils_traits
 )
 
-if (TINT_BUILD_SPV_READER  OR  TINT_BUILD_SPV_WRITER)
+if(TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER)
   tint_target_add_external_dependencies(tint_lang_spirv_writer_ast_printer lib
     "spirv-headers"
   )
-endif(TINT_BUILD_SPV_READER  OR  TINT_BUILD_SPV_WRITER)
+endif(TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER)
 
-if (TINT_BUILD_SPV_WRITER)
+if(TINT_BUILD_SPV_WRITER)
   tint_target_add_dependencies(tint_lang_spirv_writer_ast_printer lib
     tint_lang_spirv_writer_common
   )
@@ -140,14 +140,14 @@
   "gtest"
 )
 
-if (TINT_BUILD_SPV_READER  OR  TINT_BUILD_SPV_WRITER)
+if(TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER)
   tint_target_add_external_dependencies(tint_lang_spirv_writer_ast_printer_test test
     "spirv-headers"
     "spirv-tools"
   )
-endif(TINT_BUILD_SPV_READER  OR  TINT_BUILD_SPV_WRITER)
+endif(TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER)
 
-if (TINT_BUILD_SPV_WRITER)
+if(TINT_BUILD_SPV_WRITER)
   tint_target_add_dependencies(tint_lang_spirv_writer_ast_printer_test test
     tint_lang_spirv_writer
     tint_lang_spirv_writer_ast_printer
diff --git a/src/tint/lang/spirv/writer/common/BUILD.cmake b/src/tint/lang/spirv/writer/common/BUILD.cmake
index e9f82aa..c92ed15 100644
--- a/src/tint/lang/spirv/writer/common/BUILD.cmake
+++ b/src/tint/lang/spirv/writer/common/BUILD.cmake
@@ -51,11 +51,11 @@
   tint_utils_traits
 )
 
-if (TINT_BUILD_SPV_READER  OR  TINT_BUILD_SPV_WRITER)
+if(TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER)
   tint_target_add_external_dependencies(tint_lang_spirv_writer_common lib
     "spirv-headers"
   )
-endif(TINT_BUILD_SPV_READER  OR  TINT_BUILD_SPV_WRITER)
+endif(TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER)
 
 endif(TINT_BUILD_SPV_WRITER)
 if(TINT_BUILD_SPV_WRITER)
@@ -98,7 +98,7 @@
   "gtest"
 )
 
-if (TINT_BUILD_IR)
+if(TINT_BUILD_IR)
   tint_target_add_sources(tint_lang_spirv_writer_common_test test
     "lang/spirv/writer/common/helper_test.h"
   )
@@ -107,24 +107,24 @@
   )
 endif(TINT_BUILD_IR)
 
-if (TINT_BUILD_SPV_READER  OR  TINT_BUILD_SPV_WRITER)
+if(TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER)
   tint_target_add_external_dependencies(tint_lang_spirv_writer_common_test test
     "spirv-headers"
     "spirv-tools"
   )
-endif(TINT_BUILD_SPV_READER  OR  TINT_BUILD_SPV_WRITER)
+endif(TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER)
 
-if (TINT_BUILD_SPV_WRITER)
+if(TINT_BUILD_SPV_WRITER)
   tint_target_add_dependencies(tint_lang_spirv_writer_common_test test
     tint_lang_spirv_writer_common
   )
 endif(TINT_BUILD_SPV_WRITER)
 
-if (TINT_BUILD_SPV_WRITER  AND  TINT_BUILD_IR)
+if(TINT_BUILD_SPV_WRITER AND TINT_BUILD_IR)
   tint_target_add_dependencies(tint_lang_spirv_writer_common_test test
     tint_lang_spirv_writer_printer
     tint_lang_spirv_writer_raise
   )
-endif(TINT_BUILD_SPV_WRITER  AND  TINT_BUILD_IR)
+endif(TINT_BUILD_SPV_WRITER AND TINT_BUILD_IR)
 
 endif(TINT_BUILD_SPV_WRITER)
\ No newline at end of file
diff --git a/src/tint/lang/spirv/writer/printer/BUILD.cmake b/src/tint/lang/spirv/writer/printer/BUILD.cmake
index 126f52f..72ab825 100644
--- a/src/tint/lang/spirv/writer/printer/BUILD.cmake
+++ b/src/tint/lang/spirv/writer/printer/BUILD.cmake
@@ -20,11 +20,11 @@
 # Do not modify this file directly
 ################################################################################
 
-if(TINT_BUILD_SPV_WRITER  AND  TINT_BUILD_IR)
+if(TINT_BUILD_SPV_WRITER AND TINT_BUILD_IR)
 ################################################################################
 # Target:    tint_lang_spirv_writer_printer
 # Kind:      lib
-# Condition: TINT_BUILD_SPV_WRITER  AND  TINT_BUILD_IR
+# Condition: TINT_BUILD_SPV_WRITER AND TINT_BUILD_IR
 ################################################################################
 tint_add_target(tint_lang_spirv_writer_printer lib
   lang/spirv/writer/printer/printer.cc
@@ -55,29 +55,29 @@
   tint_utils_traits
 )
 
-if (TINT_BUILD_IR)
+if(TINT_BUILD_IR)
   tint_target_add_dependencies(tint_lang_spirv_writer_printer lib
     tint_lang_core_ir
   )
 endif(TINT_BUILD_IR)
 
-if (TINT_BUILD_SPV_READER  OR  TINT_BUILD_SPV_WRITER)
+if(TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER)
   tint_target_add_external_dependencies(tint_lang_spirv_writer_printer lib
     "spirv-headers"
   )
-endif(TINT_BUILD_SPV_READER  OR  TINT_BUILD_SPV_WRITER)
+endif(TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER)
 
-if (TINT_BUILD_SPV_WRITER)
+if(TINT_BUILD_SPV_WRITER)
   tint_target_add_dependencies(tint_lang_spirv_writer_printer lib
     tint_lang_spirv_writer_ast_printer
     tint_lang_spirv_writer_common
   )
 endif(TINT_BUILD_SPV_WRITER)
 
-if (TINT_BUILD_SPV_WRITER  AND  TINT_BUILD_IR)
+if(TINT_BUILD_SPV_WRITER AND TINT_BUILD_IR)
   tint_target_add_dependencies(tint_lang_spirv_writer_printer lib
     tint_lang_spirv_writer_raise
   )
-endif(TINT_BUILD_SPV_WRITER  AND  TINT_BUILD_IR)
+endif(TINT_BUILD_SPV_WRITER AND TINT_BUILD_IR)
 
-endif(TINT_BUILD_SPV_WRITER  AND  TINT_BUILD_IR)
\ No newline at end of file
+endif(TINT_BUILD_SPV_WRITER AND TINT_BUILD_IR)
\ No newline at end of file
diff --git a/src/tint/lang/spirv/writer/raise/BUILD.cmake b/src/tint/lang/spirv/writer/raise/BUILD.cmake
index c4bf2d7..a7052a1 100644
--- a/src/tint/lang/spirv/writer/raise/BUILD.cmake
+++ b/src/tint/lang/spirv/writer/raise/BUILD.cmake
@@ -20,11 +20,11 @@
 # Do not modify this file directly
 ################################################################################
 
-if(TINT_BUILD_SPV_WRITER  AND  TINT_BUILD_IR)
+if(TINT_BUILD_SPV_WRITER AND TINT_BUILD_IR)
 ################################################################################
 # Target:    tint_lang_spirv_writer_raise
 # Kind:      lib
-# Condition: TINT_BUILD_SPV_WRITER  AND  TINT_BUILD_IR
+# Condition: TINT_BUILD_SPV_WRITER AND TINT_BUILD_IR
 ################################################################################
 tint_add_target(tint_lang_spirv_writer_raise lib
   lang/spirv/writer/raise/builtin_polyfill.cc
@@ -64,31 +64,31 @@
   tint_utils_traits
 )
 
-if (TINT_BUILD_IR)
+if(TINT_BUILD_IR)
   tint_target_add_dependencies(tint_lang_spirv_writer_raise lib
     tint_lang_core_ir
     tint_lang_core_ir_transform
   )
 endif(TINT_BUILD_IR)
 
-if (TINT_BUILD_SPV_READER  OR  TINT_BUILD_SPV_WRITER)
+if(TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER)
   tint_target_add_external_dependencies(tint_lang_spirv_writer_raise lib
     "spirv-headers"
   )
-endif(TINT_BUILD_SPV_READER  OR  TINT_BUILD_SPV_WRITER)
+endif(TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER)
 
-if (TINT_BUILD_SPV_WRITER)
+if(TINT_BUILD_SPV_WRITER)
   tint_target_add_dependencies(tint_lang_spirv_writer_raise lib
     tint_lang_spirv_writer_common
   )
 endif(TINT_BUILD_SPV_WRITER)
 
-endif(TINT_BUILD_SPV_WRITER  AND  TINT_BUILD_IR)
-if(TINT_BUILD_SPV_WRITER  AND  TINT_BUILD_IR)
+endif(TINT_BUILD_SPV_WRITER AND TINT_BUILD_IR)
+if(TINT_BUILD_SPV_WRITER AND TINT_BUILD_IR)
 ################################################################################
 # Target:    tint_lang_spirv_writer_raise_test
 # Kind:      test
-# Condition: TINT_BUILD_SPV_WRITER  AND  TINT_BUILD_IR
+# Condition: TINT_BUILD_SPV_WRITER AND TINT_BUILD_IR
 ################################################################################
 tint_add_target(tint_lang_spirv_writer_raise_test test
   lang/spirv/writer/raise/builtin_polyfill_test.cc
@@ -123,17 +123,17 @@
   "gtest"
 )
 
-if (TINT_BUILD_IR)
+if(TINT_BUILD_IR)
   tint_target_add_dependencies(tint_lang_spirv_writer_raise_test test
     tint_lang_core_ir
     tint_lang_core_ir_transform_test
   )
 endif(TINT_BUILD_IR)
 
-if (TINT_BUILD_SPV_WRITER  AND  TINT_BUILD_IR)
+if(TINT_BUILD_SPV_WRITER AND TINT_BUILD_IR)
   tint_target_add_dependencies(tint_lang_spirv_writer_raise_test test
     tint_lang_spirv_writer_raise
   )
-endif(TINT_BUILD_SPV_WRITER  AND  TINT_BUILD_IR)
+endif(TINT_BUILD_SPV_WRITER AND TINT_BUILD_IR)
 
-endif(TINT_BUILD_SPV_WRITER  AND  TINT_BUILD_IR)
\ No newline at end of file
+endif(TINT_BUILD_SPV_WRITER AND TINT_BUILD_IR)
\ No newline at end of file
diff --git a/src/tint/lang/wgsl/BUILD.cmake b/src/tint/lang/wgsl/BUILD.cmake
index c55570f..e7d0dc1 100644
--- a/src/tint/lang/wgsl/BUILD.cmake
+++ b/src/tint/lang/wgsl/BUILD.cmake
@@ -68,7 +68,7 @@
   "gtest"
 )
 
-if (TINT_BUILD_IR)
+if(TINT_BUILD_IR)
   tint_target_add_dependencies(tint_lang_wgsl_test test
     tint_lang_core_ir
     tint_lang_wgsl_reader_program_to_ir
@@ -76,8 +76,8 @@
   )
 endif(TINT_BUILD_IR)
 
-if (TINT_BUILD_WGSL_READER  AND  TINT_BUILD_WGSL_WRITER  AND  TINT_BUILD_IR)
+if(TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER AND TINT_BUILD_IR)
   tint_target_add_sources(tint_lang_wgsl_test test
     "lang/wgsl/ir_roundtrip_test.cc"
   )
-endif(TINT_BUILD_WGSL_READER  AND  TINT_BUILD_WGSL_WRITER  AND  TINT_BUILD_IR)
+endif(TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER AND TINT_BUILD_IR)
diff --git a/src/tint/lang/wgsl/helpers/BUILD.cmake b/src/tint/lang/wgsl/helpers/BUILD.cmake
index d8a6beb..048427b 100644
--- a/src/tint/lang/wgsl/helpers/BUILD.cmake
+++ b/src/tint/lang/wgsl/helpers/BUILD.cmake
@@ -101,7 +101,7 @@
   "gtest"
 )
 
-if (TINT_BUILD_IR)
+if(TINT_BUILD_IR)
   tint_target_add_dependencies(tint_lang_wgsl_helpers_test test
     tint_lang_core_ir
     tint_lang_wgsl_reader_program_to_ir
diff --git a/src/tint/lang/wgsl/reader/program_to_ir/BUILD.cmake b/src/tint/lang/wgsl/reader/program_to_ir/BUILD.cmake
index 3b4f6dc..38e81e1 100644
--- a/src/tint/lang/wgsl/reader/program_to_ir/BUILD.cmake
+++ b/src/tint/lang/wgsl/reader/program_to_ir/BUILD.cmake
@@ -54,7 +54,7 @@
   tint_utils_traits
 )
 
-if (TINT_BUILD_IR)
+if(TINT_BUILD_IR)
   tint_target_add_dependencies(tint_lang_wgsl_reader_program_to_ir lib
     tint_lang_core_ir
   )
@@ -113,7 +113,7 @@
   "gtest"
 )
 
-if (TINT_BUILD_IR)
+if(TINT_BUILD_IR)
   tint_target_add_dependencies(tint_lang_wgsl_reader_program_to_ir_test test
     tint_lang_core_ir
     tint_lang_wgsl_reader_program_to_ir
diff --git a/src/tint/lang/wgsl/writer/ir_to_program/BUILD.cmake b/src/tint/lang/wgsl/writer/ir_to_program/BUILD.cmake
index e76162b..426214e 100644
--- a/src/tint/lang/wgsl/writer/ir_to_program/BUILD.cmake
+++ b/src/tint/lang/wgsl/writer/ir_to_program/BUILD.cmake
@@ -57,7 +57,7 @@
   tint_utils_traits
 )
 
-if (TINT_BUILD_IR)
+if(TINT_BUILD_IR)
   tint_target_add_dependencies(tint_lang_wgsl_writer_ir_to_program lib
     tint_lang_core_ir
   )
@@ -105,7 +105,7 @@
   "gtest"
 )
 
-if (TINT_BUILD_IR)
+if(TINT_BUILD_IR)
   tint_target_add_dependencies(tint_lang_wgsl_writer_ir_to_program_test test
     tint_lang_core_ir
     tint_lang_core_ir_test
diff --git a/src/tint/utils/command/BUILD.cmake b/src/tint/utils/command/BUILD.cmake
index ccdc44f..ce450a3 100644
--- a/src/tint/utils/command/BUILD.cmake
+++ b/src/tint/utils/command/BUILD.cmake
@@ -33,19 +33,19 @@
   tint_utils_text
 )
 
-if ((NOT IS_LINUX)  AND  (NOT IS_MAC)  AND  (NOT IS_WIN))
+if((NOT IS_LINUX) AND (NOT IS_MAC) AND (NOT IS_WIN))
   tint_target_add_sources(tint_utils_command lib
     "utils/command/command_other.cc"
   )
-endif((NOT IS_LINUX)  AND  (NOT IS_MAC)  AND  (NOT IS_WIN))
+endif((NOT IS_LINUX) AND (NOT IS_MAC) AND (NOT IS_WIN))
 
-if (IS_LINUX  OR  IS_MAC)
+if(IS_LINUX OR IS_MAC)
   tint_target_add_sources(tint_utils_command lib
     "utils/command/command_posix.cc"
   )
-endif(IS_LINUX  OR  IS_MAC)
+endif(IS_LINUX OR IS_MAC)
 
-if (IS_WIN)
+if(IS_WIN)
   tint_target_add_sources(tint_utils_command lib
     "utils/command/command_windows.cc"
   )
diff --git a/src/tint/utils/diagnostic/BUILD.cmake b/src/tint/utils/diagnostic/BUILD.cmake
index f5cae61..ec63e21 100644
--- a/src/tint/utils/diagnostic/BUILD.cmake
+++ b/src/tint/utils/diagnostic/BUILD.cmake
@@ -40,19 +40,19 @@
   tint_utils_traits
 )
 
-if ((NOT IS_LINUX)  AND  (NOT IS_MAC)  AND  (NOT IS_WIN))
+if((NOT IS_LINUX) AND (NOT IS_MAC) AND (NOT IS_WIN))
   tint_target_add_sources(tint_utils_diagnostic lib
     "utils/diagnostic/printer_other.cc"
   )
-endif((NOT IS_LINUX)  AND  (NOT IS_MAC)  AND  (NOT IS_WIN))
+endif((NOT IS_LINUX) AND (NOT IS_MAC) AND (NOT IS_WIN))
 
-if (IS_LINUX  OR  IS_MAC)
+if(IS_LINUX OR IS_MAC)
   tint_target_add_sources(tint_utils_diagnostic lib
     "utils/diagnostic/printer_posix.cc"
   )
-endif(IS_LINUX  OR  IS_MAC)
+endif(IS_LINUX OR IS_MAC)
 
-if (IS_WIN)
+if(IS_WIN)
   tint_target_add_sources(tint_utils_diagnostic lib
     "utils/diagnostic/printer_windows.cc"
   )
diff --git a/src/tint/utils/file/BUILD.cmake b/src/tint/utils/file/BUILD.cmake
index 3ba7bea..2a88c4b 100644
--- a/src/tint/utils/file/BUILD.cmake
+++ b/src/tint/utils/file/BUILD.cmake
@@ -34,19 +34,19 @@
   tint_utils_text
 )
 
-if ((NOT IS_LINUX)  AND  (NOT IS_MAC)  AND  (NOT IS_WIN))
+if((NOT IS_LINUX) AND (NOT IS_MAC) AND (NOT IS_WIN))
   tint_target_add_sources(tint_utils_file lib
     "utils/file/tmpfile_other.cc"
   )
-endif((NOT IS_LINUX)  AND  (NOT IS_MAC)  AND  (NOT IS_WIN))
+endif((NOT IS_LINUX) AND (NOT IS_MAC) AND (NOT IS_WIN))
 
-if (IS_LINUX  OR  IS_MAC)
+if(IS_LINUX OR IS_MAC)
   tint_target_add_sources(tint_utils_file lib
     "utils/file/tmpfile_posix.cc"
   )
-endif(IS_LINUX  OR  IS_MAC)
+endif(IS_LINUX OR IS_MAC)
 
-if (IS_WIN)
+if(IS_WIN)
   tint_target_add_sources(tint_utils_file lib
     "utils/file/tmpfile_windows.cc"
   )
diff --git a/tools/src/cmd/gen/build/BUILD.cmake.tmpl b/tools/src/cmd/gen/build/BUILD.cmake.tmpl
index 376be16..5ee97a3 100644
--- a/tools/src/cmd/gen/build/BUILD.cmake.tmpl
+++ b/tools/src/cmd/gen/build/BUILD.cmake.tmpl
@@ -87,7 +87,7 @@
 {{- /* Emit conditional source files and dependencies */}}
 {{-   range $Cond := $.Conditionals}}
 {{/*   newline */}}
-if ({{Eval "Expression" $Cond.Condition}})
+if({{Eval "Expression" $Cond.Condition}})
 {{-     if $Cond.SourceFiles}}
   tint_target_add_sources({{$Name}} {{$Kind}}
 {{-       range $File := $Cond.SourceFiles}}
@@ -139,11 +139,7 @@
 --------------------------------------------------------------------------------
 */ -}}
 {{- define "Expression"}}
-{{-   $expr := $ }}
-{{-   $expr = Replace $expr "!"  "NOT "}}
-{{-   $expr = Replace $expr "&&" " AND "}}
-{{-   $expr = Replace $expr "||" " OR "}}
-{{-   ToUpper $expr}}
+{{-   ToUpper ($.Format " AND " " OR " "NOT ")}}
 {{- end}}
 
 {{- /* eat newlines */ -}}
diff --git a/tools/src/cmd/gen/build/BUILD.gn.tmpl b/tools/src/cmd/gen/build/BUILD.gn.tmpl
index 0c46af3..4d325de 100644
--- a/tools/src/cmd/gen/build/BUILD.gn.tmpl
+++ b/tools/src/cmd/gen/build/BUILD.gn.tmpl
@@ -150,7 +150,7 @@
 {{-   else if eq $.Name "spirv-headers"      -}}"${tint_spirv_headers_dir}:spv_headers",
 {{-   else if eq $.Name "glslang"            -}}"${tint_glslang_dir}:glslang_lib_sources",
 {{-   else if eq $.Name "glslang-res-limits" -}}"${tint_glslang_dir}:glslang_default_resource_limits_sources",
-{{-   else                                   -}}{{Error (printf "unhandled external dependency '%v'" $)}}
+{{-   else                                   -}}{{Error (printf "unhandled external dependency '%v'" $.Name)}}
 {{-   end}}
 {{- end}}
 
diff --git a/tools/src/cmd/gen/build/build.go b/tools/src/cmd/gen/build/build.go
index ef4dd88..1678bd3 100644
--- a/tools/src/cmd/gen/build/build.go
+++ b/tools/src/cmd/gen/build/build.go
@@ -32,6 +32,7 @@
 	"strings"
 
 	"dawn.googlesource.com/dawn/tools/src/cmd/gen/common"
+	"dawn.googlesource.com/dawn/tools/src/cnf"
 	"dawn.googlesource.com/dawn/tools/src/container"
 	"dawn.googlesource.com/dawn/tools/src/fileutils"
 	"dawn.googlesource.com/dawn/tools/src/glob"
@@ -116,19 +117,20 @@
 		Condition       string
 	}]()
 	if err := json.Unmarshal(jsonc.ToJSON(content), &externals); err != nil {
-		return fmt.Errorf("failed to parse 'externals.json': %w", err)
+		return fmt.Errorf("failed to parse '%v': %w", p.externalsJsonPath, err)
 	}
 
 	for _, name := range externals.Keys() {
 		external := externals[name]
 		if len(external.IncludePatterns) == 0 {
-			return fmt.Errorf("'externals.json': '%v' requires at least one pattern in IncludePatterns", name)
+			return fmt.Errorf("%v: '%v' requires at least one pattern in IncludePatterns",
+				p.externalsJsonPath, name)
 		}
 		matchers := []match.Test{}
 		for _, pattern := range external.IncludePatterns {
 			matcher, err := match.New(pattern)
 			if err != nil {
-				return fmt.Errorf("'externals.json': matcher error: %w", err)
+				return fmt.Errorf("%v: matcher error: %w", p.externalsJsonPath, err)
 			}
 			matchers = append(matchers, matcher)
 		}
@@ -141,10 +143,16 @@
 			return false
 		}
 
+		cond, err := cnf.Parse(external.Condition)
+		if err != nil {
+			return fmt.Errorf("%v: could not parse condition: %w",
+				p.externalsJsonPath, err)
+		}
+
 		name := ExternalDependencyName(name)
 		p.externals.Add(name, ExternalDependency{
 			Name:                name,
-			Condition:           external.Condition,
+			Condition:           cond,
 			includePatternMatch: match,
 		})
 	}
@@ -243,11 +251,14 @@
 
 				// Apply any conditions
 				for _, condition := range parsed.conditions {
-					if file.Condition == "" {
-						file.Condition = condition
-					} else {
-						file.Condition += " && " + condition
+					cond, err := cnf.Parse(condition)
+					if err != nil {
+						return fmt.Errorf("%v: could not parse condition: %w", file, err)
 					}
+					if file.Condition != nil {
+						cond = cnf.Optimize(cnf.And(file.Condition, cond))
+					}
+					file.Condition = cond
 				}
 
 				file.Includes = append(file.Includes, parsed.includes...)
@@ -276,7 +287,11 @@
 
 		// Apply any directory-level condition
 		for _, target := range dir.Targets() {
-			target.Condition = cfg.Condition
+			cond, err := cnf.Parse(cfg.Condition)
+			if err != nil {
+				return fmt.Errorf("%v: could not parse condition: %w", path, err)
+			}
+			target.Condition = cond
 		}
 
 		// For each target config...
diff --git a/tools/src/cmd/gen/build/condition.go b/tools/src/cmd/gen/build/condition.go
new file mode 100644
index 0000000..7bb95e6
--- /dev/null
+++ b/tools/src/cmd/gen/build/condition.go
@@ -0,0 +1,19 @@
+// Copyright 2023 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package build
+
+import "dawn.googlesource.com/dawn/tools/src/cnf"
+
+type Condition = cnf.Expr
diff --git a/tools/src/cmd/gen/build/dependencies.go b/tools/src/cmd/gen/build/dependencies.go
index 0578966..21468e3 100644
--- a/tools/src/cmd/gen/build/dependencies.go
+++ b/tools/src/cmd/gen/build/dependencies.go
@@ -59,7 +59,7 @@
 
 // UnconditionalInternal returns the sorted list of dependencies that have no build condition.
 func (d *Dependencies) UnconditionalInternal() []*Target {
-	return transform.Filter(d.Internal(), func(d *Target) bool { return d.Condition == "" })
+	return transform.Filter(d.Internal(), func(d *Target) bool { return d.Condition == nil })
 }
 
 // External returns the sorted list of external dependencies.
@@ -74,13 +74,13 @@
 // ConditionalExternalDependencies returns the sorted list of external dependencies that have a
 // build condition.
 func (d *Dependencies) ConditionalExternal() []ExternalDependency {
-	return transform.Filter(d.External(), func(e ExternalDependency) bool { return e.Condition != "" })
+	return transform.Filter(d.External(), func(e ExternalDependency) bool { return e.Condition != nil })
 }
 
 // ConditionalExternalDependencies returns the sorted list of external dependencies that have no
 // build condition.
 func (d *Dependencies) UnconditionalExternal() []ExternalDependency {
-	return transform.Filter(d.External(), func(e ExternalDependency) bool { return e.Condition == "" })
+	return transform.Filter(d.External(), func(e ExternalDependency) bool { return e.Condition == nil })
 }
 
 // ContainsExternal returns true if the external dependencies contains name
diff --git a/tools/src/cmd/gen/build/directory.go b/tools/src/cmd/gen/build/directory.go
index 32bebd1..cd1c04ca 100644
--- a/tools/src/cmd/gen/build/directory.go
+++ b/tools/src/cmd/gen/build/directory.go
@@ -18,6 +18,7 @@
 	"path"
 	"strings"
 
+	"dawn.googlesource.com/dawn/tools/src/cnf"
 	"dawn.googlesource.com/dawn/tools/src/container"
 )
 
@@ -65,3 +66,48 @@
 	}
 	return out
 }
+
+// DecomposedConditionals returns the combined decomposed ANDs, ORs and unary expressions of all
+// the conditional expressions used by the targets in this directory. This can be used by templates
+// that need to break expressions down into separate sub-expressions.
+func (d *Directory) DecomposedConditionals() cnf.Decomposed {
+	// Gather up all the conditional expressions used by targets in this directory
+	expressions := container.NewMap[cnf.Key, cnf.Expr]()
+	addExpr := func(expr cnf.Expr) {
+		if len(expr) > 0 {
+			expressions.Add(expr.Key(), expr)
+		}
+	}
+	for _, target := range d.Targets() {
+		addExpr(target.Condition)
+		for _, c := range target.Conditionals() {
+			addExpr(c.Condition)
+		}
+	}
+
+	// Build maps for the AND, OR and unary sub-expressions.
+	allAnds := container.NewMap[cnf.Key, cnf.Ands]()
+	allOrs := container.NewMap[cnf.Key, cnf.Ors]()
+	allUnarys := container.NewMap[cnf.Key, cnf.Unary]()
+
+	// Populate the maps
+	for _, expr := range expressions {
+		decomposed := cnf.Decompose(expr)
+		for _, ands := range decomposed.Ands {
+			allAnds.Add(ands.Key(), ands)
+		}
+		for _, ors := range decomposed.Ors {
+			allOrs.Add(ors.Key(), ors)
+		}
+		for _, unarys := range decomposed.Unarys {
+			allUnarys.Add(unarys.Key(), unarys)
+		}
+	}
+
+	// Return the decomposed expressions
+	return cnf.Decomposed{
+		Ands:   allAnds.Values(),
+		Ors:    allOrs.Values(),
+		Unarys: allUnarys.Values(),
+	}
+}
diff --git a/tools/src/cmd/gen/build/external_dependency.go b/tools/src/cmd/gen/build/external_dependency.go
index a411d34..c58ab6d 100644
--- a/tools/src/cmd/gen/build/external_dependency.go
+++ b/tools/src/cmd/gen/build/external_dependency.go
@@ -22,7 +22,7 @@
 	// See 'externals.json'
 	Name ExternalDependencyName
 	// The optional condition for using this dependency
-	Condition string
+	Condition Condition
 	// Include file pattern matcher
 	includePatternMatch match.Test
 }
diff --git a/tools/src/cmd/gen/build/file.go b/tools/src/cmd/gen/build/file.go
index 28d339a..7fb9b9c 100644
--- a/tools/src/cmd/gen/build/file.go
+++ b/tools/src/cmd/gen/build/file.go
@@ -31,7 +31,7 @@
 	// The name of the file
 	Name string
 	// An optional condition used to build this source file
-	Condition string
+	Condition Condition
 	// All the #include made by this file
 	Includes []Include
 	// All the transitive dependencies of this file
diff --git a/tools/src/cmd/gen/build/target.go b/tools/src/cmd/gen/build/target.go
index ebb21c7..e988bcfa 100644
--- a/tools/src/cmd/gen/build/target.go
+++ b/tools/src/cmd/gen/build/target.go
@@ -36,7 +36,7 @@
 	// An optional custom output name for the target
 	OutputName string
 	// An optional condition for building this target
-	Condition string
+	Condition Condition
 }
 
 // AddSourceFile adds the File to the target's source set
@@ -56,12 +56,12 @@
 
 // SourceFiles returns the sorted list of the target's source files that have no build condition
 func (t *Target) UnconditionalSourceFiles() []*File {
-	return transform.Filter(t.SourceFiles(), func(t *File) bool { return t.Condition == "" })
+	return transform.Filter(t.SourceFiles(), func(t *File) bool { return t.Condition == nil })
 }
 
 // A collection of source files and dependencies sharing the same condition
 type TargetConditional struct {
-	Condition            string
+	Condition            Condition
 	SourceFiles          []*File
 	InternalDependencies []*Target
 	ExternalDependencies []ExternalDependency
@@ -95,8 +95,8 @@
 	m := container.NewMap[string, *TargetConditional]()
 	for name := range t.SourceFileSet {
 		file := t.Directory.Project.Files[name]
-		if file.Condition != "" {
-			c := m.GetOrCreate(file.Condition, func() *TargetConditional {
+		if file.Condition != nil {
+			c := m.GetOrCreate(file.Condition.String(), func() *TargetConditional {
 				return &TargetConditional{Condition: file.Condition}
 			})
 			c.SourceFiles = append(c.SourceFiles, file)
@@ -104,8 +104,8 @@
 	}
 	for name := range t.Dependencies.internal {
 		dep := t.Directory.Project.Targets[name]
-		if dep.Condition != "" {
-			c := m.GetOrCreate(dep.Condition, func() *TargetConditional {
+		if dep.Condition != nil {
+			c := m.GetOrCreate(dep.Condition.String(), func() *TargetConditional {
 				return &TargetConditional{Condition: dep.Condition}
 			})
 			c.InternalDependencies = append(c.InternalDependencies, dep)
@@ -113,8 +113,8 @@
 	}
 	for name := range t.Dependencies.external {
 		dep := t.Directory.Project.externals[name]
-		if dep.Condition != "" {
-			c := m.GetOrCreate(dep.Condition, func() *TargetConditional {
+		if dep.Condition != nil {
+			c := m.GetOrCreate(dep.Condition.String(), func() *TargetConditional {
 				return &TargetConditional{Condition: dep.Condition}
 			})
 			c.ExternalDependencies = append(c.ExternalDependencies, dep)
