Строгая компиляция (-Werror -Wpedantic) только для файлов моего проекта на esp-idf.C++

Программы на C++. Форум разработчиков
Anonymous
 Строгая компиляция (-Werror -Wpedantic) только для файлов моего проекта на esp-idf.

Сообщение Anonymous »

Я использую этот CMakeLists.txt для создания компонента:

Код: Выделить всё

idf_component_register(SRCS "wifi_manager.cpp"
INCLUDE_DIRS "include"
PRIV_REQUIRES "lwip" "esp_wifi" "log")

# Define strict warning flags for your own source files
set(MY_FLAGS
"-Wall"
"-Wextra"
"-Wpedantic"
"-Werror"
"-Werror=unused-function"
"-Werror=unused-variable"
"-Werror=unused-but-set-variable"
"-Werror=deprecated-declarations"
)

target_compile_options(${COMPONENT_LIB} PRIVATE ${MY_FLAGS})
Но я получаю некоторые ошибки в файлах, включенных в мой проект. Например, сюда входят:

Код: Выделить всё

#include "lwip/sockets.h"
Вызывает эту ошибку:

Код: Выделить всё

/home/adrian/repos/esp-idf/components/lwip/include/lwip/sockets.h:8:2: error: #include_next is a GCC extension [-Werror]
8 | #include_next "lwip/sockets.h"
Я обнаружил, что могу использовать это для подавления ошибок, вызванных -Wpedantic:

Код: Выделить всё

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wpedantic"

#include "esp_wifi.h"

#pragma GCC diagnostic pop
Но я не могу устранить ошибку #include_next. Это не работает:

Код: Выделить всё

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Werror"

#include "lwip/sockets.h"

#pragma GCC diagnostic pop
Кто-нибудь знает, есть ли способ применить эти флаги только к файлам моего проекта?

Подробнее здесь: https://stackoverflow.com/questions/790 ... on-esp-idf

Вернуться в «C++»