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
