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<---------- Hth Jc On Wed, Nov 13, 2013 at 2:29 PM, David Hauck <dav...@netacquire.com> wrote: > Hi Kornel, > > On Wednesday, November 13, 2013 11:08 AM, cmake-boun...@cmake.org wrote: > > Am Mittwoch, 13. November 2013 um 18:41:03, schrieb David Hauck > > <dav...@netacquire.com> > >> Hi Kornel, > >> > >> On Wednesday, November 13, 2013 10:26 AM, cmake- > > boun...@cmake.org wrote: > >>> Am Mittwoch, 13. November 2013 um 18:12:26, schrieb David Hauck > >>> <dav...@netacquire.com> > >>>> 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 > -- +1 919 869 8849
-- 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