Skip to content
Snippets Groups Projects
Select Git revision
  • 01627d8d916f15388c85b65f4d3970d2ecaee9d6
  • master default protected
2 results

CMakeLists.txt

Blame
  • 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")