[devel] cmake_insource и _disable_check
Ilya Kurdyukov
ilyakurdyukov на basealt.ru
Пн Июл 7 11:39:37 MSK 2025
Собираю libopentelemetry для e2k, потому что потребовался в зависимостях.
Компилятор не смог собрать тесты.
Отключаю сборку тестов:
%cmake_insource \
%ifarch %e2k
-DBUILD_TESTING=OFF \
%endif
-DCMAKE_MODULE_PATH=%_libdir/cmake \
Но потом же в спеке есть %check, и он не может найти тесты.
Отключаю тесты по правильному:
%ifarch %e2k
%def_disable check
%endif
...
%cmake_insource \
%if_disabled check
-DBUILD_TESTING=OFF \
%endif
-DCMAKE_MODULE_PATH=%_libdir/cmake \
Внезапно, %cmake_insource перестаёт работать как insource:
+ cd libopentelemetry-1.17.0.25
+ make 'INSTALL=/usr/libexec/rpm-build/install -p' install
DESTDIR=/usr/src/tmp/libopentelemetry-buildroot -C e2kv5-alt-linux
make: Entering directory '/usr/src/RPM/BUILD/libopentelemetry-1.17.0.25'
make: *** e2kv5-alt-linux: No such file or directory. Stop.
Хотя до %if_disabled работал так:
+ cd libopentelemetry-1.17.0.25
+ make 'INSTALL=/usr/libexec/rpm-build/install -p' install
DESTDIR=/usr/src/tmp/libopentelemetry-buildroot -C .
Пробую:
%cmake_insource \
%{?_disable_check:-DBUILD_TESTING=OFF} \
-DCMAKE_MODULE_PATH=%_libdir/cmake \
Опять та же ошибка.
Пробую:
%cmake_insource \
%{?!_enable_check:-DBUILD_TESTING=OFF} \
-DCMAKE_MODULE_PATH=%_libdir/cmake \
Теперь работает.
Объясните что это за магия такая, для меня выглядит как баг.
Подробная информация о списке рассылки Devel