CMakeLists.txt 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. cmake_minimum_required(VERSION 3.2)
  2. project(TestProject CXX)
  3. include(CTest)
  4. set(SOURCES
  5. main.cpp
  6. 3rdparty/foo.cpp
  7. extra/extra.cpp
  8. )
  9. add_executable(myexecutable ${SOURCES})
  10. set_property(SOURCE main.cpp APPEND PROPERTY LABELS SourceLabel)
  11. set_property(TARGET myexecutable APPEND PROPERTY LABELS TargetLabel)
  12. set(MYEXECUTABLE_INFO_FILE "${CMAKE_CURRENT_BINARY_DIR}/myexecutable_info.cmake")
  13. file(WRITE "${MYEXECUTABLE_INFO_FILE}" "
  14. set(TARGET myexecutable)
  15. set(SOURCE_DIR \"${CMAKE_CURRENT_SOURCE_DIR}\")
  16. set(SOURCES \"${SOURCES}\")
  17. ")
  18. add_custom_command(TARGET myexecutable
  19. POST_BUILD
  20. COMMAND ${CMAKE_COMMAND}
  21. "-DINFO_FILE=${MYEXECUTABLE_INFO_FILE}"
  22. -P "${CMAKE_CURRENT_SOURCE_DIR}/fake_compile_time_gcno.cmake"
  23. VERBATIM
  24. )
  25. add_test(NAME mytest
  26. COMMAND ${CMAKE_COMMAND}
  27. "-DMYEXECUTABLE=$<TARGET_FILE:myexecutable>"
  28. "-DTARGETDIR=${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/myexecutable.dir"
  29. -P "${CMAKE_CURRENT_SOURCE_DIR}/fake_run_time_gcda.cmake"
  30. )
  31. set_property(TEST mytest APPEND PROPERTY LABELS TestLabel)