In the situation, for example, where a master source tree may be shared among a number of build systems via NFS (each build system needs its own writeable build directory, of course). However, building the Breeze icons needs write access to the source tree for the SVG validation check, which is run in CMAKE_CURRENT_SOURCE_DIR:
[100%] Validating SVG
breezeicons/validate_svg.sh: line 3: xmlerrors: Read-only file system
rm: cannot remove 'xmlerrors': No such file or directory
make[2]: * [CMakeFiles/breeze-validate-svg.dir/build.make:58: CMakeFiles/breeze-validate-svg] Error 1
make[1]: * [CMakeFiles/Makefile2:231: CMakeFiles/breeze-validate-svg.dir/all] Error 2
make: *** [Makefile:130: all] Error 2
This change writes the temporary XML error file to CMAKE_CURRENT_BINARY_DIR, which can be relied on to be writeable.