[devel] icewm-3:2.5.0-alt1: Sisyphus/x86_64 test rebuild failed
Dmitriy Khanzhin
dmitriy.khanzhin на gmail.com
Вс Июл 11 21:35:03 MSK 2021
11.07.2021 13:25, Vitaly Lipatov пишет:
> Dmitriy Khanzhin писал 10.7.21 19:55:
>> 10.07.2021 10:20, ALT beekeeper пишет:
>>> Package: icewm-3:2.5.0-alt1
>>> Status: Sisyphus/x86_64 test rebuild failed
>>> URL:
>>> http://git.altlinux.org/beehive/logs/Sisyphus/x86_64/archive/2021/0710/error/icewm-3:2.5.0-alt1
>>>
>>> Cannot build this package.
>>> Please investigate.
>>> Excerpt from build log:
>>>
> ...
>> Здравствуйте, коллеги.
>> Перестал собираться icewm, я подозреваю, после обновления cmake.
>> Что изменилось в сборочной среде, о чем не предупредили?
>> И с чего начинать починку?
>
>
>
> В проекте используется некорректный способ добавления путей к
> заголовочным файлам — их вручную запихивают во флаги, в частности:
> INCLUDE(FindIntl)
> if(Intl_FOUND)
> LIST(APPEND nls_LIBS ${Intl_LIBRARIES})
> LIST(APPEND nls_CFLAGS -I${Intl_INCLUDE_DIRS})
> endif()
>
> ...
> target_compile_options(ice PUBLIC ${icewm_pc_flags})
>
>
> Это взрывается, если Intl_INCLUDE_DIRS пустая или имеет несколько значений.
>
>
> Правильным является использование специального механизма для добавления
> путей:
> target_include_directories(${target_name} PRIVATE ${LIBYUV_INCLUDE_DIRS})
>
> В нашем случае путь оказался пустой, и -I «съела» -o:
> -I/usr/include/fribidi -I -o CMakeFiles/ice.dir/udir.cc.o
>
> В качестве быстрого исправления можно заменить
> if(Intl_FOUND)
> на
> if(Intl_FOUND AND NOT Intl_IS_BUILT_IN)
>
>
Большое спасибо.
Уточняющий вопрос- это поведение появилось в cmake 3.20? Видимо, апстрим
пока не использует его. Постараюсь вникнуть, осознвть и озадачить.
Лирическое отступление: я почти всегда в дороге, работа такая, и времени
на самообразование все меньше. Прошу прощения.
Подробная информация о списке рассылки Devel