cmake_minimum_required(VERSION 3.10) project(TestJenkins VERSION 1.0) # C++ Standard set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) # Enable testing enable_testing() # ----------------------------------------------------------------------------- # Person library # ----------------------------------------------------------------------------- add_library(Person src/Person.cpp ) target_include_directories(Person PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src ) # ----------------------------------------------------------------------------- # Main executable # ----------------------------------------------------------------------------- add_executable(TestJenkins src/TestJenkins.cpp ) target_link_libraries(TestJenkins PRIVATE Person ) # ----------------------------------------------------------------------------- # GoogleTest # ----------------------------------------------------------------------------- include(FetchContent) FetchContent_Declare( googletest URL https://github.com/google/googletest/archive/refs/tags/v1.14.0.zip ) FetchContent_MakeAvailable(googletest) add_executable(UT_Person tests/UT_Person.cpp ) target_link_libraries(UT_Person PRIVATE Person GTest::gtest GTest::gtest_main ) include(GoogleTest) gtest_discover_tests(UT_Person) # Optional: place executables in a common output folder set_target_properties(TestJenkins UT_Person PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin )