• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1file(GLOB snippets_SRCS "*.cpp")
2
3add_custom_target(all_snippets)
4
5foreach(snippet_src ${snippets_SRCS})
6  get_filename_component(snippet ${snippet_src} NAME_WE)
7  set(compile_snippet_target compile_${snippet})
8  set(compile_snippet_src ${compile_snippet_target}.cpp)
9  file(READ ${snippet_src} snippet_source_code)
10  configure_file(${CMAKE_CURRENT_SOURCE_DIR}/compile_snippet.cpp.in
11                 ${CMAKE_CURRENT_BINARY_DIR}/${compile_snippet_src})
12  add_executable(${compile_snippet_target}
13                 ${CMAKE_CURRENT_BINARY_DIR}/${compile_snippet_src})
14  if(EIGEN_STANDARD_LIBRARIES_TO_LINK_TO)
15    target_link_libraries(${compile_snippet_target} ${EIGEN_STANDARD_LIBRARIES_TO_LINK_TO})
16  endif()
17  add_custom_command(
18    TARGET ${compile_snippet_target}
19    POST_BUILD
20    COMMAND ${compile_snippet_target}
21    ARGS >${CMAKE_CURRENT_BINARY_DIR}/${snippet}.out
22  )
23  add_dependencies(all_snippets ${compile_snippet_target})
24  set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/${compile_snippet_src}
25                              PROPERTIES OBJECT_DEPENDS ${snippet_src})
26endforeach(snippet_src)
27