cmake_minimum_required(VERSION 3.13)
project(set_protocol C)

set(CMAKE_C_STANDARD 99)
set(CMAKE_C_STANDARD_REQUIRED ON)

add_library(set_protocol STATIC
    src/set_protocol.c
    src/set_can.c
    src/set_firmware.c
    src/set_telemetry.c
)

target_include_directories(set_protocol PUBLIC include)

if(MSVC)
    target_compile_options(set_protocol PRIVATE /W4 /WX)
else()
    target_compile_options(set_protocol PRIVATE -Wall -Wextra -Wpedantic -Werror)
endif()

option(SETP_BUILD_TESTS "Build host tests" ON)
if(SETP_BUILD_TESTS)
    enable_testing()
    add_executable(test_set_protocol tests/test_set_protocol.c)
    target_link_libraries(test_set_protocol PRIVATE set_protocol)
    add_test(NAME set_protocol COMMAND test_set_protocol)
endif()
