cmake: static library dependencies

CMake does not support linker groups, which were used to "automatically"
fix circular dependencies between different static FAIL* libraries and
the ordering of dynamic external libraries broke linking.
CMake can however correctly invoke the linker if dependencies are decribed
correctly (even if circular). This required changing all add_dependencies
calls between libraries to target_link_libraries (which creates a link-time
dependency) and linking all experiments to fail-sal.

Change-Id: I3a0d5dddb9b3d963ef538814e20d6b3de85d4ec5
This commit is contained in:
Florian Lukas
2014-02-18 17:20:21 +01:00
parent 3cf2fa082f
commit 396e00ce59
22 changed files with 33 additions and 13 deletions

View File

@ -45,4 +45,4 @@ set(experiment_libraries "")
foreach(exp_or_plugin ${EXPERIMENTS_ACTIVATED} ${PLUGINS_ACTIVATED})
set(experiment_libraries ${experiment_libraries} fail-${exp_or_plugin})
endforeach(exp_or_plugin)
target_link_libraries(fail -Wl,-start-group fail-sal fail-cpn fail-efw fail-comm fail-util ${experiment_libraries} -Wl,-end-group)
target_link_libraries(fail fail-sal fail-cpn fail-efw fail-comm fail-util ${experiment_libraries})