Reflect more CI options into properties

This is in preparation for adding a static Android aarch64 FIPS build.

Right now, a builder with "android" and "fips" in the name is
automatically built as a shared library. As the first step to removing
that, specify it explicitly in the existing Android FIPS builder as
"properties". Then I'll remove the corresponding name-parsing bits from
the recipe and add them here.

While I'm here, transcribe the other CMake flags to properties. I think
I've got most of them now.

Change-Id: I08b71a8b91134ad8bb189d5a103eb6db65129ac8
Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/57565
Reviewed-by: Adam Langley <agl@google.com>
diff --git a/generated/cr-buildbucket.cfg b/generated/cr-buildbucket.cfg
index 99bf6f6..509d613 100644
--- a/generated/cr-buildbucket.cfg
+++ b/generated/cr-buildbucket.cfg
@@ -63,7 +63,9 @@
         '  },'
         '  "cmake_args": {'
         '    "ANDROID_ABI": "arm64-v8a",'
-        '    "ANDROID_PLATFORM": "android-21"'
+        '    "ANDROID_PLATFORM": "android-21",'
+        '    "BUILD_SHARED_LIBS": "1",'
+        '    "FIPS": "1"'
         '  },'
         '  "recipe": "boringssl"'
         '}'
@@ -99,7 +101,8 @@
         '  },'
         '  "cmake_args": {'
         '    "ANDROID_ABI": "arm64-v8a",'
-        '    "ANDROID_PLATFORM": "android-21"'
+        '    "ANDROID_PLATFORM": "android-21",'
+        '    "CMAKE_BUILD_TYPE": "Release"'
         '  },'
         '  "recipe": "boringssl"'
         '}'
@@ -174,7 +177,8 @@
         '    "ANDROID_ABI": "armeabi-v7a",'
         '    "ANDROID_ARM_MODE": "arm",'
         '    "ANDROID_ARM_NEON": "FALSE",'
-        '    "ANDROID_PLATFORM": "android-18"'
+        '    "ANDROID_PLATFORM": "android-18",'
+        '    "CMAKE_BUILD_TYPE": "Release"'
         '  },'
         '  "recipe": "boringssl"'
         '}'
@@ -211,7 +215,8 @@
         '  "cmake_args": {'
         '    "ANDROID_ABI": "armeabi-v7a",'
         '    "ANDROID_ARM_NEON": "FALSE",'
-        '    "ANDROID_PLATFORM": "android-18"'
+        '    "ANDROID_PLATFORM": "android-18",'
+        '    "CMAKE_BUILD_TYPE": "Release"'
         '  },'
         '  "recipe": "boringssl"'
         '}'
@@ -366,6 +371,9 @@
         '    "group": "client.boringssl"'
         '  },'
         '  "check_stack": true,'
+        '  "cmake_args": {'
+        '    "BORINGSSL_ALLOW_CXX_RUNTIME": "1"'
+        '  },'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -400,6 +408,13 @@
         '    "group": "client.boringssl"'
         '  },'
         '  "check_stack": true,'
+        '  "cmake_args": {'
+        '    "CMAKE_ASM_FLAGS": "-m32 -msse2",'
+        '    "CMAKE_CXX_FLAGS": "-m32 -msse2",'
+        '    "CMAKE_C_FLAGS": "-m32 -msse2",'
+        '    "CMAKE_SYSTEM_NAME": "Linux",'
+        '    "CMAKE_SYSTEM_PROCESSOR": "x86"'
+        '  },'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -434,6 +449,12 @@
         '    "group": "client.boringssl"'
         '  },'
         '  "cmake_args": {'
+        '    "CMAKE_ASM_FLAGS": "-m32 -msse2",'
+        '    "CMAKE_CXX_FLAGS": "-m32 -msse2",'
+        '    "CMAKE_C_FLAGS": "-m32 -msse2",'
+        '    "CMAKE_SYSTEM_NAME": "Linux",'
+        '    "CMAKE_SYSTEM_PROCESSOR": "x86",'
+        '    "OPENSSL_NO_ASM": "1",'
         '    "OPENSSL_NO_SSE2_FOR_TESTING": "1"'
         '  },'
         '  "recipe": "boringssl"'
@@ -469,6 +490,14 @@
         '  "$gatekeeper": {'
         '    "group": "client.boringssl"'
         '  },'
+        '  "cmake_args": {'
+        '    "CMAKE_ASM_FLAGS": "-m32 -msse2",'
+        '    "CMAKE_BUILD_TYPE": "Release",'
+        '    "CMAKE_CXX_FLAGS": "-m32 -msse2",'
+        '    "CMAKE_C_FLAGS": "-m32 -msse2",'
+        '    "CMAKE_SYSTEM_NAME": "Linux",'
+        '    "CMAKE_SYSTEM_PROCESSOR": "x86"'
+        '  },'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -502,6 +531,14 @@
         '  "$gatekeeper": {'
         '    "group": "client.boringssl"'
         '  },'
+        '  "cmake_args": {'
+        '    "CMAKE_ASM_FLAGS": "-m32 -msse2",'
+        '    "CMAKE_BUILD_TYPE": "RelWithAsserts",'
+        '    "CMAKE_CXX_FLAGS": "-m32 -msse2",'
+        '    "CMAKE_C_FLAGS": "-m32 -msse2",'
+        '    "CMAKE_SYSTEM_NAME": "Linux",'
+        '    "CMAKE_SYSTEM_PROCESSOR": "x86"'
+        '  },'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 3600
@@ -535,6 +572,10 @@
         '  "$gatekeeper": {'
         '    "group": "client.boringssl"'
         '  },'
+        '  "clang": true,'
+        '  "cmake_args": {'
+        '    "CFI": "1"'
+        '  },'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -568,6 +609,10 @@
         '  "$gatekeeper": {'
         '    "group": "client.boringssl"'
         '  },'
+        '  "clang": true,'
+        '  "cmake_args": {'
+        '    "CMAKE_BUILD_TYPE": "Release"'
+        '  },'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -601,6 +646,15 @@
         '  "$gatekeeper": {'
         '    "group": "client.boringssl"'
         '  },'
+        '  "clang": true,'
+        '  "cmake_args": {'
+        '    "CMAKE_BUILD_TYPE": "Release",'
+        '    "MSAN": "1",'
+        '    "USE_CUSTOM_LIBCXX": "1"'
+        '  },'
+        '  "gclient_vars": {'
+        '    "checkout_libcxx": true'
+        '  },'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -634,6 +688,15 @@
         '  "$gatekeeper": {'
         '    "group": "client.boringssl"'
         '  },'
+        '  "clang": true,'
+        '  "cmake_args": {'
+        '    "CMAKE_BUILD_TYPE": "Release",'
+        '    "TSAN": "1",'
+        '    "USE_CUSTOM_LIBCXX": "1"'
+        '  },'
+        '  "gclient_vars": {'
+        '    "checkout_libcxx": true'
+        '  },'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -667,6 +730,9 @@
         '  "$gatekeeper": {'
         '    "group": "client.boringssl"'
         '  },'
+        '  "cmake_args": {'
+        '    "FIPS": "1"'
+        '  },'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -700,6 +766,10 @@
         '  "$gatekeeper": {'
         '    "group": "client.boringssl"'
         '  },'
+        '  "clang": true,'
+        '  "cmake_args": {'
+        '    "FIPS": "1"'
+        '  },'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -733,6 +803,11 @@
         '  "$gatekeeper": {'
         '    "group": "client.boringssl"'
         '  },'
+        '  "clang": true,'
+        '  "cmake_args": {'
+        '    "CMAKE_BUILD_TYPE": "Release",'
+        '    "FIPS": "1"'
+        '  },'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -766,6 +841,12 @@
         '  "$gatekeeper": {'
         '    "group": "client.boringssl"'
         '  },'
+        '  "clang": true,'
+        '  "cmake_args": {'
+        '    "ASAN": "1",'
+        '    "FIPS": "1",'
+        '    "OPENSSL_NO_ASM": "1"'
+        '  },'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -799,6 +880,10 @@
         '  "$gatekeeper": {'
         '    "group": "client.boringssl"'
         '  },'
+        '  "cmake_args": {'
+        '    "CMAKE_BUILD_TYPE": "Release",'
+        '    "FIPS": "1"'
+        '  },'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -832,6 +917,14 @@
         '  "$gatekeeper": {'
         '    "group": "client.boringssl"'
         '  },'
+        '  "clang": true,'
+        '  "cmake_args": {'
+        '    "FUZZ": "1",'
+        '    "LIBFUZZER_FROM_DEPS": "1"'
+        '  },'
+        '  "gclient_vars": {'
+        '    "checkout_fuzzer": true'
+        '  },'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -865,6 +958,11 @@
         '  "$gatekeeper": {'
         '    "group": "client.boringssl"'
         '  },'
+        '  "clang": true,'
+        '  "cmake_args": {'
+        '    "ASAN": "1",'
+        '    "OPENSSL_NO_ASM": "1"'
+        '  },'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -934,6 +1032,10 @@
         '  "$gatekeeper": {'
         '    "group": "client.boringssl"'
         '  },'
+        '  "cmake_args": {'
+        '    "CMAKE_CXX_FLAGS": "-DOPENSSL_NO_THREADS_CORRUPT_MEMORY_AND_LEAK_SECRETS_IF_THREADED=1",'
+        '    "CMAKE_C_FLAGS": "-DOPENSSL_NO_THREADS_CORRUPT_MEMORY_AND_LEAK_SECRETS_IF_THREADED=1"'
+        '  },'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -967,6 +1069,9 @@
         '  "$gatekeeper": {'
         '    "group": "client.boringssl"'
         '  },'
+        '  "cmake_args": {'
+        '    "CMAKE_BUILD_TYPE": "Release"'
+        '  },'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -1000,6 +1105,9 @@
         '  "$gatekeeper": {'
         '    "group": "client.boringssl"'
         '  },'
+        '  "cmake_args": {'
+        '    "CMAKE_BUILD_TYPE": "RelWithAsserts"'
+        '  },'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 3600
@@ -1033,6 +1141,9 @@
         '  "$gatekeeper": {'
         '    "group": "client.boringssl"'
         '  },'
+        '  "cmake_args": {'
+        '    "BUILD_SHARED_LIBS": "1"'
+        '  },'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -1066,6 +1177,10 @@
         '  "$gatekeeper": {'
         '    "group": "client.boringssl"'
         '  },'
+        '  "cmake_args": {'
+        '    "CMAKE_CXX_FLAGS": "-DOPENSSL_SMALL=1",'
+        '    "CMAKE_C_FLAGS": "-DOPENSSL_SMALL=1"'
+        '  },'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -1173,6 +1288,9 @@
         '  "$gatekeeper": {'
         '    "group": "client.boringssl"'
         '  },'
+        '  "cmake_args": {'
+        '    "CMAKE_BUILD_TYPE": "Release"'
+        '  },'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 3600
@@ -1210,6 +1328,10 @@
         '  "$gatekeeper": {'
         '    "group": "client.boringssl"'
         '  },'
+        '  "cmake_args": {'
+        '    "CMAKE_CXX_FLAGS": "-DOPENSSL_SMALL=1",'
+        '    "CMAKE_C_FLAGS": "-DOPENSSL_SMALL=1"'
+        '  },'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 3600
@@ -1247,6 +1369,7 @@
         '  "$gatekeeper": {'
         '    "group": "client.boringssl"'
         '  },'
+        '  "msvc_target": "x86",'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -1284,6 +1407,15 @@
         '  "$gatekeeper": {'
         '    "group": "client.boringssl"'
         '  },'
+        '  "clang": true,'
+        '  "cmake_args": {'
+        '    "CMAKE_ASM_FLAGS": "-m32 -msse2",'
+        '    "CMAKE_CXX_FLAGS": "-m32 -msse2",'
+        '    "CMAKE_C_FLAGS": "-m32 -msse2",'
+        '    "CMAKE_SYSTEM_NAME": "Windows",'
+        '    "CMAKE_SYSTEM_PROCESSOR": "x86"'
+        '  },'
+        '  "msvc_target": "x86",'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -1321,6 +1453,10 @@
         '  "$gatekeeper": {'
         '    "group": "client.boringssl"'
         '  },'
+        '  "cmake_args": {'
+        '    "CMAKE_BUILD_TYPE": "Release"'
+        '  },'
+        '  "msvc_target": "x86",'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -1358,6 +1494,10 @@
         '  "$gatekeeper": {'
         '    "group": "client.boringssl"'
         '  },'
+        '  "cmake_args": {'
+        '    "CMAKE_BUILD_TYPE": "RelWithAsserts"'
+        '  },'
+        '  "msvc_target": "x86",'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 3600
@@ -1395,6 +1535,11 @@
         '  "$gatekeeper": {'
         '    "group": "client.boringssl"'
         '  },'
+        '  "cmake_args": {'
+        '    "CMAKE_CXX_FLAGS": "-DOPENSSL_SMALL=1",'
+        '    "CMAKE_C_FLAGS": "-DOPENSSL_SMALL=1"'
+        '  },'
+        '  "msvc_target": "x86",'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -1435,6 +1580,7 @@
         '  "gclient_vars": {'
         '    "vs_version": "2019"'
         '  },'
+        '  "msvc_target": "x86",'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -1472,6 +1618,7 @@
         '  "$gatekeeper": {'
         '    "group": "client.boringssl"'
         '  },'
+        '  "msvc_target": "x64",'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -1509,6 +1656,8 @@
         '  "$gatekeeper": {'
         '    "group": "client.boringssl"'
         '  },'
+        '  "clang": true,'
+        '  "msvc_target": "x64",'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -1546,6 +1695,10 @@
         '  "$gatekeeper": {'
         '    "group": "client.boringssl"'
         '  },'
+        '  "cmake_args": {'
+        '    "CMAKE_BUILD_TYPE": "Release"'
+        '  },'
+        '  "msvc_target": "x64",'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -1583,6 +1736,10 @@
         '  "$gatekeeper": {'
         '    "group": "client.boringssl"'
         '  },'
+        '  "cmake_args": {'
+        '    "CMAKE_BUILD_TYPE": "RelWithAsserts"'
+        '  },'
+        '  "msvc_target": "x64",'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 3600
@@ -1620,6 +1777,11 @@
         '  "$gatekeeper": {'
         '    "group": "client.boringssl"'
         '  },'
+        '  "cmake_args": {'
+        '    "CMAKE_CXX_FLAGS": "-DOPENSSL_SMALL=1",'
+        '    "CMAKE_C_FLAGS": "-DOPENSSL_SMALL=1"'
+        '  },'
+        '  "msvc_target": "x64",'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -1660,6 +1822,7 @@
         '  "gclient_vars": {'
         '    "vs_version": "2019"'
         '  },'
+        '  "msvc_target": "x64",'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -1815,7 +1978,9 @@
         '{'
         '  "cmake_args": {'
         '    "ANDROID_ABI": "arm64-v8a",'
-        '    "ANDROID_PLATFORM": "android-21"'
+        '    "ANDROID_PLATFORM": "android-21",'
+        '    "BUILD_SHARED_LIBS": "1",'
+        '    "FIPS": "1"'
         '  },'
         '  "recipe": "boringssl"'
         '}'
@@ -1841,7 +2006,9 @@
         '{'
         '  "cmake_args": {'
         '    "ANDROID_ABI": "arm64-v8a",'
-        '    "ANDROID_PLATFORM": "android-21"'
+        '    "ANDROID_PLATFORM": "android-21",'
+        '    "BUILD_SHARED_LIBS": "1",'
+        '    "FIPS": "1"'
         '  },'
         '  "recipe": "boringssl",'
         '  "run_ssl_tests": false,'
@@ -1868,7 +2035,8 @@
         '{'
         '  "cmake_args": {'
         '    "ANDROID_ABI": "arm64-v8a",'
-        '    "ANDROID_PLATFORM": "android-21"'
+        '    "ANDROID_PLATFORM": "android-21",'
+        '    "CMAKE_BUILD_TYPE": "Release"'
         '  },'
         '  "recipe": "boringssl"'
         '}'
@@ -1894,7 +2062,8 @@
         '{'
         '  "cmake_args": {'
         '    "ANDROID_ABI": "arm64-v8a",'
-        '    "ANDROID_PLATFORM": "android-21"'
+        '    "ANDROID_PLATFORM": "android-21",'
+        '    "CMAKE_BUILD_TYPE": "Release"'
         '  },'
         '  "recipe": "boringssl",'
         '  "run_ssl_tests": false,'
@@ -1949,7 +2118,8 @@
         '    "ANDROID_ABI": "armeabi-v7a",'
         '    "ANDROID_ARM_MODE": "arm",'
         '    "ANDROID_ARM_NEON": "FALSE",'
-        '    "ANDROID_PLATFORM": "android-18"'
+        '    "ANDROID_PLATFORM": "android-18",'
+        '    "CMAKE_BUILD_TYPE": "Release"'
         '  },'
         '  "recipe": "boringssl"'
         '}'
@@ -1977,7 +2147,8 @@
         '    "ANDROID_ABI": "armeabi-v7a",'
         '    "ANDROID_ARM_MODE": "arm",'
         '    "ANDROID_ARM_NEON": "FALSE",'
-        '    "ANDROID_PLATFORM": "android-18"'
+        '    "ANDROID_PLATFORM": "android-18",'
+        '    "CMAKE_BUILD_TYPE": "Release"'
         '  },'
         '  "recipe": "boringssl",'
         '  "run_ssl_tests": false,'
@@ -2034,7 +2205,8 @@
         '  "cmake_args": {'
         '    "ANDROID_ABI": "armeabi-v7a",'
         '    "ANDROID_ARM_NEON": "FALSE",'
-        '    "ANDROID_PLATFORM": "android-18"'
+        '    "ANDROID_PLATFORM": "android-18",'
+        '    "CMAKE_BUILD_TYPE": "Release"'
         '  },'
         '  "recipe": "boringssl"'
         '}'
@@ -2061,7 +2233,8 @@
         '  "cmake_args": {'
         '    "ANDROID_ABI": "armeabi-v7a",'
         '    "ANDROID_ARM_NEON": "FALSE",'
-        '    "ANDROID_PLATFORM": "android-18"'
+        '    "ANDROID_PLATFORM": "android-18",'
+        '    "CMAKE_BUILD_TYPE": "Release"'
         '  },'
         '  "recipe": "boringssl",'
         '  "run_ssl_tests": false,'
@@ -2174,6 +2347,9 @@
       properties:
         '{'
         '  "check_stack": true,'
+        '  "cmake_args": {'
+        '    "BORINGSSL_ALLOW_CXX_RUNTIME": "1"'
+        '  },'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -2197,6 +2373,13 @@
       properties:
         '{'
         '  "check_stack": true,'
+        '  "cmake_args": {'
+        '    "CMAKE_ASM_FLAGS": "-m32 -msse2",'
+        '    "CMAKE_CXX_FLAGS": "-m32 -msse2",'
+        '    "CMAKE_C_FLAGS": "-m32 -msse2",'
+        '    "CMAKE_SYSTEM_NAME": "Linux",'
+        '    "CMAKE_SYSTEM_PROCESSOR": "x86"'
+        '  },'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -2220,6 +2403,12 @@
       properties:
         '{'
         '  "cmake_args": {'
+        '    "CMAKE_ASM_FLAGS": "-m32 -msse2",'
+        '    "CMAKE_CXX_FLAGS": "-m32 -msse2",'
+        '    "CMAKE_C_FLAGS": "-m32 -msse2",'
+        '    "CMAKE_SYSTEM_NAME": "Linux",'
+        '    "CMAKE_SYSTEM_PROCESSOR": "x86",'
+        '    "OPENSSL_NO_ASM": "1",'
         '    "OPENSSL_NO_SSE2_FOR_TESTING": "1"'
         '  },'
         '  "recipe": "boringssl"'
@@ -2244,6 +2433,14 @@
       }
       properties:
         '{'
+        '  "cmake_args": {'
+        '    "CMAKE_ASM_FLAGS": "-m32 -msse2",'
+        '    "CMAKE_BUILD_TYPE": "Release",'
+        '    "CMAKE_CXX_FLAGS": "-m32 -msse2",'
+        '    "CMAKE_C_FLAGS": "-m32 -msse2",'
+        '    "CMAKE_SYSTEM_NAME": "Linux",'
+        '    "CMAKE_SYSTEM_PROCESSOR": "x86"'
+        '  },'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -2266,6 +2463,10 @@
       }
       properties:
         '{'
+        '  "clang": true,'
+        '  "cmake_args": {'
+        '    "CFI": "1"'
+        '  },'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -2288,6 +2489,10 @@
       }
       properties:
         '{'
+        '  "clang": true,'
+        '  "cmake_args": {'
+        '    "CMAKE_BUILD_TYPE": "Release"'
+        '  },'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -2310,6 +2515,15 @@
       }
       properties:
         '{'
+        '  "clang": true,'
+        '  "cmake_args": {'
+        '    "CMAKE_BUILD_TYPE": "Release",'
+        '    "MSAN": "1",'
+        '    "USE_CUSTOM_LIBCXX": "1"'
+        '  },'
+        '  "gclient_vars": {'
+        '    "checkout_libcxx": true'
+        '  },'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -2332,6 +2546,15 @@
       }
       properties:
         '{'
+        '  "clang": true,'
+        '  "cmake_args": {'
+        '    "CMAKE_BUILD_TYPE": "Release",'
+        '    "TSAN": "1",'
+        '    "USE_CUSTOM_LIBCXX": "1"'
+        '  },'
+        '  "gclient_vars": {'
+        '    "checkout_libcxx": true'
+        '  },'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -2354,6 +2577,9 @@
       }
       properties:
         '{'
+        '  "cmake_args": {'
+        '    "FIPS": "1"'
+        '  },'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -2376,6 +2602,10 @@
       }
       properties:
         '{'
+        '  "clang": true,'
+        '  "cmake_args": {'
+        '    "FIPS": "1"'
+        '  },'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -2398,6 +2628,11 @@
       }
       properties:
         '{'
+        '  "clang": true,'
+        '  "cmake_args": {'
+        '    "CMAKE_BUILD_TYPE": "Release",'
+        '    "FIPS": "1"'
+        '  },'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -2420,6 +2655,12 @@
       }
       properties:
         '{'
+        '  "clang": true,'
+        '  "cmake_args": {'
+        '    "ASAN": "1",'
+        '    "FIPS": "1",'
+        '    "OPENSSL_NO_ASM": "1"'
+        '  },'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -2442,6 +2683,10 @@
       }
       properties:
         '{'
+        '  "cmake_args": {'
+        '    "CMAKE_BUILD_TYPE": "Release",'
+        '    "FIPS": "1"'
+        '  },'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -2464,6 +2709,14 @@
       }
       properties:
         '{'
+        '  "clang": true,'
+        '  "cmake_args": {'
+        '    "FUZZ": "1",'
+        '    "LIBFUZZER_FROM_DEPS": "1"'
+        '  },'
+        '  "gclient_vars": {'
+        '    "checkout_fuzzer": true'
+        '  },'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -2486,6 +2739,11 @@
       }
       properties:
         '{'
+        '  "clang": true,'
+        '  "cmake_args": {'
+        '    "ASAN": "1",'
+        '    "OPENSSL_NO_ASM": "1"'
+        '  },'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -2533,6 +2791,10 @@
       }
       properties:
         '{'
+        '  "cmake_args": {'
+        '    "CMAKE_CXX_FLAGS": "-DOPENSSL_NO_THREADS_CORRUPT_MEMORY_AND_LEAK_SECRETS_IF_THREADED=1",'
+        '    "CMAKE_C_FLAGS": "-DOPENSSL_NO_THREADS_CORRUPT_MEMORY_AND_LEAK_SECRETS_IF_THREADED=1"'
+        '  },'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -2555,6 +2817,9 @@
       }
       properties:
         '{'
+        '  "cmake_args": {'
+        '    "CMAKE_BUILD_TYPE": "Release"'
+        '  },'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -2577,6 +2842,9 @@
       }
       properties:
         '{'
+        '  "cmake_args": {'
+        '    "BUILD_SHARED_LIBS": "1"'
+        '  },'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -2599,6 +2867,10 @@
       }
       properties:
         '{'
+        '  "cmake_args": {'
+        '    "CMAKE_CXX_FLAGS": "-DOPENSSL_SMALL=1",'
+        '    "CMAKE_C_FLAGS": "-DOPENSSL_SMALL=1"'
+        '  },'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -2673,6 +2945,9 @@
       }
       properties:
         '{'
+        '  "cmake_args": {'
+        '    "CMAKE_BUILD_TYPE": "Release"'
+        '  },'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 3600
@@ -2699,6 +2974,10 @@
       }
       properties:
         '{'
+        '  "cmake_args": {'
+        '    "CMAKE_CXX_FLAGS": "-DOPENSSL_SMALL=1",'
+        '    "CMAKE_C_FLAGS": "-DOPENSSL_SMALL=1"'
+        '  },'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 3600
@@ -2725,6 +3004,7 @@
       }
       properties:
         '{'
+        '  "msvc_target": "x86",'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -2751,6 +3031,15 @@
       }
       properties:
         '{'
+        '  "clang": true,'
+        '  "cmake_args": {'
+        '    "CMAKE_ASM_FLAGS": "-m32 -msse2",'
+        '    "CMAKE_CXX_FLAGS": "-m32 -msse2",'
+        '    "CMAKE_C_FLAGS": "-m32 -msse2",'
+        '    "CMAKE_SYSTEM_NAME": "Windows",'
+        '    "CMAKE_SYSTEM_PROCESSOR": "x86"'
+        '  },'
+        '  "msvc_target": "x86",'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -2777,6 +3066,15 @@
       }
       properties:
         '{'
+        '  "clang": true,'
+        '  "cmake_args": {'
+        '    "CMAKE_ASM_FLAGS": "-m32 -msse2",'
+        '    "CMAKE_CXX_FLAGS": "-m32 -msse2",'
+        '    "CMAKE_C_FLAGS": "-m32 -msse2",'
+        '    "CMAKE_SYSTEM_NAME": "Windows",'
+        '    "CMAKE_SYSTEM_PROCESSOR": "x86"'
+        '  },'
+        '  "msvc_target": "x86",'
         '  "recipe": "boringssl",'
         '  "run_ssl_tests": false,'
         '  "run_unit_tests": false'
@@ -2805,6 +3103,10 @@
       }
       properties:
         '{'
+        '  "cmake_args": {'
+        '    "CMAKE_BUILD_TYPE": "Release"'
+        '  },'
+        '  "msvc_target": "x86",'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -2831,6 +3133,11 @@
       }
       properties:
         '{'
+        '  "cmake_args": {'
+        '    "CMAKE_CXX_FLAGS": "-DOPENSSL_SMALL=1",'
+        '    "CMAKE_C_FLAGS": "-DOPENSSL_SMALL=1"'
+        '  },'
+        '  "msvc_target": "x86",'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -2860,6 +3167,7 @@
         '  "gclient_vars": {'
         '    "vs_version": "2019"'
         '  },'
+        '  "msvc_target": "x86",'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -2889,6 +3197,7 @@
         '  "gclient_vars": {'
         '    "vs_version": "2019"'
         '  },'
+        '  "msvc_target": "x86",'
         '  "recipe": "boringssl",'
         '  "run_ssl_tests": false,'
         '  "run_unit_tests": false'
@@ -2917,6 +3226,7 @@
       }
       properties:
         '{'
+        '  "msvc_target": "x64",'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -2943,6 +3253,8 @@
       }
       properties:
         '{'
+        '  "clang": true,'
+        '  "msvc_target": "x64",'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -2969,6 +3281,8 @@
       }
       properties:
         '{'
+        '  "clang": true,'
+        '  "msvc_target": "x64",'
         '  "recipe": "boringssl",'
         '  "run_ssl_tests": false,'
         '  "run_unit_tests": false'
@@ -2997,6 +3311,10 @@
       }
       properties:
         '{'
+        '  "cmake_args": {'
+        '    "CMAKE_BUILD_TYPE": "Release"'
+        '  },'
+        '  "msvc_target": "x64",'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -3023,6 +3341,11 @@
       }
       properties:
         '{'
+        '  "cmake_args": {'
+        '    "CMAKE_CXX_FLAGS": "-DOPENSSL_SMALL=1",'
+        '    "CMAKE_C_FLAGS": "-DOPENSSL_SMALL=1"'
+        '  },'
+        '  "msvc_target": "x64",'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -3052,6 +3375,7 @@
         '  "gclient_vars": {'
         '    "vs_version": "2019"'
         '  },'
+        '  "msvc_target": "x64",'
         '  "recipe": "boringssl"'
         '}'
       execution_timeout_secs: 1800
@@ -3081,6 +3405,7 @@
         '  "gclient_vars": {'
         '    "vs_version": "2019"'
         '  },'
+        '  "msvc_target": "x64",'
         '  "recipe": "boringssl",'
         '  "run_ssl_tests": false,'
         '  "run_unit_tests": false'
diff --git a/main.star b/main.star
index 6935175..c2fb79b 100755
--- a/main.star
+++ b/main.star
@@ -308,6 +308,7 @@
         "cmake_args": {
             "ANDROID_ABI": "arm64-v8a",
             "ANDROID_PLATFORM": "android-21",
+            "CMAKE_BUILD_TYPE": "Release",
         },
     },
 )
@@ -322,6 +323,9 @@
         "cmake_args": {
             "ANDROID_ABI": "arm64-v8a",
             "ANDROID_PLATFORM": "android-21",
+            # FIPS mode on Android uses shared libraries.
+            "BUILD_SHARED_LIBS": "1",
+            "FIPS": "1",
         },
     },
 )
@@ -357,6 +361,7 @@
             # test coverage, but see https://crbug.com/boringssl/454.
             "ANDROID_ARM_NEON": "FALSE",
             "ANDROID_PLATFORM": "android-18",
+            "CMAKE_BUILD_TYPE": "Release",
         },
     },
 )
@@ -375,6 +380,7 @@
             # test coverage, but see https://crbug.com/boringssl/454.
             "ANDROID_ARM_NEON": "FALSE",
             "ANDROID_PLATFORM": "android-18",
+            "CMAKE_BUILD_TYPE": "Release",
         },
     },
 )
@@ -417,23 +423,77 @@
     LINUX_HOST,
     category = "linux",
     short_name = "dbg",
-    properties = {"check_stack": True},
+    properties = {
+        "check_stack": True,
+        "cmake_args": {
+            # Pick one builder to build with the C++ runtime allowed. The default
+            # configuration does not check pure virtuals
+            "BORINGSSL_ALLOW_CXX_RUNTIME": "1",
+        },
+    },
 )
-both_builders("linux_rel", LINUX_HOST, category = "linux", short_name = "rel")
+both_builders(
+    "linux_rel",
+    LINUX_HOST,
+    category = "linux",
+    short_name = "rel",
+    properties = {
+        "cmake_args": {
+            "CMAKE_BUILD_TYPE": "Release",
+        },
+    },
+)
 both_builders(
     "linux32",
     LINUX_HOST,
     category = "linux|32",
     short_name = "dbg",
-    properties = {"check_stack": True},
+    properties = {
+        "check_stack": True,
+        "cmake_args": {
+            # 32-bit x86 is cross-compiled on the 64-bit bots.
+            "CMAKE_SYSTEM_NAME": "Linux",
+            "CMAKE_SYSTEM_PROCESSOR": "x86",
+            "CMAKE_ASM_FLAGS": "-m32 -msse2",
+            "CMAKE_CXX_FLAGS": "-m32 -msse2",
+            "CMAKE_C_FLAGS": "-m32 -msse2",
+        },
+    },
 )
-both_builders("linux32_rel", LINUX_HOST, category = "linux|32", short_name = "rel")
+both_builders(
+    "linux32_rel",
+    LINUX_HOST,
+    category = "linux|32",
+    short_name = "rel",
+    properties = {
+        "cmake_args": {
+            "CMAKE_BUILD_TYPE": "Release",
+            # 32-bit x86 is cross-compiled on the 64-bit bots.
+            "CMAKE_SYSTEM_NAME": "Linux",
+            "CMAKE_SYSTEM_PROCESSOR": "x86",
+            "CMAKE_ASM_FLAGS": "-m32 -msse2",
+            "CMAKE_C_FLAGS": "-m32 -msse2",
+            "CMAKE_CXX_FLAGS": "-m32 -msse2",
+        },
+    },
+)
 ci_builder(
     "linux32_sde",
     LINUX_HOST,
     category = "linux|32",
     short_name = "sde",
     execution_timeout = SDE_TIMEOUT,
+    properties = {
+        "cmake_args": {
+            "CMAKE_BUILD_TYPE": "RelWithAsserts",
+            # 32-bit x86 is cross-compiled on the 64-bit bots.
+            "CMAKE_SYSTEM_NAME": "Linux",
+            "CMAKE_SYSTEM_PROCESSOR": "x86",
+            "CMAKE_ASM_FLAGS": "-m32 -msse2",
+            "CMAKE_C_FLAGS": "-m32 -msse2",
+            "CMAKE_CXX_FLAGS": "-m32 -msse2",
+        },
+    },
 )
 both_builders(
     "linux32_nosse2_noasm",
@@ -442,7 +502,14 @@
     short_name = "nosse2",
     properties = {
         "cmake_args": {
+            "OPENSSL_NO_ASM": "1",
             "OPENSSL_NO_SSE2_FOR_TESTING": "1",
+            # 32-bit x86 is cross-compiled on the 64-bit bots.
+            "CMAKE_SYSTEM_NAME": "Linux",
+            "CMAKE_SYSTEM_PROCESSOR": "x86",
+            "CMAKE_ASM_FLAGS": "-m32 -msse2",
+            "CMAKE_C_FLAGS": "-m32 -msse2",
+            "CMAKE_CXX_FLAGS": "-m32 -msse2",
         },
     },
 )
@@ -452,18 +519,42 @@
     category = "linux|clang",
     short_name = "cfi",
     cq_enabled = False,
+    properties = {
+        "clang": True,
+        "cmake_args": {
+            "CFI": "1",
+        },
+    },
 )
 both_builders(
     "linux_clang_rel",
     LINUX_HOST,
     category = "linux|clang",
     short_name = "rel",
+    properties = {
+        "clang": True,
+        "cmake_args": {
+            "CMAKE_BUILD_TYPE": "Release",
+        },
+    },
 )
 both_builders(
     "linux_clang_rel_msan",
     LINUX_HOST,
     category = "linux|clang",
     short_name = "msan",
+    properties = {
+        "clang": True,
+        "cmake_args": {
+            # TODO(davidben): Should this be RelWithAsserts?
+            "CMAKE_BUILD_TYPE": "Release",
+            "MSAN": "1",
+            "USE_CUSTOM_LIBCXX": "1",
+        },
+        "gclient_vars": {
+            "checkout_libcxx": True,
+        },
+    },
 )
 both_builders(
     "linux_clang_rel_tsan",
@@ -471,44 +562,122 @@
     category = "linux|clang",
     short_name = "tsan",
     cq_enabled = False,
+    properties = {
+        "clang": True,
+        "cmake_args": {
+            # TODO(davidben): Should this be RelWithAsserts?
+            "CMAKE_BUILD_TYPE": "Release",
+            "TSAN": "1",
+            "USE_CUSTOM_LIBCXX": "1",
+        },
+        "gclient_vars": {
+            "checkout_libcxx": True,
+        },
+    },
 )
-both_builders("linux_fips", LINUX_HOST, category = "linux|fips", short_name = "dbg")
+both_builders(
+    "linux_fips",
+    LINUX_HOST,
+    category = "linux|fips",
+    short_name = "dbg",
+    properties = {
+        "cmake_args": {
+            "FIPS": "1",
+        },
+    },
+)
 both_builders(
     "linux_fips_rel",
     LINUX_HOST,
     category = "linux|fips",
     short_name = "rel",
+    properties = {
+        "cmake_args": {
+            "CMAKE_BUILD_TYPE": "Release",
+            "FIPS": "1",
+        },
+    },
 )
 both_builders(
     "linux_fips_clang",
     LINUX_HOST,
     category = "linux|fips|clang",
     short_name = "dbg",
+    properties = {
+        "clang": True,
+        "cmake_args": {
+            "FIPS": "1",
+        },
+    },
 )
 both_builders(
     "linux_fips_clang_rel",
     LINUX_HOST,
     category = "linux|fips|clang",
     short_name = "rel",
+    properties = {
+        "clang": True,
+        "cmake_args": {
+            "CMAKE_BUILD_TYPE": "Release",
+            "FIPS": "1",
+        },
+    },
 )
 both_builders(
     "linux_fips_noasm_asan",
     LINUX_HOST,
     category = "linux|fips",
     short_name = "asan",
+    properties = {
+        "clang": True,
+        "cmake_args": {
+            "ASAN": "1",
+            "FIPS": "1",
+            "OPENSSL_NO_ASM": "1",
+        },
+    },
 )
-both_builders("linux_fuzz", LINUX_HOST, category = "linux", short_name = "fuzz")
+both_builders(
+    "linux_fuzz",
+    LINUX_HOST,
+    category = "linux",
+    short_name = "fuzz",
+    properties = {
+        "clang": True,
+        "cmake_args": {
+            "FUZZ": "1",
+            "LIBFUZZER_FROM_DEPS": "1",
+        },
+        "gclient_vars": {
+            "checkout_fuzzer": True,
+        },
+    },
+)
 both_builders(
     "linux_noasm_asan",
     LINUX_HOST,
     category = "linux",
     short_name = "asan",
+    properties = {
+        "clang": True,
+        "cmake_args": {
+            "ASAN": "1",
+            "OPENSSL_NO_ASM": "1",
+        },
+    },
 )
+
 both_builders(
     "linux_nothreads",
     LINUX_HOST,
     category = "linux",
     short_name = "not",
+    properties = {
+        "cmake_args": {
+            "CMAKE_C_FLAGS": "-DOPENSSL_NO_THREADS_CORRUPT_MEMORY_AND_LEAK_SECRETS_IF_THREADED=1",
+            "CMAKE_CXX_FLAGS": "-DOPENSSL_NO_THREADS_CORRUPT_MEMORY_AND_LEAK_SECRETS_IF_THREADED=1",
+        },
+    },
 )
 ci_builder(
     "linux_sde",
@@ -516,9 +685,35 @@
     category = "linux",
     short_name = "sde",
     execution_timeout = SDE_TIMEOUT,
+    properties = {
+        "cmake_args": {
+            "CMAKE_BUILD_TYPE": "RelWithAsserts",
+        },
+    },
 )
-both_builders("linux_shared", LINUX_HOST, category = "linux", short_name = "sh")
-both_builders("linux_small", LINUX_HOST, category = "linux", short_name = "sm")
+both_builders(
+    "linux_shared",
+    LINUX_HOST,
+    category = "linux",
+    short_name = "sh",
+    properties = {
+        "cmake_args": {
+            "BUILD_SHARED_LIBS": "1",
+        },
+    },
+)
+both_builders(
+    "linux_small",
+    LINUX_HOST,
+    category = "linux",
+    short_name = "sm",
+    properties = {
+        "cmake_args": {
+            "CMAKE_C_FLAGS": "-DOPENSSL_SMALL=1",
+            "CMAKE_CXX_FLAGS": "-DOPENSSL_SMALL=1",
+        },
+    },
+)
 both_builders(
     "linux_nosse2_noasm",
     LINUX_HOST,
@@ -531,19 +726,77 @@
     },
 )
 both_builders("mac", MAC_X86_64_HOST, category = "mac", short_name = "dbg")
-both_builders("mac_rel", MAC_X86_64_HOST, category = "mac", short_name = "rel")
-both_builders("mac_small", MAC_X86_64_HOST, category = "mac", short_name = "sm")
+both_builders(
+    "mac_rel",
+    MAC_X86_64_HOST,
+    category = "mac",
+    short_name = "rel",
+    properties = {
+        "cmake_args": {
+            "CMAKE_BUILD_TYPE": "Release",
+        },
+    },
+)
+both_builders(
+    "mac_small",
+    MAC_X86_64_HOST,
+    category = "mac",
+    short_name = "sm",
+    properties = {
+        "cmake_args": {
+            "CMAKE_C_FLAGS": "-DOPENSSL_SMALL=1",
+            "CMAKE_CXX_FLAGS": "-DOPENSSL_SMALL=1",
+        },
+    },
+)
 both_builders("mac_arm64", MAC_ARM64_HOST, category = "mac", short_name = "arm64")
-both_builders("win32", WIN_HOST, category = "win|32", short_name = "dbg")
-both_builders("win32_rel", WIN_HOST, category = "win|32", short_name = "rel")
+both_builders(
+    "win32",
+    WIN_HOST,
+    category = "win|32",
+    short_name = "dbg",
+    properties = {
+        "msvc_target": "x86",
+    },
+)
+both_builders(
+    "win32_rel",
+    WIN_HOST,
+    category = "win|32",
+    short_name = "rel",
+    properties = {
+        "cmake_args": {
+            "CMAKE_BUILD_TYPE": "Release",
+        },
+        "msvc_target": "x86",
+    },
+)
 ci_builder(
     "win32_sde",
     WIN_HOST,
     category = "win|32",
     short_name = "sde",
     execution_timeout = SDE_TIMEOUT,
+    properties = {
+        "cmake_args": {
+            "CMAKE_BUILD_TYPE": "RelWithAsserts",
+        },
+        "msvc_target": "x86",
+    },
 )
-both_builders("win32_small", WIN_HOST, category = "win|32", short_name = "sm")
+both_builders(
+    "win32_small",
+    WIN_HOST,
+    category = "win|32",
+    short_name = "sm",
+    properties = {
+        "cmake_args": {
+            "CMAKE_C_FLAGS": "-DOPENSSL_SMALL=1",
+            "CMAKE_CXX_FLAGS": "-DOPENSSL_SMALL=1",
+        },
+        "msvc_target": "x86",
+    },
+)
 
 both_builders(
     "win32_vs2019",
@@ -553,6 +806,7 @@
     cq_compile_only = WIN_HOST,  # Reduce CQ cycle times.
     properties = {
         "gclient_vars": {"vs_version": "2019"},
+        "msvc_target": "x86",
     },
 )
 both_builders(
@@ -561,18 +815,68 @@
     category = "win|32",
     short_name = "clang",
     cq_compile_only = WIN_HOST,  # Reduce CQ cycle times.
+    properties = {
+        "clang": True,
+        "msvc_target": "x86",
+        "cmake_args": {
+            # Clang doesn't pick up 32-bit x86 from msvc_target. Specify it as a
+            # cross-compile.
+            "CMAKE_SYSTEM_NAME": "Windows",
+            "CMAKE_SYSTEM_PROCESSOR": "x86",
+            "CMAKE_ASM_FLAGS": "-m32 -msse2",
+            "CMAKE_C_FLAGS": "-m32 -msse2",
+            "CMAKE_CXX_FLAGS": "-m32 -msse2",
+        },
+    },
 )
 
-both_builders("win64", WIN_HOST, category = "win|64", short_name = "dbg")
-both_builders("win64_rel", WIN_HOST, category = "win|64", short_name = "rel")
+both_builders(
+    "win64",
+    WIN_HOST,
+    category = "win|64",
+    short_name = "dbg",
+    properties = {
+        "msvc_target": "x64",
+    },
+)
+both_builders(
+    "win64_rel",
+    WIN_HOST,
+    category = "win|64",
+    short_name = "rel",
+    properties = {
+        "cmake_args": {
+            "CMAKE_BUILD_TYPE": "Release",
+        },
+        "msvc_target": "x64",
+    },
+)
 ci_builder(
     "win64_sde",
     WIN_HOST,
     category = "win|64",
     short_name = "sde",
     execution_timeout = SDE_TIMEOUT,
+    properties = {
+        "cmake_args": {
+            "CMAKE_BUILD_TYPE": "RelWithAsserts",
+        },
+        "msvc_target": "x64",
+    },
 )
-both_builders("win64_small", WIN_HOST, category = "win|64", short_name = "sm")
+both_builders(
+    "win64_small",
+    WIN_HOST,
+    category = "win|64",
+    short_name = "sm",
+    properties = {
+        "cmake_args": {
+            "CMAKE_C_FLAGS": "-DOPENSSL_SMALL=1",
+            "CMAKE_CXX_FLAGS": "-DOPENSSL_SMALL=1",
+        },
+        "msvc_target": "x64",
+    },
+)
 
 both_builders(
     "win64_vs2019",
@@ -582,6 +886,7 @@
     cq_compile_only = WIN_HOST,  # Reduce CQ cycle times.
     properties = {
         "gclient_vars": {"vs_version": "2019"},
+        "msvc_target": "x64",
     },
 )
 both_builders(
@@ -590,6 +895,10 @@
     category = "win|64",
     short_name = "clg",
     cq_compile_only = WIN_HOST,  # Reduce CQ cycle times.
+    properties = {
+        "clang": True,
+        "msvc_target": "x64",
+    },
 )
 
 both_builders(
@@ -601,11 +910,13 @@
     properties = {
         "clang": True,
         "cmake_args": {
+            # Clang doesn't pick up arm64 from msvc_target. Specify it as a
+            # cross-compile.
             "CMAKE_SYSTEM_NAME": "Windows",
             "CMAKE_SYSTEM_PROCESSOR": "arm64",
             "CMAKE_ASM_FLAGS": "--target=arm64-windows",
-            "CMAKE_CXX_FLAGS": "--target=arm64-windows",
             "CMAKE_C_FLAGS": "--target=arm64-windows",
+            "CMAKE_CXX_FLAGS": "--target=arm64-windows",
         },
         "gclient_vars": {
             "checkout_nasm": False,