add_custom_command( OUTPUT gen-byproduct gen-byproduct-stamp BYPRODUCTS byproduct COMMAND ${CMAKE_COMMAND} -E touch gen-byproduct-stamp COMMAND ${CMAKE_COMMAND} -E copy_if_different gen-byproduct-stamp byproduct ) set_property(SOURCE gen-byproduct PROPERTY SYMBOLIC 1) add_custom_target(produce DEPENDS gen-byproduct) add_custom_command( OUTPUT use-byproduct DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/byproduct COMMAND ${CMAKE_COMMAND} -E touch use-byproduct ) add_custom_target(drive ALL DEPENDS use-byproduct) add_dependencies(drive produce) file(GENERATE OUTPUT check-$>.cmake CONTENT " if (check_step EQUAL 1) set(check_pairs \"${CMAKE_CURRENT_BINARY_DIR}/use-byproduct|${CMAKE_CURRENT_BINARY_DIR}/gen-byproduct-stamp\" ) else() set(check_pairs \"${CMAKE_CURRENT_BINARY_DIR}/gen-byproduct-stamp|${CMAKE_CURRENT_BINARY_DIR}/use-byproduct\" ) endif() ")