include_directories(${CMAKE_CURRENT_BINARY_DIR}) add_library( Two TwoSrc.c ) target_link_libraries( Two Three ) # Setup a target to cause failure if Two does not depend on it or if # Two actually links to it. This will test that a utility dependency # on a library target works properly. add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/two-test.h COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/two-test.h.in ${CMAKE_CURRENT_BINARY_DIR}/two-test.h DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/two-test.h.in ) add_library( TwoCustom TwoCustomSrc.c ${CMAKE_CURRENT_BINARY_DIR}/two-test.h) set_target_properties(TwoCustom PROPERTIES EXCLUDE_FROM_ALL 1) target_link_libraries(TwoCustom Three) # Add a utility dependency to make sure it works without linking. add_dependencies(Two TwoCustom)