Select Git revision
CMakeLists.txt
Stauder, Lucas authored
CMakeLists.txt 1.91 KiB
cmake_minimum_required(VERSION 3.26)
project(Uebung4)
set(CMAKE_CXX_STANDARD 17)
include(CheckLibraryExists)
CHECK_LIBRARY_EXISTS(m sin "" HAVE_LIB_M)
if (HAVE_LIB_M)
set(EXTRA_LIBS ${EXTRA_LIBS} m)
endif (HAVE_LIB_M)
# Fetch Catch2
Include(FetchContent)
FetchContent_Declare(
Catch2
GIT_REPOSITORY https://github.com/catchorg/Catch2.git
GIT_TAG v3.3.2
)
FetchContent_MakeAvailable(Catch2)
# Build Tests
enable_testing()
add_executable(main src/main.cpp
src/string_tools.cpp
src/string_tools.h
src/integrate.cpp
src/integrate.h
src/fillnans.cpp
src/fillnans.h)
add_library(common OBJECT
src/string_tools.cpp
src/string_tools.h
src/integrate.cpp
src/integrate.h
src/fillnans.cpp
src/fillnans.h)
target_link_libraries(main PUBLIC ${EXTRA_LIBS})
target_link_libraries(common PUBLIC ${EXTRA_LIBS})
add_executable(test_string
$<TARGET_OBJECTS:common>
src/string_tools.test.cpp
)
add_executable(test_integrate
$<TARGET_OBJECTS:common>
src/integrate.test.cpp
)
add_executable(test_fillnans
$<TARGET_OBJECTS:common>
src/fillnans.test.cpp
)
target_link_libraries(test_string PRIVATE Catch2::Catch2WithMain)
target_link_libraries(test_integrate PRIVATE Catch2::Catch2WithMain)
target_link_libraries(test_fillnans PRIVATE Catch2::Catch2WithMain)
target_include_directories(test_string PRIVATE src/)
target_include_directories(test_integrate PRIVATE src/)
target_include_directories(test_fillnans PRIVATE src/)
add_test(test_string ./test_string)
add_test(test_integrate ./test_integrate)
add_test(test_fillnans ./test_fillnans)
set_property(TEST test_string PROPERTY ENVIRONMENT "CTEST_OUTPUT_ON_FAILURE=1")
set_property(TEST test_integrate PROPERTY ENVIRONMENT "CTEST_OUTPUT_ON_FAILURE=1")
set_property(TEST test_fillnans PROPERTY ENVIRONMENT "CTEST_OUTPUT_ON_FAILURE=1")