Мой проект переходит на Базэл от CMake и я в том числе снимок спускаться с крутизны на веревке проверив это в third_party/
каталог верхнего уровня в нашем репозитории. Мне нужно поддерживать обе системы сборки во время перехода, поэтому я создал CMakeLists.txt
файлы и заметил, что для компиляции заголовков Abseil необходимо отключить довольно много предупреждений.
Для CMake это нормально, потому что я могу включить заголовки, где я их использую, используя #include <absl/strings/str_cat.h>
синтаксис. Это говорит моему компилятору, что это системный заголовок, и игнорировать предупреждения, поэтому мне не нужно отключать их глобально.
Для Базеля, однако, я получаю эту ошибку:
ошибка: файл ‘absl / strings / str_cat.h’ не найден с помощью include; используйте вместо этого «цитаты»
Есть ли способ сказать Базел, чтобы позволить <>
Стиль включает? Есть ли другой способ отключить предупреждения только для этих заголовков, не отключая их для всего проекта?
По умолчанию bazel не генерирует никаких специфичных для cc-библиотек include (-I
) флаги каталогов для действий компиляции. Поскольку включение поиска не является бесплатным, мы полагаемся на иерархию заголовков с единым корнем. Но вы можете сказать Bazel, чтобы добавить пользовательские каталоги включения с помощью includes
на данный cc_library
, Или, предпочтительно, использовать strip_include_prefix
а также include_prefix
.
Других решений пока нет …