# Build and install library set(HEADERS hello_world_lib.hpp) set(SOURCES hello_world_lib.cpp) add_library(hello_world_lib ${SOURCES}) install(TARGETS hello_world_lib DESTINATION lib) install(FILES ${HEADERS} DESTINATION include) # Build and install user executable add_executable(hello_world hello_world_main.cpp) target_link_libraries(hello_world hello_world_lib) install(TARGETS hello_world DESTINATION bin) # Test the executable add_test(test ${CMAKE_CURRENT_BINARY_DIR}/hello_world) set_tests_properties(test PROPERTIES PASS_REGULAR_EXPRESSION "Hello World") # Build and run some unit tests add_executable(unit_tests hello_world_unit_tests.cpp) target_link_libraries(unit_tests hello_world_lib) add_test(unit_test ${CMAKE_CURRENT_BINARY_DIR}/unit_tests) set_tests_properties(unit_test PROPERTIES PASS_REGULAR_EXPRESSION "All unit tests passed")