How do I replace the compiler options for one target?

Avoid setting CMAKE_<LANG>_FLAGS, CMAKE_<LANG>_FLAGS_<CONFIG>, CMAKE_<TYPE>_LINKER_FLAGS or CMAKE_<TYPE>_LINKER_FLAGS_<CONFIG> variables in the project. These are for the user to manipulate. For those things, use either the directory or target property manipulation commands like add_compile_options(), add_link_options(), target_compile_options() or target_link_options().

The CMAKE_<LANG>_STANDARD flag is more contentious. Personally, I see that as something the project should set, but some people hold strong views that it should be under the user’s control. I understand the arguments for and against. I think the project can and should set it, but that can be done in a way that the user can still override it if they need to build everything with a higher language standard.

Regarding the use vcpkg and wanting to use your own toolchain file, vcpkg provides the VCPKG_CHAINLOAD_TOOLCHAIN_FILE variable for that. Or you can just include their toolchain file at the bottom of yours. Both methods are supported by vcpkg.