CMakeLists.txt 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. include_directories(${CMAKE_HOME_DIRECTORY})
  2. macro(add_code_gen_executable name)
  3. add_executable(${name} ${name}.cpp)
  4. target_link_libraries(${name} yap)
  5. if (clang_on_linux)
  6. target_link_libraries(${name} c++)
  7. endif ()
  8. endmacro()
  9. add_code_gen_executable(code_gen_samples)
  10. add_code_gen_executable(map_assign_code_gen)
  11. add_code_gen_executable(lazy_vector_perf)
  12. macro(add_perf_executable name)
  13. add_executable(${name} ${name}.cpp)
  14. target_link_libraries(${name} yap benchmark)
  15. if (clang_on_linux)
  16. target_link_libraries(${name} c++)
  17. endif ()
  18. endmacro()
  19. add_perf_executable(map_assign_perf)
  20. add_perf_executable(arithmetic_perf)
  21. include(Disassemble)
  22. set(disassemble_dump_targets)
  23. foreach(fun eval_as_cpp_expr eval_as_yap_expr eval_as_cpp_expr_4x eval_as_yap_expr_4x)
  24. disassemble(disassemble.arithmetic_perf.${fun} EXECUTABLE arithmetic_perf FUNCTION ${fun})
  25. disassemble(disassemble.code_gen_samples.${fun} EXECUTABLE code_gen_samples FUNCTION ${fun})
  26. add_custom_target(disass_dump.${fun}
  27. COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} --target disassemble.arithmetic_perf.${fun}
  28. COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} --target disassemble.code_gen_samples.${fun}
  29. )
  30. list(APPEND disassemble_dump_targets disass_dump.${fun})
  31. endforeach()
  32. foreach(fun get_d1_with_yap get_d1_by_hand update_v1_with_yap update_v1_by_hand)
  33. disassemble(disassemble.lazy_vector_perf.${fun} EXECUTABLE lazy_vector_perf FUNCTION ${fun})
  34. add_custom_target(disass_dump.${fun}
  35. COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} --target disassemble.lazy_vector_perf.${fun}
  36. )
  37. list(APPEND disassemble_dump_targets disass_dump.${fun})
  38. endforeach()
  39. add_custom_target(perf
  40. COMMAND map_assign_perf
  41. COMMAND arithmetic_perf
  42. DEPENDS ${disassemble_dump_targets}
  43. )