[build] Clean up no_rtti config handling

Don't assume that the config is always in the default list.

Run `fx format-code` after rerunning `tools/convert_for_cobalt`.

Bug: 60253
Change-Id: Ie078e8cdea6377639c8c882bccef1e30e977d184
Reviewed-on: https://fuchsia-review.googlesource.com/c/third_party/tink/+/428974
Reviewed-by: Roland McGrath <mcgrathr@google.com>
Commit-Queue: Drew Fisher <zarvox@google.com>
diff --git a/cc/BUILD.gn b/cc/BUILD.gn
index 32add20..bca7b51 100644
--- a/cc/BUILD.gn
+++ b/cc/BUILD.gn
@@ -4,51 +4,56 @@
 
 # CC Library : aead
 source_set("aead") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [ "aead.h" ]
   public_deps = [
-    "//third_party/tink/cc/util:statusor",
     "//third_party/abseil-cpp/absl/strings:strings",
+    "//third_party/tink/cc/util:statusor",
   ]
   public_configs = [ "//third_party/tink:tink_config" ]
 }
 
 # CC Library : hybrid_decrypt
 source_set("hybrid_decrypt") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [ "hybrid_decrypt.h" ]
   public_deps = [
-    "//third_party/tink/cc/util:statusor",
     "//third_party/abseil-cpp/absl/strings:strings",
+    "//third_party/tink/cc/util:statusor",
   ]
   public_configs = [ "//third_party/tink:tink_config" ]
 }
 
 # CC Library : hybrid_encrypt
 source_set("hybrid_encrypt") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [ "hybrid_encrypt.h" ]
   public_deps = [
-    "//third_party/tink/cc/util:statusor",
     "//third_party/abseil-cpp/absl/strings:strings",
+    "//third_party/tink/cc/util:statusor",
   ]
   public_configs = [ "//third_party/tink:tink_config" ]
 }
 
 # CC Library : mac
 source_set("mac") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [ "mac.h" ]
   public_deps = [
+    "//third_party/abseil-cpp/absl/strings:strings",
     "//third_party/tink/cc/util:status",
     "//third_party/tink/cc/util:statusor",
-    "//third_party/abseil-cpp/absl/strings:strings",
   ]
   public_configs = [ "//third_party/tink:tink_config" ]
 }
 
 # CC Library : keyset_reader
 source_set("keyset_reader") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [ "keyset_reader.h" ]
   public_deps = [
@@ -60,6 +65,7 @@
 
 # CC Library : keyset_writer
 source_set("keyset_writer") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [ "keyset_writer.h" ]
   public_deps = [
@@ -71,6 +77,7 @@
 
 # CC Library : binary_keyset_reader
 source_set("binary_keyset_reader") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "binary_keyset_reader.h",
@@ -78,18 +85,19 @@
   ]
   public_deps = [
     ":keyset_reader",
-    "//third_party/tink/cc/util:errors",
-    "//third_party/tink/cc/util:statusor",
-    "//third_party/tink/proto:tink_proto",
     "//third_party/abseil-cpp/absl/memory:memory",
     "//third_party/abseil-cpp/absl/strings:strings",
     "//third_party/protobuf:protobuf_lite",
+    "//third_party/tink/cc/util:errors",
+    "//third_party/tink/cc/util:statusor",
+    "//third_party/tink/proto:tink_proto",
   ]
   public_configs = [ "//third_party/tink:tink_config" ]
 }
 
 # CC Library : binary_keyset_writer
 source_set("binary_keyset_writer") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "binary_keyset_writer.h",
@@ -97,30 +105,32 @@
   ]
   public_deps = [
     ":keyset_writer",
+    "//third_party/abseil-cpp/absl/strings:strings",
     "//third_party/tink/cc/util:errors",
     "//third_party/tink/cc/util:protobuf_helper",
     "//third_party/tink/cc/util:status",
     "//third_party/tink/cc/util:statusor",
     "//third_party/tink/proto:tink_proto",
-    "//third_party/abseil-cpp/absl/strings:strings",
   ]
   public_configs = [ "//third_party/tink:tink_config" ]
 }
 
 # CC Library : catalogue
 source_set("catalogue") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [ "catalogue.h" ]
   public_deps = [
     ":key_manager",
-    "//third_party/tink/cc/util:statusor",
     "//third_party/abseil-cpp/absl/base:core_headers",
+    "//third_party/tink/cc/util:statusor",
   ]
   public_configs = [ "//third_party/tink:tink_config" ]
 }
 
 # CC Library : crypto_format
 source_set("crypto_format") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "core/crypto_format.cc",
@@ -136,6 +146,7 @@
 
 # CC Library : primitive_set
 source_set("primitive_set") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "primitive_set.h",
@@ -143,17 +154,18 @@
   ]
   public_deps = [
     ":crypto_format",
+    "//third_party/abseil-cpp/absl/memory:memory",
+    "//third_party/abseil-cpp/absl/synchronization:synchronization",
     "//third_party/tink/cc/util:errors",
     "//third_party/tink/cc/util:statusor",
     "//third_party/tink/proto:tink_proto",
-    "//third_party/abseil-cpp/absl/memory:memory",
-    "//third_party/abseil-cpp/absl/synchronization:synchronization",
   ]
   public_configs = [ "//third_party/tink:tink_config" ]
 }
 
 # CC Library : primitive_wrapper
 source_set("primitive_wrapper") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [ "primitive_wrapper.h" ]
   public_deps = [
@@ -165,19 +177,21 @@
 
 # CC Library : registry
 source_set("registry") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [ "registry.h" ]
   public_deps = [
+    "//third_party/abseil-cpp/absl/strings:strings",
     "//third_party/tink/cc/core:registry_impl",
     "//third_party/tink/cc/util:status",
     "//third_party/tink/cc/util:statusor",
-    "//third_party/abseil-cpp/absl/strings:strings",
   ]
   public_configs = [ "//third_party/tink:tink_config" ]
 }
 
 # CC Library : keyset_handle
 source_set("keyset_handle") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "core/keyset_handle.cc",
@@ -190,15 +204,16 @@
     ":keyset_writer",
     ":primitive_set",
     ":registry",
+    "//third_party/abseil-cpp/absl/memory:memory",
     "//third_party/tink/cc/util:errors",
     "//third_party/tink/proto:tink_proto",
-    "//third_party/abseil-cpp/absl/memory:memory",
   ]
   public_configs = [ "//third_party/tink:tink_config" ]
 }
 
 # CC Library : cleartext_keyset_handle
 source_set("cleartext_keyset_handle") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "cleartext_keyset_handle.h",
@@ -216,37 +231,40 @@
 
 # CC Library : key_manager
 source_set("key_manager") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "core/key_manager.cc",
     "key_manager.h",
   ]
   public_deps = [
+    "//third_party/abseil-cpp/absl/memory:memory",
+    "//third_party/abseil-cpp/absl/strings:strings",
     "//third_party/tink/cc/util:errors",
     "//third_party/tink/cc/util:protobuf_helper",
     "//third_party/tink/cc/util:status",
     "//third_party/tink/cc/util:statusor",
     "//third_party/tink/proto:tink_proto",
-    "//third_party/abseil-cpp/absl/memory:memory",
-    "//third_party/abseil-cpp/absl/strings:strings",
   ]
   public_configs = [ "//third_party/tink:tink_config" ]
 }
 
 # CC Library : kms_client
 source_set("kms_client") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [ "kms_client.h" ]
   public_deps = [
     ":aead",
-    "//third_party/tink/cc/util:statusor",
     "//third_party/abseil-cpp/absl/strings:strings",
+    "//third_party/tink/cc/util:statusor",
   ]
   public_configs = [ "//third_party/tink:tink_config" ]
 }
 
 # CC Library : kms_clients
 source_set("kms_clients") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "core/kms_clients.cc",
@@ -254,13 +272,12 @@
   ]
   public_deps = [
     ":kms_client",
-    "//third_party/tink/cc/util:errors",
-    "//third_party/tink/cc/util:status",
-    "//third_party/tink/cc/util:statusor",
     "//third_party/abseil-cpp/absl/base:base",
     "//third_party/abseil-cpp/absl/strings:strings",
     "//third_party/abseil-cpp/absl/synchronization:synchronization",
+    "//third_party/tink/cc/util:errors",
+    "//third_party/tink/cc/util:status",
+    "//third_party/tink/cc/util:statusor",
   ]
   public_configs = [ "//third_party/tink:tink_config" ]
 }
-
diff --git a/cc/aead/BUILD.gn b/cc/aead/BUILD.gn
index d0cb27d..6a8e0be 100644
--- a/cc/aead/BUILD.gn
+++ b/cc/aead/BUILD.gn
@@ -4,12 +4,14 @@
 
 # CC Library : aead_wrapper
 source_set("aead_wrapper") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "aead_wrapper.cc",
     "aead_wrapper.h",
   ]
   public_deps = [
+    "//third_party/abseil-cpp/absl/strings:strings",
     "//third_party/tink/cc:aead",
     "//third_party/tink/cc:crypto_format",
     "//third_party/tink/cc:primitive_set",
@@ -19,13 +21,13 @@
     "//third_party/tink/cc/util:status",
     "//third_party/tink/cc/util:statusor",
     "//third_party/tink/proto:tink_proto",
-    "//third_party/abseil-cpp/absl/strings:strings",
   ]
   public_configs = [ "//third_party/tink:tink_config" ]
 }
 
 # CC Library : aead_config
 source_set("aead_config") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "aead_config.cc",
@@ -40,18 +42,19 @@
     ":kms_aead_key_manager",
     ":kms_envelope_aead_key_manager",
     ":xchacha20_poly1305_key_manager",
+    "//third_party/abseil-cpp/absl/base:core_headers",
+    "//third_party/abseil-cpp/absl/memory:memory",
     "//third_party/tink/cc/config:config_util",
     "//third_party/tink/cc/mac:mac_config",
     "//third_party/tink/cc/util:status",
     "//third_party/tink/proto:config_proto",
-    "//third_party/abseil-cpp/absl/base:core_headers",
-    "//third_party/abseil-cpp/absl/memory:memory",
   ]
   public_configs = [ "//third_party/tink:tink_config" ]
 }
 
 # CC Library : aead_key_templates
 source_set("aead_key_templates") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "aead_key_templates.cc",
@@ -71,9 +74,11 @@
 
 # CC Library : aes_eax_key_manager
 source_set("aes_eax_key_manager") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [ "aes_eax_key_manager.h" ]
   public_deps = [
+    "//third_party/abseil-cpp/absl/strings:strings",
     "//third_party/tink/cc:aead",
     "//third_party/tink/cc/core:core/key_type_manager",
     "//third_party/tink/cc/subtle:aes_eax_boringssl",
@@ -85,19 +90,20 @@
     "//third_party/tink/cc/util:statusor",
     "//third_party/tink/cc/util:validation",
     "//third_party/tink/proto:aes_eax_proto",
-    "//third_party/abseil-cpp/absl/strings:strings",
   ]
   public_configs = [ "//third_party/tink:tink_config" ]
 }
 
 # CC Library : aes_gcm_key_manager
 source_set("aes_gcm_key_manager") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [ "aes_gcm_key_manager.h" ]
   public_deps = [
+    "//third_party/abseil-cpp/absl/base:base",
     "//third_party/tink/cc:aead",
-    "//third_party/tink/cc/core:core/key_type_manager",
     "//third_party/tink/cc:key_manager",
+    "//third_party/tink/cc/core:core/key_type_manager",
     "//third_party/tink/cc/subtle:aes_gcm_boringssl",
     "//third_party/tink/cc/subtle:random",
     "//third_party/tink/cc/util:constants",
@@ -109,16 +115,17 @@
     "//third_party/tink/proto:aes_gcm_proto",
     "//third_party/tink/proto:common_proto",
     "//third_party/tink/proto:tink_proto",
-    "//third_party/abseil-cpp/absl/base:base",
   ]
   public_configs = [ "//third_party/tink:tink_config" ]
 }
 
 # CC Library : aes_gcm_siv_key_manager
 source_set("aes_gcm_siv_key_manager") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [ "aes_gcm_siv_key_manager.h" ]
   public_deps = [
+    "//third_party/abseil-cpp/absl/base:base",
     "//third_party/tink/cc:aead",
     "//third_party/tink/cc/core:core/key_type_manager",
     "//third_party/tink/cc/subtle:aes_gcm_siv_boringssl",
@@ -132,23 +139,24 @@
     "//third_party/tink/proto:aes_gcm_siv_proto",
     "//third_party/tink/proto:common_proto",
     "//third_party/tink/proto:tink_proto",
-    "//third_party/abseil-cpp/absl/base:base",
   ]
   public_configs = [ "//third_party/tink:tink_config" ]
 }
 
 # CC Library : aes_ctr_hmac_aead_key_manager
 source_set("aes_ctr_hmac_aead_key_manager") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "aes_ctr_hmac_aead_key_manager.cc",
     "aes_ctr_hmac_aead_key_manager.h",
   ]
   public_deps = [
+    "//third_party/abseil-cpp/absl/base:base",
     "//third_party/tink/cc:aead",
-    "//third_party/tink/cc/core:core/key_type_manager",
     "//third_party/tink/cc:mac",
     "//third_party/tink/cc:registry",
+    "//third_party/tink/cc/core:core/key_type_manager",
     "//third_party/tink/cc/mac:hmac_key_manager",
     "//third_party/tink/cc/subtle:aes_ctr_boringssl",
     "//third_party/tink/cc/subtle:encrypt_then_authenticate",
@@ -164,16 +172,17 @@
     "//third_party/tink/proto:aes_ctr_hmac_aead_proto",
     "//third_party/tink/proto:common_proto",
     "//third_party/tink/proto:tink_proto",
-    "//third_party/abseil-cpp/absl/base:base",
   ]
   public_configs = [ "//third_party/tink:tink_config" ]
 }
 
 # CC Library : xchacha20_poly1305_key_manager
 source_set("xchacha20_poly1305_key_manager") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [ "xchacha20_poly1305_key_manager.h" ]
   public_deps = [
+    "//third_party/abseil-cpp/absl/strings:strings",
     "//third_party/tink/cc:aead",
     "//third_party/tink/cc/core:core/key_type_manager",
     "//third_party/tink/cc/subtle:random",
@@ -185,37 +194,39 @@
     "//third_party/tink/cc/util:statusor",
     "//third_party/tink/cc/util:validation",
     "//third_party/tink/proto:xchacha20_poly1305_proto",
-    "//third_party/abseil-cpp/absl/strings:strings",
   ]
   public_configs = [ "//third_party/tink:tink_config" ]
 }
 
 # CC Library : kms_aead_key_manager
 source_set("kms_aead_key_manager") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [ "kms_aead_key_manager.h" ]
   public_deps = [
+    "//third_party/abseil-cpp/absl/strings:strings",
     "//third_party/tink/cc:aead",
-    "//third_party/tink/cc/core:core/key_type_manager",
     "//third_party/tink/cc:kms_clients",
+    "//third_party/tink/cc/core:core/key_type_manager",
     "//third_party/tink/cc/util:constants",
     "//third_party/tink/cc/util:status",
     "//third_party/tink/cc/util:statusor",
     "//third_party/tink/cc/util:validation",
     "//third_party/tink/proto:kms_aead_proto",
-    "//third_party/abseil-cpp/absl/strings:strings",
   ]
   public_configs = [ "//third_party/tink:tink_config" ]
 }
 
 # CC Library : kms_envelope_aead
 source_set("kms_envelope_aead") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "kms_envelope_aead.cc",
     "kms_envelope_aead.h",
   ]
   public_deps = [
+    "//third_party/abseil-cpp/absl/strings:strings",
     "//third_party/tink/cc:aead",
     "//third_party/tink/cc:registry",
     "//third_party/tink/cc/util:errors",
@@ -223,13 +234,13 @@
     "//third_party/tink/cc/util:status",
     "//third_party/tink/cc/util:statusor",
     "//third_party/tink/proto:tink_proto",
-    "//third_party/abseil-cpp/absl/strings:strings",
   ]
   public_configs = [ "//third_party/tink:tink_config" ]
 }
 
 # CC Library : kms_envelope_aead_key_manager
 source_set("kms_envelope_aead_key_manager") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "kms_envelope_aead_key_manager.cc",
@@ -237,10 +248,12 @@
   ]
   public_deps = [
     ":kms_envelope_aead",
+    "//third_party/abseil-cpp/absl/memory:memory",
+    "//third_party/abseil-cpp/absl/strings:strings",
     "//third_party/tink/cc:aead",
-    "//third_party/tink/cc/core:core/key_type_manager",
     "//third_party/tink/cc:kms_client",
     "//third_party/tink/cc:kms_clients",
+    "//third_party/tink/cc/core:core/key_type_manager",
     "//third_party/tink/cc/util:constants",
     "//third_party/tink/cc/util:errors",
     "//third_party/tink/cc/util:protobuf_helper",
@@ -248,9 +261,6 @@
     "//third_party/tink/cc/util:statusor",
     "//third_party/tink/cc/util:validation",
     "//third_party/tink/proto:kms_envelope_proto",
-    "//third_party/abseil-cpp/absl/memory:memory",
-    "//third_party/abseil-cpp/absl/strings:strings",
   ]
   public_configs = [ "//third_party/tink:tink_config" ]
 }
-
diff --git a/cc/config/BUILD.gn b/cc/config/BUILD.gn
index 864b6e2..8a18634 100644
--- a/cc/config/BUILD.gn
+++ b/cc/config/BUILD.gn
@@ -4,6 +4,7 @@
 
 # CC Library : config_util
 source_set("config_util") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "config_util.cc",
@@ -12,4 +13,3 @@
   public_deps = [ "//third_party/tink/proto:config_proto" ]
   public_configs = [ "//third_party/tink:tink_config" ]
 }
-
diff --git a/cc/core/BUILD.gn b/cc/core/BUILD.gn
index 22f42c4..f5dbb73 100644
--- a/cc/core/BUILD.gn
+++ b/cc/core/BUILD.gn
@@ -4,17 +4,21 @@
 
 # CC Library : registry_impl
 source_set("registry_impl") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "registry_impl.cc",
     "registry_impl.h",
   ]
   public_deps = [
-    "//third_party/tink/cc:catalogue",
     ":core/key_manager_impl",
     ":core/key_type_manager",
     ":core/private_key_manager_impl",
     ":core/private_key_type_manager",
+    "//third_party/abseil-cpp/absl/base:core_headers",
+    "//third_party/abseil-cpp/absl/strings:strings",
+    "//third_party/abseil-cpp/absl/synchronization:synchronization",
+    "//third_party/tink/cc:catalogue",
     "//third_party/tink/cc:key_manager",
     "//third_party/tink/cc:primitive_set",
     "//third_party/tink/cc:primitive_wrapper",
@@ -24,15 +28,13 @@
     "//third_party/tink/cc/util:statusor",
     "//third_party/tink/cc/util:validation",
     "//third_party/tink/proto:tink_proto",
-    "//third_party/abseil-cpp/absl/base:core_headers",
-    "//third_party/abseil-cpp/absl/strings:strings",
-    "//third_party/abseil-cpp/absl/synchronization:synchronization",
   ]
   public_configs = [ "//third_party/tink:tink_config" ]
 }
 
 # CC Library : core/template_util
 source_set("core/template_util") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [ "template_util.h" ]
   public_deps = [ "//third_party/abseil-cpp/absl/meta:type_traits" ]
@@ -41,35 +43,38 @@
 
 # CC Library : core/key_type_manager
 source_set("core/key_type_manager") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [ "key_type_manager.h" ]
   public_deps = [
     ":core/template_util",
+    "//third_party/abseil-cpp/absl/container:flat_hash_map",
     "//third_party/tink/cc/util:status",
     "//third_party/tink/cc/util:statusor",
     "//third_party/tink/proto:tink_proto",
-    "//third_party/abseil-cpp/absl/container:flat_hash_map",
   ]
   public_configs = [ "//third_party/tink:tink_config" ]
 }
 
 # CC Library : core/key_manager_impl
 source_set("core/key_manager_impl") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [ "key_manager_impl.h" ]
   public_deps = [
     ":core/key_type_manager",
+    "//third_party/abseil-cpp/absl/base:core_headers",
     "//third_party/tink/cc:key_manager",
     "//third_party/tink/cc/util:constants",
     "//third_party/tink/cc/util:status",
     "//third_party/tink/proto:tink_proto",
-    "//third_party/abseil-cpp/absl/base:core_headers",
   ]
   public_configs = [ "//third_party/tink:tink_config" ]
 }
 
 # CC Library : core/private_key_type_manager
 source_set("core/private_key_type_manager") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [ "private_key_type_manager.h" ]
   public_deps = [
@@ -81,6 +86,7 @@
 
 # CC Library : core/private_key_manager_impl
 source_set("core/private_key_manager_impl") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [ "private_key_manager_impl.h" ]
   public_deps = [
@@ -91,4 +97,3 @@
   ]
   public_configs = [ "//third_party/tink:tink_config" ]
 }
-
diff --git a/cc/daead/BUILD.gn b/cc/daead/BUILD.gn
index 9a7d15b..d9d0a50 100644
--- a/cc/daead/BUILD.gn
+++ b/cc/daead/BUILD.gn
@@ -4,12 +4,14 @@
 
 # CC Library : deterministic_aead_wrapper
 source_set("deterministic_aead_wrapper") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "deterministic_aead_wrapper.cc",
     "deterministic_aead_wrapper.h",
   ]
   public_deps = [
+    "//third_party/abseil-cpp/absl/strings:strings",
     "//third_party/tink/cc:crypto_format",
     "//third_party/tink/cc:deterministic_aead",
     "//third_party/tink/cc:primitive_set",
@@ -18,8 +20,6 @@
     "//third_party/tink/cc/util:status",
     "//third_party/tink/cc/util:statusor",
     "//third_party/tink/proto:tink_proto",
-    "//third_party/abseil-cpp/absl/strings:strings",
   ]
   public_configs = [ "//third_party/tink:tink_config" ]
 }
-
diff --git a/cc/hybrid/BUILD.gn b/cc/hybrid/BUILD.gn
index 39cb4f9..a6d8cc9 100644
--- a/cc/hybrid/BUILD.gn
+++ b/cc/hybrid/BUILD.gn
@@ -4,6 +4,7 @@
 
 # CC Library : hybrid_config
 source_set("hybrid_config") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "hybrid_config.cc",
@@ -14,25 +15,27 @@
     ":ecies_aead_hkdf_public_key_manager",
     ":hybrid_decrypt_wrapper",
     ":hybrid_encrypt_wrapper",
+    "//third_party/abseil-cpp/absl/base:core_headers",
+    "//third_party/abseil-cpp/absl/memory:memory",
     "//third_party/tink/cc:registry",
     "//third_party/tink/cc/aead:aead_config",
     "//third_party/tink/cc/config:config_util",
     "//third_party/tink/cc/util:status",
     "//third_party/tink/proto:config_proto",
-    "//third_party/abseil-cpp/absl/base:core_headers",
-    "//third_party/abseil-cpp/absl/memory:memory",
   ]
   public_configs = [ "//third_party/tink:tink_config" ]
 }
 
 # CC Library : hybrid_decrypt_wrapper
 source_set("hybrid_decrypt_wrapper") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "hybrid_decrypt_wrapper.cc",
     "hybrid_decrypt_wrapper.h",
   ]
   public_deps = [
+    "//third_party/abseil-cpp/absl/strings:strings",
     "//third_party/tink/cc:crypto_format",
     "//third_party/tink/cc:hybrid_decrypt",
     "//third_party/tink/cc:primitive_set",
@@ -41,19 +44,20 @@
     "//third_party/tink/cc/util:status",
     "//third_party/tink/cc/util:statusor",
     "//third_party/tink/proto:tink_proto",
-    "//third_party/abseil-cpp/absl/strings:strings",
   ]
   public_configs = [ "//third_party/tink:tink_config" ]
 }
 
 # CC Library : hybrid_encrypt_wrapper
 source_set("hybrid_encrypt_wrapper") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "hybrid_encrypt_wrapper.cc",
     "hybrid_encrypt_wrapper.h",
   ]
   public_deps = [
+    "//third_party/abseil-cpp/absl/strings:strings",
     "//third_party/tink/cc:crypto_format",
     "//third_party/tink/cc:hybrid_encrypt",
     "//third_party/tink/cc:primitive_set",
@@ -62,13 +66,13 @@
     "//third_party/tink/cc/util:status",
     "//third_party/tink/cc/util:statusor",
     "//third_party/tink/proto:tink_proto",
-    "//third_party/abseil-cpp/absl/strings:strings",
   ]
   public_configs = [ "//third_party/tink:tink_config" ]
 }
 
 # CC Library : hybrid_decrypt_factory
 source_set("hybrid_decrypt_factory") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "hybrid_decrypt_factory.cc",
@@ -76,6 +80,7 @@
   ]
   public_deps = [
     ":hybrid_decrypt_wrapper",
+    "//third_party/abseil-cpp/absl/base:core_headers",
     "//third_party/tink/cc:hybrid_decrypt",
     "//third_party/tink/cc:key_manager",
     "//third_party/tink/cc:keyset_handle",
@@ -83,13 +88,13 @@
     "//third_party/tink/cc:registry",
     "//third_party/tink/cc/util:status",
     "//third_party/tink/cc/util:statusor",
-    "//third_party/abseil-cpp/absl/base:core_headers",
   ]
   public_configs = [ "//third_party/tink:tink_config" ]
 }
 
 # CC Library : hybrid_encrypt_factory
 source_set("hybrid_encrypt_factory") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "hybrid_encrypt_factory.cc",
@@ -97,6 +102,7 @@
   ]
   public_deps = [
     ":hybrid_encrypt_wrapper",
+    "//third_party/abseil-cpp/absl/base:core_headers",
     "//third_party/tink/cc:hybrid_encrypt",
     "//third_party/tink/cc:key_manager",
     "//third_party/tink/cc:keyset_handle",
@@ -104,36 +110,38 @@
     "//third_party/tink/cc:registry",
     "//third_party/tink/cc/util:status",
     "//third_party/tink/cc/util:statusor",
-    "//third_party/abseil-cpp/absl/base:core_headers",
   ]
   public_configs = [ "//third_party/tink:tink_config" ]
 }
 
 # CC Library : hybrid_key_templates
 source_set("hybrid_key_templates") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "hybrid_key_templates.cc",
     "hybrid_key_templates.h",
   ]
   public_deps = [
+    "//third_party/abseil-cpp/absl/strings:strings",
     "//third_party/tink/cc/aead:aead_key_templates",
     "//third_party/tink/proto:common_proto",
     "//third_party/tink/proto:ecies_aead_hkdf_proto",
     "//third_party/tink/proto:tink_proto",
-    "//third_party/abseil-cpp/absl/strings:strings",
   ]
   public_configs = [ "//third_party/tink:tink_config" ]
 }
 
 # CC Library : ecies_aead_hkdf_dem_helper
 source_set("ecies_aead_hkdf_dem_helper") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "ecies_aead_hkdf_dem_helper.cc",
     "ecies_aead_hkdf_dem_helper.h",
   ]
   public_deps = [
+    "//third_party/abseil-cpp/absl/memory:memory",
     "//third_party/tink/cc:aead",
     "//third_party/tink/cc:key_manager",
     "//third_party/tink/cc:registry",
@@ -145,13 +153,13 @@
     "//third_party/tink/proto:common_proto",
     "//third_party/tink/proto:tink_proto",
     "//third_party/tink/proto:xchacha20_poly1305_proto",
-    "//third_party/abseil-cpp/absl/memory:memory",
   ]
   public_configs = [ "//third_party/tink:tink_config" ]
 }
 
 # CC Library : ecies_aead_hkdf_hybrid_decrypt
 source_set("ecies_aead_hkdf_hybrid_decrypt") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "ecies_aead_hkdf_hybrid_decrypt.cc",
@@ -174,6 +182,7 @@
 
 # CC Library : ecies_aead_hkdf_hybrid_encrypt
 source_set("ecies_aead_hkdf_hybrid_encrypt") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "ecies_aead_hkdf_hybrid_encrypt.cc",
@@ -198,6 +207,7 @@
 
 # CC Library : ecies_aead_hkdf_private_key_manager
 source_set("ecies_aead_hkdf_private_key_manager") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "ecies_aead_hkdf_private_key_manager.cc",
@@ -206,10 +216,12 @@
   public_deps = [
     ":ecies_aead_hkdf_hybrid_decrypt",
     ":ecies_aead_hkdf_public_key_manager",
-    "//third_party/tink/cc/core:core/key_type_manager",
-    "//third_party/tink/cc/core:core/private_key_type_manager",
+    "//third_party/abseil-cpp/absl/memory:memory",
+    "//third_party/abseil-cpp/absl/strings:strings",
     "//third_party/tink/cc:hybrid_decrypt",
     "//third_party/tink/cc:key_manager",
+    "//third_party/tink/cc/core:core/key_type_manager",
+    "//third_party/tink/cc/core:core/private_key_type_manager",
     "//third_party/tink/cc/subtle:subtle_util_boringssl",
     "//third_party/tink/cc/util:constants",
     "//third_party/tink/cc/util:enums",
@@ -220,14 +232,13 @@
     "//third_party/tink/cc/util:validation",
     "//third_party/tink/proto:ecies_aead_hkdf_proto",
     "//third_party/tink/proto:tink_proto",
-    "//third_party/abseil-cpp/absl/memory:memory",
-    "//third_party/abseil-cpp/absl/strings:strings",
   ]
   public_configs = [ "//third_party/tink:tink_config" ]
 }
 
 # CC Library : ecies_aead_hkdf_public_key_manager
 source_set("ecies_aead_hkdf_public_key_manager") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "ecies_aead_hkdf_public_key_manager.cc",
@@ -235,10 +246,10 @@
   ]
   public_deps = [
     ":ecies_aead_hkdf_hybrid_encrypt",
-    "//third_party/tink/cc/core:core/key_type_manager",
     "//third_party/tink/cc:hybrid_encrypt",
     "//third_party/tink/cc:key_manager",
     "//third_party/tink/cc:registry",
+    "//third_party/tink/cc/core:core/key_type_manager",
     "//third_party/tink/cc/util:constants",
     "//third_party/tink/cc/util:protobuf_helper",
     "//third_party/tink/cc/util:status",
@@ -249,4 +260,3 @@
   ]
   public_configs = [ "//third_party/tink:tink_config" ]
 }
-
diff --git a/cc/mac/BUILD.gn b/cc/mac/BUILD.gn
index 3b2f381..11ef5a5 100644
--- a/cc/mac/BUILD.gn
+++ b/cc/mac/BUILD.gn
@@ -4,6 +4,7 @@
 
 # CC Library : mac_wrapper
 source_set("mac_wrapper") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "mac_wrapper.cc",
@@ -24,6 +25,7 @@
 
 # CC Library : mac_config
 source_set("mac_config") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "mac_config.cc",
@@ -33,24 +35,25 @@
     ":aes_cmac_key_manager",
     ":hmac_key_manager",
     ":mac_wrapper",
+    "//third_party/abseil-cpp/absl/base:core_headers",
+    "//third_party/abseil-cpp/absl/memory:memory",
     "//third_party/tink/cc:registry",
     "//third_party/tink/cc/config:config_util",
     "//third_party/tink/cc/util:status",
     "//third_party/tink/proto:config_proto",
-    "//third_party/abseil-cpp/absl/base:core_headers",
-    "//third_party/abseil-cpp/absl/memory:memory",
   ]
   public_configs = [ "//third_party/tink:tink_config" ]
 }
 
 # CC Library : aes_cmac_key_manager
 source_set("aes_cmac_key_manager") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [ "aes_cmac_key_manager.h" ]
   public_deps = [
-    "//third_party/tink/cc/core:core/key_type_manager",
     "//third_party/tink/cc:key_manager",
     "//third_party/tink/cc:mac",
+    "//third_party/tink/cc/core:core/key_type_manager",
     "//third_party/tink/cc/subtle:aes_cmac_boringssl",
     "//third_party/tink/cc/subtle:random",
     "//third_party/tink/cc/util:constants",
@@ -69,14 +72,16 @@
 
 # CC Library : hmac_key_manager
 source_set("hmac_key_manager") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "hmac_key_manager.cc",
     "hmac_key_manager.h",
   ]
   public_deps = [
-    "//third_party/tink/cc/core:core/key_type_manager",
+    "//third_party/abseil-cpp/absl/strings:strings",
     "//third_party/tink/cc:mac",
+    "//third_party/tink/cc/core:core/key_type_manager",
     "//third_party/tink/cc/subtle:hmac_boringssl",
     "//third_party/tink/cc/subtle:random",
     "//third_party/tink/cc/util:constants",
@@ -89,8 +94,6 @@
     "//third_party/tink/proto:common_proto",
     "//third_party/tink/proto:hmac_proto",
     "//third_party/tink/proto:tink_proto",
-    "//third_party/abseil-cpp/absl/strings:strings",
   ]
   public_configs = [ "//third_party/tink:tink_config" ]
 }
-
diff --git a/cc/signature/BUILD.gn b/cc/signature/BUILD.gn
index 87b00cf..94da1be 100644
--- a/cc/signature/BUILD.gn
+++ b/cc/signature/BUILD.gn
@@ -4,12 +4,14 @@
 
 # CC Library : public_key_verify_wrapper
 source_set("public_key_verify_wrapper") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "public_key_verify_wrapper.cc",
     "public_key_verify_wrapper.h",
   ]
   public_deps = [
+    "//third_party/abseil-cpp/absl/strings:strings",
     "//third_party/tink/cc:crypto_format",
     "//third_party/tink/cc:primitive_set",
     "//third_party/tink/cc:primitive_wrapper",
@@ -18,19 +20,20 @@
     "//third_party/tink/cc/util:status",
     "//third_party/tink/cc/util:statusor",
     "//third_party/tink/proto:tink_proto",
-    "//third_party/abseil-cpp/absl/strings:strings",
   ]
   public_configs = [ "//third_party/tink:tink_config" ]
 }
 
 # CC Library : public_key_sign_wrapper
 source_set("public_key_sign_wrapper") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "public_key_sign_wrapper.cc",
     "public_key_sign_wrapper.h",
   ]
   public_deps = [
+    "//third_party/abseil-cpp/absl/strings:strings",
     "//third_party/tink/cc:crypto_format",
     "//third_party/tink/cc:primitive_set",
     "//third_party/tink/cc:primitive_wrapper",
@@ -39,8 +42,6 @@
     "//third_party/tink/cc/util:status",
     "//third_party/tink/cc/util:statusor",
     "//third_party/tink/proto:tink_proto",
-    "//third_party/abseil-cpp/absl/strings:strings",
   ]
   public_configs = [ "//third_party/tink:tink_config" ]
 }
-
diff --git a/cc/subtle/BUILD.gn b/cc/subtle/BUILD.gn
index 3a1e15d..589e0aa 100644
--- a/cc/subtle/BUILD.gn
+++ b/cc/subtle/BUILD.gn
@@ -4,6 +4,7 @@
 
 # CC Library : ind_cpa_cipher
 source_set("ind_cpa_cipher") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [ "ind_cpa_cipher.h" ]
   public_deps = [
@@ -15,6 +16,7 @@
 
 # CC Library : ecies_hkdf_recipient_kem_boringssl
 source_set("ecies_hkdf_recipient_kem_boringssl") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "ecies_hkdf_recipient_kem_boringssl.cc",
@@ -36,6 +38,7 @@
 
 # CC Library : ecies_hkdf_sender_kem_boringssl
 source_set("ecies_hkdf_sender_kem_boringssl") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "ecies_hkdf_sender_kem_boringssl.cc",
@@ -56,6 +59,7 @@
 
 # CC Library : ec_util
 source_set("ec_util") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "ec_util.cc",
@@ -75,6 +79,7 @@
 
 # CC Library : hkdf
 source_set("hkdf") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "hkdf.cc",
@@ -94,6 +99,7 @@
 
 # CC Library : aes_cmac_boringssl
 source_set("aes_cmac_boringssl") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "aes_cmac_boringssl.cc",
@@ -114,6 +120,7 @@
 
 # CC Library : hmac_boringssl
 source_set("hmac_boringssl") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "hmac_boringssl.cc",
@@ -134,6 +141,7 @@
 
 # CC Library : aes_gcm_boringssl
 source_set("aes_gcm_boringssl") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "aes_gcm_boringssl.cc",
@@ -155,6 +163,7 @@
 
 # CC Library : aes_eax_boringssl
 source_set("aes_eax_boringssl") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "aes_eax_boringssl.cc",
@@ -175,6 +184,7 @@
 
 # CC Library : encrypt_then_authenticate
 source_set("encrypt_then_authenticate") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "encrypt_then_authenticate.cc",
@@ -196,6 +206,7 @@
 
 # CC Library : aes_ctr_boringssl
 source_set("aes_ctr_boringssl") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "aes_ctr_boringssl.cc",
@@ -217,6 +228,7 @@
 
 # CC Library : random
 source_set("random") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "random.cc",
@@ -228,6 +240,7 @@
 
 # CC Library : xchacha20_poly1305_boringssl
 source_set("xchacha20_poly1305_boringssl") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "xchacha20_poly1305_boringssl.cc",
@@ -249,6 +262,7 @@
 
 # CC Library : aes_gcm_siv_boringssl
 source_set("aes_gcm_siv_boringssl") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "aes_gcm_siv_boringssl.cc",
@@ -269,6 +283,7 @@
 
 # CC Library : common_enums
 source_set("common_enums") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "common_enums.cc",
@@ -280,19 +295,18 @@
 
 # CC Library : subtle_util
 source_set("subtle_util") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "subtle_util.cc",
     "subtle_util.h",
   ]
   public_configs = [ "//third_party/tink:tink_config" ]
-
-  # TODO(fxb/58162): delete the below and fix compiler warnings
-  configs += [ "//build/config:Wno-conversion" ]
 }
 
 # CC Library : subtle_util_boringssl
 source_set("subtle_util_boringssl") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "subtle_util_boringssl.cc",
diff --git a/cc/util/BUILD.gn b/cc/util/BUILD.gn
index 54f3af9..311c225 100644
--- a/cc/util/BUILD.gn
+++ b/cc/util/BUILD.gn
@@ -4,6 +4,7 @@
 
 # CC Library : constants
 source_set("constants") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "constants.cc",
@@ -15,6 +16,7 @@
 
 # CC Library : errors
 source_set("errors") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "errors.cc",
@@ -26,23 +28,25 @@
 
 # CC Library : enums
 source_set("enums") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "enums.cc",
     "enums.h",
   ]
   public_deps = [
+    "//third_party/abseil-cpp/absl/strings:strings",
     "//third_party/tink/cc/subtle:common_enums",
     "//third_party/tink/proto:common_proto",
     "//third_party/tink/proto:ecdsa_proto",
     "//third_party/tink/proto:tink_proto",
-    "//third_party/abseil-cpp/absl/strings:strings",
   ]
   public_configs = [ "//third_party/tink:tink_config" ]
 }
 
 # CC Library : status
 source_set("status") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "status.cc",
@@ -57,6 +61,7 @@
 
 # CC Library : statusor
 source_set("statusor") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "statusor.h",
@@ -68,6 +73,7 @@
 
 # CC Library : validation
 source_set("validation") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [
     "validation.cc",
@@ -83,9 +89,9 @@
 
 # CC Library : protobuf_helper
 source_set("protobuf_helper") {
+  configs += [ "//build/config:no_rtti" ]
   configs -= [ "//build/config:no_rtti" ]
   sources = [ "protobuf_helper.h" ]
   public_deps = [ "//third_party/protobuf:protobuf_lite" ]
   public_configs = [ "//third_party/tink:tink_config" ]
 }
-
diff --git a/tools/convert_for_cobalt b/tools/convert_for_cobalt
index 7f8415c..468e389 100755
--- a/tools/convert_for_cobalt
+++ b/tools/convert_for_cobalt
@@ -36,15 +36,11 @@
 
 
 class RemoveGnListValue(GnListValue):
-
-  def assign(self):
-    return '-='
+  pass
 
 
 class SetGnListValue(GnListValue):
-
-  def assign(self):
-    return '='
+  pass
 
 
 def CMakeTargetNameFromInTreeSpec(spec):
@@ -821,23 +817,25 @@
         repr(value)))
 
   def WriteGnVariable(self, name, value):
-    if isinstance(value, GnListValue):
-      self.WriteGnListVariable(name, value)
+    if isinstance(value, SetGnListValue):
+      self.WriteGnSetListVariable(name, value)
+      return
+    if isinstance(value, RemoveGnListValue):
+      self.WriteGnRemoveListVariable(name, value)
       return
     self.emitnl('{} = {}'.format(name, self.FormatValue(value)))
 
-  def WriteGnListVariable(self, name, value):
+  def WriteGnListVariable(self, name, value, op):
     if len(value) == 0:
       return
 
     if len(value) == 1:
-      single_line = '{} {} [ {} ]'.format(name, value.assign(),
-                                          self.FormatValue(value[0]))
+      single_line = '{} {} [ {} ]'.format(name, op, self.FormatValue(value[0]))
       if len(single_line) <= self._max_line:
         self.emitnl(single_line)
         return
 
-    self.emitnl('{} {} ['.format(name, value.assign()))
+    self.emitnl('{} {} ['.format(name, op))
     self.indent()
 
     for item in value:
@@ -846,6 +844,14 @@
     self.deindent()
     self.emitnl(']')
 
+  def WriteGnSetListVariable(self, name, value):
+    self.WriteGnListVariable(name, value, "=")
+
+  def WriteGnRemoveListVariable(self, name, value):
+    # Add and then remove the variable in case the var wasn't already added
+    self.WriteGnListVariable(name, value, "+=")
+    self.WriteGnListVariable(name, value, "-=")
+
   def WriteGnTarget(self, target_type, name, variables):
     self.emitnl('{}("{}") {{'.format(target_type, name))
     self.indent()