[CMake] Creating file with dependencies

Jon Schewe jschewe at bbn.com
Wed Apr 8 15:01:26 EDT 2009


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.

-- 
Jon Schewe | Research Scientist
BBN Technologies | http://www.bbn.com
952-545-5720 - Office
612-210-8818 - Cell



More information about the CMake mailing list