enable_language(CXX)

add_custom_command(OUTPUT generated.cpp
  MAIN_DEPENDENCY a.c
  COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_SOURCE_DIR}/generate-once.cmake ${CMAKE_CURRENT_BINARY_DIR}/generated.cpp
  VERBATIM)

add_executable(exe1 ${CMAKE_CURRENT_BINARY_DIR}/generated.cpp)
add_executable(exe2 ${CMAKE_CURRENT_BINARY_DIR}/generated.cpp)
add_executable(exe3 ${CMAKE_CURRENT_BINARY_DIR}/generated.cpp)

add_dependencies(exe1 exe2)
add_dependencies(exe3 exe1)