-add_executable(ping_simulator _ping_simulator.c ping_server.c ping_client.c ping_common.c)
-add_executable(ping_client _ping_client.c ping_client.c ping_common.c)
-add_executable(ping_server _ping_server.c ping_server.c ping_common.c)
+add_executable(ping_simulator ${CMAKE_CURRENT_BINARY_DIR}/_ping_simulator.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/ping_server.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/ping_client.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/ping_common.c)
+add_executable(ping_client ${CMAKE_CURRENT_BINARY_DIR}/_ping_client.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/ping_client.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/ping_common.c)
+add_executable(ping_server ${CMAKE_CURRENT_BINARY_DIR}/_ping_server.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/ping_server.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/ping_common.c)
+add_custom_command(
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/_ping_simulator.c
+ ${CMAKE_CURRENT_BINARY_DIR}/_ping_client.c
+ ${CMAKE_CURRENT_BINARY_DIR}/_ping_server.c
+ DEPENDS gras_stub_generator ${CMAKE_CURRENT_SOURCE_DIR}/ping.xml
+ COMMAND ${CMAKE_BINARY_DIR}/bin/gras_stub_generator ping ${CMAKE_CURRENT_SOURCE_DIR}/ping.xml
+ )