- synchro-barrier synchro-mutex synchro-semaphore)
- add_executable (s4u-${example} EXCLUDE_FROM_ALL ${example}/s4u-${example}.cpp)
- add_dependencies (tests s4u-${example})
- target_link_libraries(s4u-${example} simgrid)
- set_target_properties(s4u-${example} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${example})
+ synchro-barrier synchro-condition-variable synchro-mutex synchro-semaphore)
+
+ # Use default source file unless specified otherwise
+ if(NOT DEFINED _${example}_sources)
+ set(_${example}_sources ${example}/s4u-${example}.cpp)
+ endif()
+
+ if(NOT DEFINED _${example}_disable)
+ add_executable (s4u-${example} EXCLUDE_FROM_ALL ${_${example}_sources})
+ add_dependencies (tests s4u-${example})
+ target_link_libraries(s4u-${example} simgrid)
+ set_target_properties(s4u-${example} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${example})
+
+ # Use default factories unless specified otherwise
+ if(NOT DEFINED _${example}_factories)
+ set(_${example}_factories "thread;ucontext;raw;boost")
+ endif()
+# message("Factories of ${example}: ${_${example}_factories}")
+
+ ADD_TESH_FACTORIES(s4u-${example} "${_${example}_factories}"
+ --setenv bindir=${CMAKE_CURRENT_BINARY_DIR}/${example}
+ --setenv platfdir=${CMAKE_HOME_DIRECTORY}/examples/platforms
+ --cd ${CMAKE_CURRENT_SOURCE_DIR}/${example}
+ ${CMAKE_HOME_DIRECTORY}/examples/s4u/${example}/s4u-${example}.tesh)
+ else()
+ message(STATUS "Example ${example} disabled, thus not compiled.")
+ unset(_${example}_disabled)
+ endif()