[CMake] Output capturing in MSVC
Michael Wild
themiwi at gmail.com
Tue Apr 26 15:57:29 EDT 2011
On 04/26/2011 02:16 PM, Brad King wrote:
> On 04/26/2011 03:41 AM, Michael Wild wrote:
>> Seems like MSVC (I'm using 9.0) is messing with the standard
>> streams... I put up a simple test project that only calls
>> "dumpbin.exe /?" in a execute_process call. Funny thing is, that if
>> configured from CMake-Gui or command line, the output is captured
>> just fine. However, if I then touch the CMakeLists.txt to force a
>> re-configure from within the IDE, the output is not captured
>> anymore. Further, not all executables seem to be affected. I tried
>> cl.exe (affected), find.exe (works fine) and a simple ANSI-C
>> hello-world program (works fine).
>>
>> @David, @Brad, @MSVC-gurus: Do you have any idea what's going on?
>
> The IDE sets an environment variable "VS_UNICODE_OUTPUT" to a value
> that tells MS tools running from within the IDE where to send their
> output:
>
> http://msdn.microsoft.com/en-us/library/610ecb4h%28v=vs.80%29.aspx
>
> In order to ensure that the tools send the output to their stdout
> instead, one must unset this environment variable. The
> ExternalProject module already does this when running some tools.
>
> -Brad
Thanks for the hint. This works for me now:
install(CODE "
include(BundleUtilities)
set(ENV{VS_UNICODE_OUTPUT}) # <<<< SOMEHOW CREEPS BACK IN >>>>>>
fixup_bundle(\"${APP}\" \"\" \"${DIRS}\")
")
Michael
More information about the CMake
mailing list