Postpone making custom target until install

A possible solution is to have the make install command invoke the make tgt as a side effect. This can be done by using the CODE signature of the install command:

add_custom_command(OUTPUT somefile)
add_custom_target(tgt DEPENDS somefile)

install(CODE "execute_process(COMMAND \"${CMAKE_COMMAND}\" --build \"${CMAKE_CURRENT_BINARY_DIR}\" --target tgt)")
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/somefile DESTINATION somedir)

The execute_process invokes cmake to build the target tgt before somefile is installed.

Leave a Comment