Runtime library conflicts with CMake, and why CMake doesn't respect your options
Starting with CMake 3.15, we get the fantastic CMAKE_MSVC_RUNTIME_LIBRARY. This makes explicit /MD//MDd flags, or equivalent with /MT, unnecessary. However, just having CMake 3.15 or up ain't enough. If you don't bump the minimum version to 3.15. It seems that CMake doesn't just check your current version; the minimum version, for newer versions, acts as a form of compatibility mode. If you set the version to 3.10, CMake acts as if it's 3.