diff options
author | Amitha Perera <perera@cs.rpi.edu> | 2002-11-19 23:01:05 (GMT) |
---|---|---|
committer | Amitha Perera <perera@cs.rpi.edu> | 2002-11-19 23:01:05 (GMT) |
commit | 939035ad91aff5de5a1b514176cd2765a1b9a728 (patch) | |
tree | 9994ce3571301afd9a375bd50eda63603b4de202 /Tests/LinkLineOrder/CMakeLists.txt | |
parent | 7140c6f364c55084d5e581cc7e603032ec4087b9 (diff) | |
download | CMake-939035ad91aff5de5a1b514176cd2765a1b9a728.zip CMake-939035ad91aff5de5a1b514176cd2765a1b9a728.tar.gz CMake-939035ad91aff5de5a1b514176cd2765a1b9a728.tar.bz2 |
BUG: the dependency analysis would incorrectly alphabetically re-order the
link lines, which affects external libraries pulled up from deep within
the dependency tree. Fixed by preserving order everywhere.
Diffstat (limited to 'Tests/LinkLineOrder/CMakeLists.txt')
-rw-r--r-- | Tests/LinkLineOrder/CMakeLists.txt | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/Tests/LinkLineOrder/CMakeLists.txt b/Tests/LinkLineOrder/CMakeLists.txt new file mode 100644 index 0000000..21a5022 --- /dev/null +++ b/Tests/LinkLineOrder/CMakeLists.txt @@ -0,0 +1,36 @@ +PROJECT( LinkLineOrder ) + +# This tests ensures that the order of libraries are preserved when +# they don't have dependency information, even if they are deep in the +# dependency tree. + +# NoDepC depends on NoDepA which depends on NoDepB. NoDepE and NoDepF +# are dependent on each other (recursive dependency). However, CMake +# has no information about these libraries except for the order they +# are specified in One. We must make sure we don't lose that. + +ADD_LIBRARY( NoDepA NoDepA.c ) +ADD_LIBRARY( NoDepB NoDepB.c ) +ADD_LIBRARY( NoDepC NoDepC.c ) +ADD_LIBRARY( NoDepE NoDepE.c ) +ADD_LIBRARY( NoDepF NoDepF.c ) + +ADD_LIBRARY( One One.c ) +TARGET_LINK_LIBRARIES( One NoDepC NoDepA NoDepB NoDepE NoDepF NoDepE ) + +ADD_EXECUTABLE( Exec1 Exec1.c ) +TARGET_LINK_LIBRARIES( Exec1 One ) + + +# Similar situation as One, except at a different level of the +# dependency tree. This makes sure that the order is presevered +# everywhere in the graph. +ADD_LIBRARY( NoDepX NoDepX.c ) +ADD_LIBRARY( NoDepY NoDepY.c ) +ADD_LIBRARY( NoDepZ NoDepZ.c ) + +ADD_LIBRARY( Two Two.c ) +TARGET_LINK_LIBRARIES( Two One NoDepZ NoDepX NoDepY ) + +ADD_EXECUTABLE( Exec2 Exec2.c ) +TARGET_LINK_LIBRARIES( Exec2 Two ) |