TestJenkins/CMakeLists.txt

70 lines
1.5 KiB
CMake

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
)