Best way of adding compiler flags in toolchain

I’m writing a toolchain file to cross-compile and I need to set some compiler flags (e.g. -arch x86_64).
Now I’m wondering what the best way is to add those flags.

It works if I use add_compile_options and add_link_options. There’s also the options to set CMAKE_CXX_FLAGS and CMAKE_EXE_LINKER_FLAGS as cache variables - which I read in this old post.

However, I’ve also seen CMAKE_<LANG>_FLAGS_INIT, which on paper looks like exactly what I want. However, if I do that it seems that it’s completely ignored.

Is there another way, or do I need to do something specific to make the *_INIT options work correctly.