On Tue, Jun 15, 2021 at 08:26:29PM +0300, Mikhail Novosyolov wrote: > > А в чем цель отказа от Unix Makefiles и перехода на cmake --build? cmake сама не собирает и не инсталлирует артефакты, а генерирует файлы для некоторого исполнителя сборочных правил (бекенда, см. cmake-generators(7)). Команда «cmake --build $builddir» не зависит от используемого бекенда, поэтому её можно использовать с любыми бекендами. Никакого «отказа от Unix Makefiles» я не предлагаю, несмотря на тот факт, что make(1) на роль исполнителя генератных сборочных правил годится так себе по ряду причин[*]. Но, если пакет по той или иной причине зависит от некоторого конкретного генератора правил, лучше его явно в спеке передать с -G. > В таблице по ссылке на вики приведено " %makeinstall_std -C BUILD" в качестве рекомендуемого макроса.Вы хотите отказаться отпривязки к BUILD и тут же предлагаете прямо в спек ее прописывать? В таблице в левом столбце описаны разные выражения в старых макросах, которые встречаются (или встречались) в спеках, и аналогичные выражения в новых. Она предназначена для случая, если кому-то неохота или некогда прочесть файл с макросами[1], но хочется понять, что изменилось. > Рассматривался ли вариант cmake --install? Сейчас %cmake_install именно в эту команду и раскрывается и рекомендуется для типичных случаев. Предыдущий %cmake_install был просто бесполезен. > В общем , прочитав тред, не понял, зачем эти изменения. В audacity.spec [1] сейчас так: > > %cmake \ >   -Daudacity_lib_preference:STRING=system \ >   -Daudacity_use_ffmpeg:STRING=linked \ >   -Daudacity_use_lame:STRING=system \ >   -Daudacity_use_libflac:STRING=system \ >   -Daudacity_use_libid3tag:STRING=system \ >   -Daudacity_use_libsndfile:STRING=system \ >   -Daudacity_use_libsoxr:STRING=system \ >   -Daudacity_use_libtwolame:STRING=system \ >   -Daudacity_use_libvamp:STRING=system \ >   -Daudacity_use_libvorbis:STRING=system \ >   -Daudacity_use_libv2:STRING=system \ >   -Daudacity_use_sbsms:STRING=system \ >   -Daudacity_use_soundtouch:STRING=system \ >   -Daudacity_use_portaudio:STRING=local \ >   -Daudacity_use_midi:STRING=local \ >   -DAUDACITY_SUFFIX:STRING="" > > %cmake_build > > %install > %cmakeinstall_std > > Нужно ли здесь что-то менять? Разве что %cmakeinstall_std на %cmake_install. В целом, здесь достаточно тривиальный случай, поэтому и адаптировать ничего не пришлось. Изначально я задумывался о том, чтобы убрать %cmakeinstall_std вообще, но очень много спеков сизифа его используют, а часть из них не сломались после task 269879, как audacity. Поэтому (только после того, как в p9 пройдёт задание 272559) планируется снабдить его %warning-ом и пояснительной надписью и потихоньку вытеснять. [1] http://git.altlinux.org/people/arseny/packages/cmake.git?p=cmake.git;a=blob;f=.gear/cmake.macros;h=e9bc3f055dc25457d2072748e5b7dc5e5b7db812;hb=33e1f9d741a2439266bb2e72c5a763b58ae112f4 [*] JT: Вообще, если адаптировать Unix Haters' handbook к современности, то make(1) будет главным уродом в программе цирка.