cmCPackExternalGenerator: ensure JSON is written before running the script First, use `cmGeneratedFileStream` to avoid touching an existing file unless its contents change and to get atomic replacement. Also add a scope to ensure that the file is in place (at `fout`'s destructor) before doing anything with the packaging scripts. See: https://discourse.cmake.org/t/1773