The key changes are:
* Using VERBATIM to ensure CMake property passes command-line arguments
to child processes.
* Using the INCLUDE_DIRECTORIES property instead of COMPILE_FLAGS to add
include directories, because COMPILE_FLAGS are treated as space-separated
values. (A small side benefit is that this doesn't rely on -I being
the include directory option.)
In addition, some changes had to be made in order to preserve behavior:
* The _GEN_ARGS_LIST variable has to be inlined, because ARCH_SET is a list,
and therefore the "-DXARCH_SET=..." argument gets split into multiple arguments
(this happens to work by coincidence without VERBATIM). IMO, the code looks
better this way anyway.
* It's no longer necessary to replace spaces in XARCH_SET in
cross_compiled_disp_gen.cmake, because those spaces were an artifact of how
the CMake arguments were passed before.