[CMake] [cmake-developers] Empty ERROR_VARIABLE in execute_process
Roman Wüger
roman.wueger at gmx.at
Tue May 24 00:09:38 EDT 2016
Ok, thanks Brad.
Hello Qt Mailing list,
First i thought this is a bug in CMake but it has appeared that it seems to be a bug in qmllint:
Here the original question:
when I run qmllint from the command line to test an error I get:
C:\Tests>C:\Qt\5.6\msvc2015\bin\qmllint.exe test.qml
test.qml:1 : Syntax error
C:\Tests>echo %ERRORLEVEL%
-1
C:\Tests>
If I call this from a CMake script
execute_process(COMMAND C:/Qt/5.6/msvc2015/bin/qmllint.exe C:/Tests/test.qml
RESULT_VARIABLE _resVar
OUTPUT_VARIABLE _outVar
ERROR_VARIABLE _errVar
OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_STRIP_TRAILING_WHITESPACE)
message("_resVar: ${_resVar}")
message("_outVar: ${_outVar}")
message("_errVar: ${_errVar}")
The output is:
1> _resVar: -1
1> _outVar:
1> _errVar:
It seems that the error pipe isn’t read correctly, because _errVar is empty.
And hints?
Regards
Roman
> Am 23.05.2016 um 19:33 schrieb Brad King <brad.king at kitware.com>:
>
>> On 05/23/2016 11:34 AM, Roman Wüger wrote:
>> I tried it with CMake 3.5.1 and 3.5.2 and now with the master with
>> the same result. I've attached an example which won't work.
>
> I was able to reproduce it with that, but I also tried this:
>
> add_custom_target(${PROJECT_NAME}-c2
> COMMAND C:/Qt/5.6/msvc2015/bin/qmllint.exe ${CMAKE_CURRENT_SOURCE_DIR}/test.qml
> )
>
> The output does not appear in this case either. No execute_process
> is involved, and qmllint is invoked directly by msbuild. This has
> something to do with qmllint changing output behavior when it is
> executed inside a VS IDE (MSBuild) build.
>
> -Brad
>
More information about the CMake
mailing list