Files
fail/src/CMakeLists.txt
hsc f9c96ddf2d prefix internal libraries to avoid naming conflicts with system libraries
This is a precaution to avoid current and future naming conflicts with
common system libraries.  libutil (part of libc) is the first, but probably
not the last example that already caused trouble twice.

git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1614 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-09-12 07:52:30 +00:00

41 lines
1.9 KiB
CMake

### Setup search paths for headers ##
include_directories(${CMAKE_CURRENT_BINARY_DIR}/core)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/core)
# Note: CMAKE_CURRENT_BINARY_DIR is needed to find "FailConfig.hpp", which
# is generated by CMake from config/FailConfig.hpp.in and stored in
# your build-dir. (The same goes for "FailControlMessage.pb.h", etc.)
# This is done in the "src"-folder because experiments need to include
# Fail* headers as well (see hierarchy of CMakeLists.txt's).
## Add CMakeLists from subdirectories ##
# The Fail* core source files (and it's subdirectories):
add_subdirectory(core)
# Here we add all user-defined experiments (which fills the target list)
add_subdirectory(experiments)
message(STATUS "[${PROJECT_NAME}] Chosen experiment targets:")
foreach(experiment_name ${EXPERIMENTS_ACTIVATED})
message(STATUS "[${PROJECT_NAME}] -> ${experiment_name}")
endforeach(experiment_name)
# Here we add activated plugins
add_subdirectory(plugins)
message(STATUS "[${PROJECT_NAME}] Chosen plugin targets:")
foreach(plugin_name ${PLUGINS_ACTIVATED})
message(STATUS "[${PROJECT_NAME}] -> ${plugin_name}")
endforeach(plugin_name)
# libfail: dummy library that pulls in all other libraries as dependencies
# (probably there's a smarter way to do that with cmake?)
add_library(fail dummy.cc)
## Setup build dependencies of the Fail* lib
## -> the Fail* targets and user defined experiment targets
# start/end-group: ld must iterate over these archives more than once to figure
# out which objects are needed
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 ${experiment_libraries} fail-sal fail-cpn fail-efw fail-comm fail-util -Wl,--end-group)