James Bigler wrote: > On Wed, Apr 8, 2009 at 1:01 PM, Jon Schewe <[email protected]> wrote: > >> Bill Hoffman wrote: >> >>> Jon Schewe wrote: >>> >>>> I recently started using cmake and find it generally to be a nice tool, >>>> however I'm rather frustrated with it now. Can someone please tell me >>>> how to get cmake to conditionally create a file as part of executing a >>>> target? What I want to do looks like this, but apparently >>>> add_custom_command only can execute shell scripts, so I'm not sure how >>>> one can use these nice commands for writing files. >>>> >>>> >>> custom command can run any program you want?? You can even run cmake >>> -P and run a cmake script. >>> >>>> FUNCTION(build_includes) >>>> FILE(WRITE unit_test_includes.hpp "// Autogenerated - do not edit\n") >>>> FOREACH(test ${TESTS}) >>>> FILE(APPEND unit_test_includes.hpp "#include \"${test}\"\n") >>>> ENDFOREACH(test) >>>> ENDFUNCTION(build_includes) >>>> >>>> >>> Put that in a file mycmake.cmake >>> >>>> ADD_CUSTOM_COMMAND(OUTPUT unit_test_includes.hpp >>>> COMMAND build_includes >>>> DEPENDS ${TESTS} >>>> COMMENT "Building >>>> unit_test_includes.hpp" >>>> ) >>>> >>> Run ${CMAKE_COMMAND} -P mycmake.cmake as the COMMAND for your custom >>> command. >>> >>> >> OK, so I can't put it all in the same file? I'd rather not have people >> needing to chase down multiple files to figure out what's going on. With >> make I can just put any function call inside the body of a target. >> >> > > You can't do that, because the command is run at build time not > configure time. In order to run CMake code at build time you need to > run cmake at build time. Hence Bill's suggestion that you put the > cmake code into a script that cmake processes at build time. > OK, that's fair. I have been equating cmake with make and that's not the case. I need to remember that cmake builds makefiles which are then executed by cmake. So unless cmake translated it's commands all into make (which I suppose it could), then one needs to call cmake again to use these cmake commands.
-- Jon Schewe | Research Scientist BBN Technologies | http://www.bbn.com 952-545-5720 - Office 612-210-8818 - Cell
_______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
