CMakeLists.txt 861 B

123456789101112131415161718192021222324252627
  1. cmake_minimum_required (VERSION 2.8)
  2. project(LinkInterfaceLoop C)
  3. # Add a shared library that incorrectly names itself as a
  4. # dependency, thus forming a cycle.
  5. add_library(A SHARED IMPORTED)
  6. set_target_properties(A PROPERTIES
  7. IMPORTED_LINK_DEPENDENT_LIBRARIES A
  8. IMPORTED_LOCATION "${CMAKE_CURRENT_BINARY_DIR}/dirA/A"
  9. )
  10. # Add a shared library that incorrectly names itself in
  11. # its link interface, thus forming a cycle.
  12. add_library(B SHARED IMPORTED)
  13. set_target_properties(B PROPERTIES
  14. IMPORTED_LINK_INTERFACE_LIBRARIES B
  15. IMPORTED_LOCATION "${CMAKE_CURRENT_BINARY_DIR}/dirB/B"
  16. )
  17. # Add a shared library with an empty link interface
  18. # that depends on two shared libraries.
  19. add_library(C SHARED lib.c)
  20. set_property(TARGET C PROPERTY LINK_INTERFACE_LIBRARIES "")
  21. target_link_libraries(C B A)
  22. add_executable(main main.c)
  23. target_link_libraries(main C)