try_run should provide 2 separate variables for stdout and stderr output.
I've run into some issues with it when cross-compiling when using mingw and Wine as the CMAKE_CROSSCOMPILING_EMULATOR. Wine likes to print output to stderr and since try_run will log both stdout and stderr into the same variable, it will sometimes confuse some builds that expect a certain output. Of course, it should be possible to completely silence Wine, but it isn't yet. So being able to get only the stdout should be good enough as usually that's what contain parse-able content of interest to the build.