feat(protocan): добавь общий ABI для GUI
This commit is contained in:
@@ -5,7 +5,8 @@ set(CMAKE_C_STANDARD 99)
|
||||
set(CMAKE_C_STANDARD_REQUIRED ON)
|
||||
|
||||
# Ядро библиотеки: платформенных зависимостей нет, собирается под что угодно.
|
||||
add_library(protocan_transport STATIC
|
||||
set(PCAN_CORE_SOURCES
|
||||
src/pcan_abi.c
|
||||
src/pcan_crc.c
|
||||
src/pcan_frame.c
|
||||
src/pcan_id.c
|
||||
@@ -14,14 +15,36 @@ add_library(protocan_transport STATIC
|
||||
src/pcan_gas.c
|
||||
)
|
||||
|
||||
add_library(protocan_transport STATIC ${PCAN_CORE_SOURCES})
|
||||
|
||||
target_include_directories(protocan_transport PUBLIC include)
|
||||
|
||||
option(PCAN_BUILD_SHARED "Build stable host ABI shared library" ON)
|
||||
if(PCAN_BUILD_SHARED)
|
||||
add_library(setcore SHARED ${PCAN_CORE_SOURCES})
|
||||
target_include_directories(setcore PUBLIC include)
|
||||
target_compile_definitions(setcore PRIVATE PCAN_ABI_BUILD_DLL)
|
||||
set_target_properties(setcore PROPERTIES
|
||||
C_VISIBILITY_PRESET hidden
|
||||
VISIBILITY_INLINES_HIDDEN YES
|
||||
OUTPUT_NAME setcore
|
||||
)
|
||||
endif()
|
||||
|
||||
if(MSVC)
|
||||
target_compile_options(protocan_transport PRIVATE /W4)
|
||||
else()
|
||||
target_compile_options(protocan_transport PRIVATE -Wall -Wextra -Wpedantic)
|
||||
endif()
|
||||
|
||||
if(TARGET setcore)
|
||||
if(MSVC)
|
||||
target_compile_options(setcore PRIVATE /W4)
|
||||
else()
|
||||
target_compile_options(setcore PRIVATE -Wall -Wextra -Wpedantic)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Порт ports/stm32f4 сюда не входит: ему нужен CMSIS-заголовок stm32f4xx.h,
|
||||
# он подключается напрямую в проект прошивки.
|
||||
|
||||
@@ -32,4 +55,7 @@ if(PCAN_BUILD_TESTS)
|
||||
add_executable(test_transport tests/test_transport.c)
|
||||
target_link_libraries(test_transport PRIVATE protocan_transport)
|
||||
add_test(NAME transport COMMAND test_transport)
|
||||
add_executable(test_abi tests/test_abi.c)
|
||||
target_link_libraries(test_abi PRIVATE protocan_transport)
|
||||
add_test(NAME abi COMMAND test_abi)
|
||||
endif()
|
||||
|
||||
Reference in New Issue
Block a user