### Setup search paths for headers ## include_directories(${CMAKE_CURRENT_BINARY_DIR}/core) include_directories(${CMAKE_CURRENT_BINARY_DIR}/core/comm) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/core) # We need to control all the protoc import paths to ensure, that all # protoc imports refer to the same root path. Otherwise the generated # protoc headers are not comptabile. SET(PROTOBUF_GENERATE_CPP_APPEND_PATH FALSE) SET(PROTOBUF_IMPORT_DIRS "/usr/include;${CMAKE_CURRENT_SOURCE_DIR}/core/comm" "${CMAKE_CURRENT_BINARY_DIR}/core/comm") # 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 fail-sal fail-cpn fail-efw fail-comm fail-util ${experiment_libraries})