Наш проект строится с помощью CMake на нескольких платформах, включая Windows, Linux и кросс-компиляцию на некоторых встроенных ОС, описанных с помощью специальных файлов инструментальной цепочки CMake.
В случае кросс-компиляции мы должны поддерживать наборы макросов препроцессора.
Это отражается в CMakeLists.txt
следующим образом.
Файл embedded_os1.toolchain.cmake
set(CMAKE_SYSTEM_NAME Generic)
set(CMAKE_SYSTEM_PROCESSOR ARM)
set(CMAKE_C_COMPILER /path/to/cross-compiler)
# blah-blah-blah
set(embedded_OS1 TRUE)
... и мы есть аналогичные файлы для других встроенных ОС.
Файл CMakeLists.txt
set(CMAKE_EXPORT_COMPILE_COMMANDS 1)
if(embedded_OS1)
add_definitions(-Dmacro1 -Dmacro2)
elseif(embedded_OS2)
add_definitions(-Dmacro3 -Dmacro4)
elseif(embedded_OS3)
add_definitions(-Dmacro1 -Dmacro4)
endif()
Я хотел бы выполнить некоторую автоматическую c проверку правильности установки всех макросов препроцессора.
Я легко могу это сделать с юнит-тестами на Windows и Linux.
Но нет возможности компилировать и запускать исполняемые файлы на встроенных ОС, я могу компилировать только stati c библиотеки, которые затем подписываются, помещают образы прошивки, et c, et c. И все, что у меня есть на P C, кроме библиотеки, - это файл JSON с вызовами компилятора, сгенерированный EXPORT_COMPILE_COMMANDS
.
Что вы могли бы предложить?