file(GLOB_RECURSE EX_SRC_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp) foreach(EX_SRC_FILE ${EX_SRC_FILES}) file(RELATIVE_PATH REL_EX_SRC_FILE ${CMAKE_CURRENT_SOURCE_DIR} ${EX_SRC_FILE}) string(REPLACE ".cpp" "" EX_SRC_FILE_BASE ${REL_EX_SRC_FILE}) set(TARGET_NAME "macros_${EX_SRC_FILE_BASE}") add_executable(${TARGET_NAME} ${EX_SRC_FILE}) target_link_libraries(${TARGET_NAME} example_common_config) add_custom_command( TARGET ${TARGET_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different ${INPUT_YAML_PATH} $ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${INPUT_MULTI_YAML_PATH} $ COMMAND $ > ${CMAKE_CURRENT_SOURCE_DIR}/${EX_SRC_FILE_BASE}.output WORKING_DIRECTORY $ ) endforeach()