Skip to content
Snippets Groups Projects
CMakeLists.txt 1.52 KiB
Newer Older
  • Learn to ignore specific revisions
  • kongr45gpen's avatar
    kongr45gpen committed
    cmake_minimum_required(VERSION 3.7)
    
    kongr45gpen's avatar
    kongr45gpen committed
    project(ecss_services)
    
    # Set C++ version to c++17
    set(CMAKE_CXX_STANDARD 17)
    
    # Specify the directories for #includes
    
    include_directories("${PROJECT_SOURCE_DIR}/inc" "${PROJECT_SOURCE_DIR}/lib/etl/include")
    
    kongr45gpen's avatar
    kongr45gpen committed
    
    
    add_custom_target(check
            COMMAND ./cppcheck.sh
            COMMAND ./vera.sh
            COMMAND ./clang-tidy.sh
            WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/ci")
    
    
    # Specify the .cpp files common across all targets
    add_library(common OBJECT
    
    kongr45gpen's avatar
    kongr45gpen committed
            src/ErrorHandler.cpp
    
            src/Message.cpp
    
    	    src/MessageParser.cpp
    
    Grigoris Pavlakis's avatar
    Grigoris Pavlakis committed
            src/Helpers/CRCHelper.cpp
    
    kongr45gpen's avatar
    kongr45gpen committed
            src/Helpers/TimeHelper.cpp
    
            src/Services/EventReportService.cpp
    
            src/Services/MemoryManagementService.cpp
            src/Services/ParameterService.cpp
    
            src/Services/RequestVerificationService.cpp
    
            src/Services/TestService.cpp
    
            src/Services/TimeManagementService.cpp
    
        	src/Services/EventActionService.cpp
    
    kongr45gpen's avatar
    kongr45gpen committed
    # Specify the .cpp files for the executables
    
    add_executable(ecss_services
            src/main.cpp
            $<TARGET_OBJECTS:common>
    
    IF (EXISTS "${PROJECT_SOURCE_DIR}/lib/Catch2/CMakeLists.txt")
    
        # Gather all the .cpp files corresponding to tests
    
    kongr45gpen's avatar
    kongr45gpen committed
        file(GLOB test_main_SRC "test/*.cpp")
    
        file(GLOB test_SRC "test/**/*.cpp")
    
    
    thodkatz's avatar
    thodkatz committed
        add_subdirectory(lib/Catch2)
    
        add_executable(tests
                $<TARGET_OBJECTS:common>
    
    kongr45gpen's avatar
    kongr45gpen committed
                ${test_main_SRC}
    
                ${test_SRC}
    
    thodkatz's avatar
    thodkatz committed
        target_link_libraries(tests Catch2::Catch2)