cmake_minimum_required(VERSION 3.13)
project(protocan_transport C)

set(CMAKE_C_STANDARD 99)
set(CMAKE_C_STANDARD_REQUIRED ON)

# Ядро библиотеки: платформенных зависимостей нет, собирается под что угодно.
add_library(protocan_transport STATIC
    src/pcan_crc.c
    src/pcan_frame.c
    src/pcan_id.c
    src/pcan_link.c
    src/pcan_ring.c
    src/pcan_gas.c
)

target_include_directories(protocan_transport PUBLIC include)

if(MSVC)
    target_compile_options(protocan_transport PRIVATE /W4)
else()
    target_compile_options(protocan_transport PRIVATE -Wall -Wextra -Wpedantic)
endif()

# Порт ports/stm32f4 сюда не входит: ему нужен CMSIS-заголовок stm32f4xx.h,
# он подключается напрямую в проект прошивки.

option(PCAN_BUILD_TESTS "Собирать тесты" ON)

if(PCAN_BUILD_TESTS)
    enable_testing()
    add_executable(test_transport tests/test_transport.c)
    target_link_libraries(test_transport PRIVATE protocan_transport)
    add_test(NAME transport COMMAND test_transport)
endif()
