Replace our hard-coded default for `/RTC1` with a first-class
abstraction to select runtime checks from an enumeration of logical
names. Add a `MSVC_RUNTIME_CHECKS` target property and corresponding
`CMAKE_MSVC_RUNTIME_CHECKS` variable.
Removing the old default flag requires a policy because existing
projects may rely on string processing to edit them and choose
runtime checks under the old behavior. Add policy CMP0184 to
provide compatibility.
Fixes: #26614
Avoid passing unsupported options to the assembler.
In commit 3166547cf6 (ASM_MARMASM: Add support for Microsoft ARM
assembler language, 2022-10-14, v3.26.0-rc1~383^2) we copied the
assembler command line from `CMakeASM_MASMInformation`, but the
`marmasm` tool does not accept `-D` command-line options.
Issue: #24317
In commit 3166547cf6 (ASM_MARMASM: Add support for Microsoft ARM
assembler language, 2022-10-14) we overlooked populating the runtime
library selection flags for the Microsoft ARM assembler, needed since
commit 0e96a20478 (MSVC: Add abstraction for debug information format,
2022-08-25, v3.25.0-rc1~142^2~1). Its compiler id is `MSVC`, so our
generators expect the table to be populated. It only supports
`Embedded` debug info. Use empty flags for the other formats.
Without this fix, enabling the `ASM_MARMASM` language with policy
`CMP0141` set to `NEW` causes an error due to the missing table entries.
Issue: #24249