Hi Jean-christophe,
 
On [email protected]], Jean-Christophe Fillion-Robin wrote:
> Hi David,
> 
> You need to escape the "$" sign otherwise the "_err", "_out" and "_res"
> variables are resolved to an empty string.
> 
> Here is an example of what you could do:
> -------------8<-----------8<----------
> cmake_minimum_required(VERSION 2.8.9)
> 
> install(CODE "execute_process (
>       COMMAND ${CMAKE_COMMAND} -E echo \"Hello\"
>       OUTPUT_VARIABLE _out
>       ERROR_VARIABLE _err
>       RESULT_VARIABLE _res
>       )"
>    )
> install(CODE "message( STATUS \"out: \${_out}, err: \${_err}, res:
> \${_res}...\")") -------------8<-----------8<----------

Aha! This was probably obvious to you and Kornel, but it "escaped" me ;). 
Brilliant, this is working fine now.

Thanks to both of you for your help,
-David
 
> Hth
> Jc
> 
> On Wed, Nov 13, 2013 at 2:29 PM, David Hauck <[email protected]>
> wrote:
>       Hi Kornel,
> 
>       On Wednesday, November 13, 2013 11:08 AM, cmake- [email protected]
> wrote:        > Am Mittwoch, 13. November 2013 um 18:41:03, schrieb David
> Hauck         > <[email protected]>       >> Hi Kornel,   >>      >> On 
> Wednesday,
> November 13, 2013 10:26 AM, cmake-    > [email protected] wrote:      >>> Am
> Mittwoch, 13. November 2013 um 18:12:26, schrieb David Hauck  >>>
> <[email protected]>       >>>> Hello,     >>>>    >>>> I've been using 
> several
> "install (CODE "EXECUTE_PROCESS ...")"        >>>> constructs         >>> in 
> my
> top-level CMakeLists.txt file. However, I've been unable to   >>>
> capture/operate on any exit status of the embedded command.   >>>
> Unfortunately, documentation/searches haven't turned up any useful    >>>
> pointers. The closest I've come is a pointer in the following thread:
>       >>>> http://www.cmake.org/pipermail/cmake/2011- July/045475.html
> However,      >>>> I've not been able to sufficiently read between the lines
> to get        >>>> this working.      >>>>    >>>> Does anyone have any 
> thoughts on
> how to get something like the         >>>> following working:         >>>>    
> >>>>   
> install (CODE "EXECUTE_PROCESS (      >>>>       COMMAND ant ...      >>>>    
>   
> WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/java  >>>>       ERROR_VARIABLE
> _err  >>>     >>> Didn't you mean 'RESULT_VARIABLE' here?     >>      >> No, I
> really do mean ERROR_VARIABLE (unless, of course, this variable       >> does
>       > not include the non-zero exit status of the EXECUTE_PROCESS
> command?).    >       > If you run 'cmake --help-command execute_process', you
> see: ... If   > RESULT_VARIABLE is given the variable will be set to
> contain the   > result of running the processes.  This will be an integer
> return code   > from the last child or a string describing an error
> condition. ... So,    > if this is not "0", then you have an error
> condition.
> 
>       Yes, I see this. I also assumed that the ERROR_VARIABLE would be
> returning non-zero text as well in this case. I will change to using
> RESULT_VARIABLE, but, in both cases, it seems that I'm referencing the
> variable incorrectly (either syntactically or in the incorrect
> context) since this/these is/are always <empty>.
> 
>       >> BTW, I'm still curious about the (dual 'code') construct generally.
>       >> Specifically, if I do the following I never see the fatal error      
> >>
> message (so I'm wondering if there's still something wrong regarding  >>
> the scoping of the message command)?  >>      >>    install (CODE
> "EXECUTE_PROCESS (    >>       COMMAND ant ...        >>       
> WORKING_DIRECTORY
> ${PROJECT_SOURCE_DIR}/java    >>       ERROR_VARIABLE _err    >>    )         
> >>   
> MESSAGE( FATAL_ERROR \"err: ${_err}\")        >       > Never did this. When 
> do you
> want to see the message?
> 
>       Ideally, I want to be able to test for the result of this variable
> (either ERROR_VARIABLE or RESULT_VARIABLE) after the execute_process
> command completes (during 'make install') to determine its result and
> to terminate (with error message) when the command fails.
> 
>       Thanks,
>       -David
> 
>       > As I understand your code, only in call of cmake, e.g. at
> configuration time.
>       >
>       >       Kornel
--

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to