|
|
@@ -107,6 +107,28 @@ public:
|
|
|
"the LINK_INTERFACE_LIBRARIES property. "
|
|
|
"Libraries specified as \"general\" (or without any keyword) are "
|
|
|
"treated as if specified for both \"debug\" and \"optimized\"."
|
|
|
+ "\n"
|
|
|
+ "The library dependency graph is normally acyclic (a DAG), but in the "
|
|
|
+ "case of mutually-dependent STATIC libraries CMake allows the graph "
|
|
|
+ "to contain cycles (strongly connected components). "
|
|
|
+ "When another target links to one of the libraries CMake repeats "
|
|
|
+ "the entire connected component. "
|
|
|
+ "For example, the code\n"
|
|
|
+ " add_library(A STATIC a.c)\n"
|
|
|
+ " add_library(B STATIC b.c)\n"
|
|
|
+ " target_link_libraries(A B)\n"
|
|
|
+ " target_link_libraries(B A)\n"
|
|
|
+ " add_executable(main main.c)\n"
|
|
|
+ " target_link_libraries(main A)\n"
|
|
|
+ "links 'main' to 'A B A B'. "
|
|
|
+ "("
|
|
|
+ "While one repetition is usually sufficient, pathological object "
|
|
|
+ "file and symbol arrangements can require more. "
|
|
|
+ "One may handle such cases by manually repeating the component in "
|
|
|
+ "the last target_link_libraries call. "
|
|
|
+ "However, if two archives are really so interdependent they should "
|
|
|
+ "probably be combined into a single archive."
|
|
|
+ ")"
|
|
|
;
|
|
|
}
|
|
|
|