The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Выпуск сборочной системы Meson 0.51"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Выпуск сборочной системы Meson 0.51"  +/
Сообщение от opennews (??), 17-Июн-19, 10:20 
Опубликован (https://groups.google.com/forum/#!topic/mesonbuild/5kU9ILjXWPk) релиз сборочной системы Meson 0.51 (http://mesonbuild.com/), которая используется для сборки таких проектов, как X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME и GTK+. Код Meson написан на языке Python и поставляется (https://github.com/mesonbuild/meson) под лицензией Apache 2.0.

Ключевой целью развития Meson  является обеспечение высокой скорости сборочного процесса в сочетании с  удобством и простотой использования. Вместо утилиты make при сборке по умолчанию применяется инструментарий Ninja (https://www.opennet.me/opennews/art.shtml?num=29525), но возможно применение и других бэкендов, таких как xcode и VisualStudio. В систему встроен многоплатформенный обработчик зависимостей, позволяющий использовать Meson для сборки пакетов для дистрибутивов. Правила сборки задаются на упрощённом предметно-ориентированном языке,  отличаются хорошей читаемостью и понятны пользователю (по задумке авторов разработчик должен тратить минимум времени на написание правил).


Поддерживается кросс-компиляция и сборка в Linux, macOS и Windows с использованием GCC, Clang, Visual Studio и других компиляторов. Возможна сборка проектов на различных языках программирования, включая C, C++, Fortran, Java и Rust. Поддерживается инкрементальный режим сборки, при котором пересобираются только компоненты, напрямую связанные с изменениями, внесёнными с момента прошлой сборки. Meson можно использовать для формирования повторяемых сборок, при которых запуск сборки в разных окружениях приводит к генерации полностью идентичных исполняемых файлов.

Основные новшества (https://mesonbuild.com/Release-notes-for-0-51-0.html)  Meson 0.51:


-  Добавлена поддержка прозрачной сборки существующих проектов, в которых используются сборочные сценарии CMake. Meson теперь напрямую может собирать простые субпроекты (такие как одиночные библиотеки) с использованием модуля  CMake  по аналогии со штатными субпроектами (в том числе субпроекты на CMake могут размещаться в каталоге subprojects );

-  Для всех применяемых компиляторов включено предварительное тестирование через сборку и исполнение простейших тестовых файлов (sanity check), не ограничиваясь тестированием указанных пользователем флагов для кросс-компиляторов (отныне проверяются и родные для текущей платформы компиляторы).

-  Добавлена возможность определения опций командной строки, применяемых при кросс-компиляции, с привязкой через задание префикса платформы перед опцией. Ранее опции командной строки охватывали только сборку для родной платформы и не могли указываться для кросс-компиляции. Теперь  опции командной строки применяются независимо от того осуществляется нативная сборка или кросс-компиляция, гарантируя, что для нативных и кросс-сборок будет получен идентичный результат;

-  Добавлена возможность указания флага "--cross-file" более одного раза в командной строке для перечисления нескольких cross-файлов;

-  Добавлена поддержка компилятора ICL (Intel C/C++ Compiler) для платформы Windows (ICL.EXE и ifort);
-  Добавлена начальная поддержка инструментария для CPU Xtensa (xt-xcc, xt-xc++, xt-nm);

-  В объект "dependency" добавлен метод "get_variable", позволяющий получить значение переменной без учёта типа текущей зависимости (например, dep.get_variable(pkg-config : 'var-name', cmake : 'COP_VAR_NAME));

-  Добавлен новый аргумент параметров целевой сборки - "link_language" для явного определения языка, используемого при вызове компоновщика. Например, основная программа на Fortran, может вызывать код на C/C++, что приведёт к автоматическому выбору C/C++, в том время как нужно использовать компоновщик от Fortran;

-  Изменена обработка флагов препроцессора CPPFLAGS. Если раньше Meson  отдельно сохранял CPPFLAGS  и специфичные для языков флаги компиляции (CFLAGS, CXXFLAGS), то теперь они обрабатываются нераздельно и перечисленные в CPPFLAGS флаги применяются как ещё один источник флагов компиляции для языков, которые их поддерживают;

-  Вывод custom_target и custom_target[i] теперь может использоваться в качестве аргументов в операциях link_with и link_whole;

-  В генераторах добавлена возможность задания дополнительных зависимостей при помощи опции "depends" (например,  generator(program_runner, output: ['@BASENAME@.c'], depends: exe));

-  В find_library добавлена опция static для охвата поиском только статически связанных библиотек;
-  Для python.find_installation добавлена возможность определения наличия заданного Python-модуля для конкретной версии Python;

-  Добавлен новый модуль unstable-kconfig для разбора файлов kconfig;

-  Добавлена новая команда "subprojects foreach", принимающая команду с аргументами и запускающая её во всех каталогах субпроектов;

URL: https://groups.google.com/forum/#!topic/mesonbuild/5kU9ILjXWPk
Новость: https://www.opennet.me/opennews/art.shtml?num=50882

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]

Часть нити удалена модератором

9. "Выпуск сборочной системы Meson 0.51"  –4 +/
Сообщение от Аноним (9), 17-Июн-19, 12:14 
Gn — это интерпритатор неких скриптов, не знающих ничего ни о компиляторах, ни о флагах, ни о размещении либ. Вся эта информация хранится в скриптах, которые лежат внутри Хромиума. Хочешь собрать Хелло Ворлд, выкачивай исходники всего Хромиума. А потом еще и постоянно отслеживай, чтобы гугловцы ничего не ломали в этих скриптах, они то ничего не знают о твоем проекте и никому не гарантируют неизменность своих скриптов.

О да, лучшая сборочная система.

Ответить | Правка | Наверх | Cообщить модератору

22. "Выпуск сборочной системы Meson 0.51"  +2 +/
Сообщение от Аноним (22), 17-Июн-19, 13:21 
> Хочешь собрать Хелло Ворлд, выкачивай исходники всего Хромиума

Бред какой-то несешь. Каноничный и полный хелловорлд приводится самим же гуглом вот тут:

https://gn.googlesource.com/gn/+/master/tools/gn/example

> А потом еще и постоянно отслеживай, чтобы гугловцы ничего не ломали в этих скриптах

Как гугловцы поломают что-то в моих же скриптах? Опять-таки, в тебе говорит незнание матчасти и убежденность, будто нужны полные исходники хромиума. GN сам по себе минимален, все остальное (включая поддержку pkgconfig и тому подобное) лежит в дереве исходников хромиума. Копируй их себе в проект, удаляй всё, что тебе не надо, подправляй остальное под свои нужды, и всё -- ты независим от гугла.

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

34. "Выпуск сборочной системы Meson 0.51"  –1 +/
Сообщение от Аноним (34), 17-Июн-19, 18:33 
А можно было бы включить наиболее востребованные скрипты в дистрибутив и поддерживать в них обратную совместимость… Хотя стоп, это же cmake получится.
Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору

41. "Выпуск сборочной системы Meson 0.51"  –1 +/
Сообщение от Аноним (22), 17-Июн-19, 20:42 
Можно конечно. Я вообще разработчикам предлагал в GN засунуть не только востребованные скрипты, но и анализатор уязвимых зависимостей (как в гитхабе), автогенератор пакетов NPM, RPM, YPM, DEB, NIX, PIP, а еще аудиоплеер, чтоб программировать было веселее, подтягивание музыки по GEO-IP (для России например подтянется альбом Михаила Круга), ну и еще связку журнала "Огонек" за прошлый год.

А разрабы не поняли и сказали, что это противоречит принципу "делай что-то одно, но делай это хорошо". Сказали, что оглядываются на RPM, - макросы для пихона и тому подобных штукенций разрабатываются (с точки зрения RPM) third-party-лицами -- федорой и прочими дистрами. RPM чисто предоставляет механизм (как и GN), а уж решение, как пакетировать (оформлять сборку GN) принимается на конечных местах.

# dnf provides /usr/lib/rpm/macros
rpm-4.14.2.1-4.fc30.1.x86_64 : The RPM package management system

# dnf provides /usr/lib/rpm/macros.d/macros.systemd
systemd-rpm-macros-241-7.gita2eaa1c.fc30.noarch : Macros that define paths and scriptlets related to systemd

Ответить | Правка | ^ к родителю #34 | Наверх | Cообщить модератору

56. "Выпуск сборочной системы Meson 0.51"  +/
Сообщение от Аноним (34), 18-Июн-19, 10:30 
Во-первых, не надо передёргивать. Во-вторых, с rpm-макросами всё обстоит точно так же, как с модулями cmake: наиболее востребованные идут в комплекте, специфические поставляются вместе с соответствующим софтом.
Ответить | Правка | ^ к родителю #41 | Наверх | Cообщить модератору

4. "Выпуск сборочной системы Meson 0.51"  –2 +/
Сообщение от menangenemail (?), 17-Июн-19, 10:50 
Пробовал, понравилась эта система сборки, но на продакшен так и не попала ни в одном проекте, увы. Её бы переписать на Go в один бинарник, это было бы интересно...
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "Выпуск сборочной системы Meson 0.51"  +1 +/
Сообщение от Аноним (5), 17-Июн-19, 11:10 
помню, как тут все плевались с этого мезона. "Нинужно" и т.п.

а сейчас ничего - все пользуются

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

7. "Выпуск сборочной системы Meson 0.51"  –2 +/
Сообщение от Аноним (7), 17-Июн-19, 11:41 
Кто - все? Питон обязателен - значит "нeнужно". Я ещё не совсем спятил, чтобы заставлять пользователей ставить питон и зависимые либы только ради мезона.
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

10. "Выпуск сборочной системы Meson 0.51"  +/
Сообщение от IRASoldier_registered (ok), 17-Июн-19, 12:20 
>Питон обязателен - значит "нeнужно"

Господи, ну считайте, что Python это just another ***sh. Башем-то пользуетесь, и не паритесь, что он установлен, ну вот и с Пайтоном так же кто мешает?

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

13. "Выпуск сборочной системы Meson 0.51"  –4 +/
Сообщение от Аноним (13), 17-Июн-19, 12:34 
> ну считайте, что Python это just another ***sh.

Вот только не надо про то, что это shall. В Bash я могу быть уверен (как максимум, в двух ветвях - полноценный линукс или busybox). А в питонах, где ни запустишь, ловишь дичь какую-то из-за несовместимостей версий. Язык должен быть железным как bash или Ruby. Или, сразу, бинарный код.

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

14. "Выпуск сборочной системы Meson 0.51"  +2 +/
Сообщение от IRASoldier_registered (ok), 17-Июн-19, 12:37 
>или Ruby

Вот не в курсе, что там у рубистов - у Ruby разве нет проблем с совместимостью версий? Или врут хейтеры, собаки?

Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

19. "Выпуск сборочной системы Meson 0.51"  +1 +/
Сообщение от Аноним (-), 17-Июн-19, 12:52 
>  у Ruby разве нет проблем с совместимостью версий

куда больше, чем у питона, вы с сумашедшим общаетесь, если он этого не осознает

Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

24. "Выпуск сборочной системы Meson 0.51"  –1 +/
Сообщение от Аноним (-), 17-Июн-19, 13:52 
>  у Ruby разве нет проблем с совместимостью версий? Или врут хейтеры, собаки?

Довольно редко. Обычно раз в 5-10 лет это происходит. Да и то, по мелочам.

Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

18. "Выпуск сборочной системы Meson 0.51"  +/
Сообщение от Аноним (34), 17-Июн-19, 12:46 
> В Bash я могу быть уверен (как максимум, в двух ветвях - полноценный линукс или busybox).

В busybox нет bash, там ash. В минимальных установках ряда дистрибутивов тоже может не быть bash.

Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

27. "Выпуск сборочной системы Meson 0.51"  +/
Сообщение от Пони (?), 17-Июн-19, 16:10 
Удачи с обновлением скриптов на баш 5.
Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

32. "Выпуск сборочной системы Meson 0.51"  +/
Сообщение от Аноним (32), 17-Июн-19, 17:39 
> В Bash я могу быть уверен

Ааааага. Давайте ка вы будете уверены в sh. А вот его жирненький дружочек bash таки разный от дистра к дистру. Где-то есть, где лежит не в том каком-то месте, а где-то его и нет (и это нормально).

Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

16. "Выпуск сборочной системы Meson 0.51"  +2 +/
Сообщение от Аноним (34), 17-Июн-19, 12:44 
> Башем-то пользуетесь, и не паритесь, что он установлен

Когда надо — паримся и пишем на POSIX shell.

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

23. "Выпуск сборочной системы Meson 0.51"  +1 +/
Сообщение от freehckemail (ok), 17-Июн-19, 13:48 
> Господи, ну считайте, что Python это just another ***sh. Башем-то пользуетесь, и не паритесь, что он установлен, ну вот и с Пайтоном так же кто мешает?

Да, потому что shell для административных задач -- куда более удобный инструмент. shell-скрипты меньше по объёму и как правило более-менее хорошо написаны, в то время как любой python-скрипт огромен по размеру и склонен быть глюкодромом. И по-видимому, весьма много людей так или иначе столкнулись с плохим поведением python и хорошим поведением shell.

Это, безусловно, субъективный опыт. Если хотите, мы можем поспорить на тему python vs shell, и в процессе составить табличку плюсов и минусов. Это будет хорошая замашка на объективность.

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

26. "Выпуск сборочной системы Meson 0.51"  +/
Сообщение от Gvd57uvx4 (?), 17-Июн-19, 15:28 
Для себя взял за правило вотэтовот >>>

Bash использую до 40 строк.
Python использую от 40 строк.

Ответить | Правка | ^ к родителю #23 | Наверх | Cообщить модератору

39. "Выпуск сборочной системы Meson 0.51"  +1 +/
Сообщение от Аноним (39), 17-Июн-19, 20:17 
Тут больше от наличия/сложности логики зависит, чем от размера. Если нужно последовательно запустить 100 программ с параметрами, баш лучше подойдет, а если какая-то математика или работа со строками, то и от 40 строк на баше удавишься
Ответить | Правка | ^ к родителю #26 | Наверх | Cообщить модератору

43. "Выпуск сборочной системы Meson 0.51"  +/
Сообщение от Аноним (34), 17-Июн-19, 23:08 
> если какая-то математика или работа со строками, то и от 40 строк на баше удавишься

Это ещё смотря что за работа со строками.

Ответить | Правка | ^ к родителю #39 | Наверх | Cообщить модератору

71. "Выпуск сборочной системы Meson 0.51"  +/
Сообщение от Michael Shigorinemail (ok), 18-Июн-19, 19:18 
> Тут больше от наличия/сложности логики зависит, чем от размера.

А у меня -- от необходимой сложности структур данных и наличия готовых библиотек (кстати, кто не знал, угощайтесь: http://altlinux.org/libshell).

Ответить | Правка | ^ к родителю #39 | Наверх | Cообщить модератору

73. "Выпуск сборочной системы Meson 0.51"  +/
Сообщение от Аноним (34), 19-Июн-19, 00:46 
> кто не знал, угощайтесь: башизмы с шебангом /bin/sh

Спасибо, обойдёмся.

Ответить | Правка | ^ к родителю #71 | Наверх | Cообщить модератору

62. "Выпуск сборочной системы Meson 0.51"  –1 +/
Сообщение от Аноним (34), 18-Июн-19, 11:44 
> shell-скрипты меньше по объёму и как правило более-менее хорошо написаны

Или ты ничего не понимаешь в шелл-скриптах, или просто не смотришь на скрипты, написанные другими. Большинство пишет их ужасно, потому что считает, что это просто, и учиться там нечему.

Ответить | Правка | ^ к родителю #23 | Наверх | Cообщить модератору

67. "Выпуск сборочной системы Meson 0.51"  +1 +/
Сообщение от freehckemail (ok), 18-Июн-19, 15:57 
> Большинство пишет их ужасно, потому что считает, что это просто, и учиться там нечему.

Это специфично для программирования в целом. Подставьте вместо "shell" любой другой язык -- и это тоже будет правдой.

Ответить | Правка | ^ к родителю #62 | Наверх | Cообщить модератору

30. "Выпуск сборочной системы Meson 0.51"  –1 +/
Сообщение от Аноним (30), 17-Июн-19, 17:28 
> Питон обязателен - значит "нeнужно".

Вообще, разработчики meson говорили пару раз, что чисто в теории можно и без python. Но есть два но... Сейчас система сборки еще не устаканилась и фичи постоянно добавляются, поэтому прямо сейчас отвязывать бессмысленно. Сами разработчики не заинтересованы в отвязывании от питона, но кто-нибудь другой может заняться.

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

40. "Выпуск сборочной системы Meson 0.51"  –2 +/
Сообщение от Аноним (39), 17-Июн-19, 20:20 
А зачем отвязывать, чтобы усложнить разработку и повысить порог вхождения для контрибьюторов? cmake вон написали на крестах, получилась говнистая архитектура, в которой левая нога не знает, что правая делает, и нужно придумывать всякую дичь вроде generator expressions, чтобы это скомпенсировать
Ответить | Правка | ^ к родителю #30 | Наверх | Cообщить модератору

6. "Выпуск сборочной системы Meson 0.51"  +2 +/
Сообщение от Аноним (-), 17-Июн-19, 11:35 
Чем вам configure && make && sudo checkinstall не угодил? Мало смузи?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

12. "Выпуск сборочной системы Meson 0.51"  +2 +/
Сообщение от Michael Shigorinemail (ok), 17-Июн-19, 12:28 
> sudo checkinstall

В другую-то крайность кидаться не надо...

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

51. "Выпуск сборочной системы Meson 0.51"  +/
Сообщение от пох. (?), 18-Июн-19, 09:05 
учитывая удивительный мирок ./debian/ и странности современного rpm (не умеющего без лишних пинков банально собрать все указанные ему файлы уже установленные куда и как надо в пакет) - checkinstall нельзя назвать плохим решением. Если бы еще и поддерживался...

Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

15. "Выпуск сборочной системы Meson 0.51"  +/
Сообщение от Аноним (34), 17-Июн-19, 12:41 
Это тебе они всем угодили. А нам не угодили libtoolize && autoconf && automake. Много сивухи.
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

17. "Выпуск сборочной системы Meson 0.51"  +6 +/
Сообщение от nobody (??), 17-Июн-19, 12:44 
Лишних зависимостей маловато. Вот притянуть питон/руби/.NET/JRE/node.js/прочую-пoебень - наш выбор!
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

20. "Выпуск сборочной системы Meson 0.51"  +/
Сообщение от Аноним (-), 17-Июн-19, 12:53 
уж лучше в завиимостях иметь питон, чем дич вроде autoconf
Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

21. "Выпуск сборочной системы Meson 0.51"  +2 +/
Сообщение от nobody (??), 17-Июн-19, 12:59 
Это для разработчика только. Для потребителя autoconf не создаёт никаких лишних зависимостей, и в этом его killer-фича.

А вообще, сегодня 90% софта linux-only, так что там и autoconf обычно не нужен - gmake+sh вполне хватает

Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

29. "Выпуск сборочной системы Meson 0.51"  +2 +/
Сообщение от пох. (?), 17-Июн-19, 17:06 
> Это для разработчика только. Для потребителя autoconf не создаёт никаких лишних зависимостей,
>  и в этом его killer-фича.

причем - даже если "потребитель" не такой уж и потребитель, и вполне способен поправить что-то в исходниках.
Пересобирать configure ему ради этого не потребуется.

Но манки-кодерков уже не остановить :-(


> А вообще, сегодня 90% софта linux-only, так что там и autoconf обычно не нужен

autoconf обычно нужен из-за неумения написать какой-нибудь build.sh (и можно даже обозвать его configure, как, к примеру, nginx) обрабатывающий --with-another-ненужнаяхня.

Ну не владеют обезьянки шеллом, не говоря уже про make, они только игого умеют.

Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

33. "Выпуск сборочной системы Meson 0.51"  +/
Сообщение от Аноним (34), 17-Июн-19, 18:31 
> даже если "потребитель" не такой уж и потребитель, и вполне способен поправить что-то в исходниках.

Даже если потребитель и не правит ничего в исходниках, а просто хочет их собрать неканоническим образом, например, со статическими либами… А там libtool… И всё, приплыли, configure падает.

Ответить | Правка | ^ к родителю #29 | Наверх | Cообщить модератору

35. "Выпуск сборочной системы Meson 0.51"  +1 +/
Сообщение от пох. (?), 17-Июн-19, 18:38 
у него все еще есть выбор - пропатчить достаточно простое место в сгенеренном makefile, или идти изучать дурацкий синтаксис.

в случае мезона выбора нет - даже если ты всего лишь хочешь собрать бинарник - хромую хрень тебе в src.

P.S. в целом же согласен - в отличие от самого autoconf, libtool - вредная и ненужная диверсия, не решившая никогда ни одной проблемы, для которых якобы была придумана, зато очень сильно изгадившая возможность ручного вмешательства в сборку.

Ответить | Правка | ^ к родителю #33 | Наверх | Cообщить модератору

44. "Выпуск сборочной системы Meson 0.51"  +/
Сообщение от Аноним (34), 17-Июн-19, 23:14 
> пропатчить достаточно простое место в сгенеренном makefile

Так он не сгенерировался, configure же упал.

> или идти изучать дурацкий синтаксис

Чем он поможет? libtool ломает логику autoconf by design, это не лечится никаким волшебным синтаксисом. Только хардкод линковки либ или их переопределение переменными окружения.

Ответить | Правка | ^ к родителю #35 | Наверх | Cообщить модератору

49. "Выпуск сборочной системы Meson 0.51"  +1 +/
Сообщение от пох. (?), 18-Июн-19, 08:59 
> Так он не сгенерировался, configure же упал.

в смысле "упал"? Вообще не нашел библиотеку в нестандартном месте ? На самом деле - редкость (что и настолько нестандартное что сам не нашел, и руками помочь нельзя)
Тогда еще проще - патчится скрипт configure, уж это-то каждый дятел умеет, тест выкинуть, жестко забить туда правильный параметр.

Чаще бывает что собирает с ней неправильно (нужен rpath, нужно правильное имя а авторы не знали зачем у .so бывает еще какое-то там .0 на конце и т д), это геморройнее чинить.

> Чем он поможет?

добавить еще одно --with-shitlib= - не такая уж сложная задача. Просто, чаще всего, ненужная - такая сборка "одноразовая".

Ответить | Правка | ^ к родителю #44 | Наверх | Cообщить модератору

52. "Выпуск сборочной системы Meson 0.51"  +/
Сообщение от Аноним (34), 18-Июн-19, 10:12 
> в смысле "упал"? Вообще не нашел библиотеку в нестандартном месте ?

В смысле, он и не знал, что её надо искать. Они ищет libfoo, есть только libfoo.a. Если бы для сборки теста использовался libtool, он, конечно, заглянул бы в libfoo.la и узнал, что ей требуется ещё libbar, но тесты-то не libtool'ом собираются, а напрямую компилятором. И всё, линковка падает, либа типа нерабочая, кури, чувак, логи и исправляй это как хошь.
С so таких проблем не бывает, поэтому всем [твой ник]уй.

Ответить | Правка | ^ к родителю #49 | Наверх | Cообщить модератору

65. "Выпуск сборочной системы Meson 0.51"  +/
Сообщение от souryogurt (ok), 18-Июн-19, 13:34 
Так если "есть только libfoo.a", libtool тут не причем. Может собирете уже тогда libfoo.la?
Ответить | Правка | ^ к родителю #52 | Наверх | Cообщить модератору

69. "Выпуск сборочной системы Meson 0.51"  +/
Сообщение от Аноним (34), 18-Июн-19, 18:01 
Ещё раз для тугодумов: libfoo.la тоже есть, но тест линковки (стандартный автоконфовский) не использует libtool, поэтому толку от него ноль с точкой вместо палки.
Ответить | Правка | ^ к родителю #65 | Наверх | Cообщить модератору

47. "Выпуск сборочной системы Meson 0.51"  +/
Сообщение от souryogurt (ok), 18-Июн-19, 02:51 
А можно подробнее, как именно configure падает? Сам libtool не нужен для дистрибутива с исходным кодом.
Ответить | Правка | ^ к родителю #33 | Наверх | Cообщить модератору

53. "Выпуск сборочной системы Meson 0.51"  +/
Сообщение от Аноним (34), 18-Июн-19, 10:16 
> А можно подробнее, как именно configure падает?

См. #52.

> Сам libtool не нужен для дистрибутива с исходным кодом.

Да что ты говоришь? А если посмотреть повнимательнее и обнаружить волшебный скриптик ./libtool, который любезно подложил libtoolize?

Ответить | Правка | ^ к родителю #47 | Наверх | Cообщить модератору

61. "Выпуск сборочной системы Meson 0.51"  –1 +/
Сообщение от Аноним (34), 18-Июн-19, 11:23 
> скриптик ./libtool, который любезно подложил libtoolize?

Хотя нет, гоню. Это было бы слишком просто для автодряни. Скриптик ./libtool, который генерит ./configure, используя ./ltmain.sh, который подложил libtoolize.

Ответить | Правка | ^ к родителю #53 | Наверх | Cообщить модератору

64. "Выпуск сборочной системы Meson 0.51"  +1 +/
Сообщение от souryogurt (ok), 18-Июн-19, 13:21 
И опа! Для сборки из исходного кода, уже не нужен весь пакет libtool, а только sh. По-моему, все работает точно накже как и остальные утилиты autoconf/automake, а не "libtool ломает логику autoconf by design".
Ответить | Правка | ^ к родителю #61 | Наверх | Cообщить модератору

70. "Выпуск сборочной системы Meson 0.51"  +/
Сообщение от Аноним (34), 18-Июн-19, 18:04 
> И опа! Для сборки из исходного кода, уже не нужен весь пакет
> libtool, а только sh. По-моему, все работает точно накже как и
> остальные утилиты autoconf/automake, а не "libtool ломает логику autoconf by design".

Ты читал, что я выше писал-то?
Не в том смысле ломает, что не следует политике напихивания 100500 скриптов в дерево исходников и генерации такого же их числа во время конфигурации, а в том, что тесты ./configure перестают работать так, как задумано.

Ответить | Правка | ^ к родителю #64 | Наверх | Cообщить модератору

48. "Выпуск сборочной системы Meson 0.51"  +1 +/
Сообщение от Andrey Mitrofanov_N0 (??), 18-Июн-19, 08:37 
#>> чем дич вроде autoconf
> Это для разработчика только. Для потребителя autoconf не создаёт никаких лишних зависимостей,
> и в этом его killer-фича.

Тише, тише!

Это же Разработчик.  Да, он не умеет в автоконф, либтул, баш, си, сед, авк, ... всё вот это вот.

Такие нонеча разработчики.  Субж во все поля...

Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

57. "Выпуск сборочной системы Meson 0.51"  +1 +/
Сообщение от Клыкастый (ok), 18-Июн-19, 10:33 
Ретроград! Прогресс не остановишь!
Ответить | Правка | ^ к родителю #48 | Наверх | Cообщить модератору

60. "Выпуск сборочной системы Meson 0.51"  +1 +/
Сообщение от Andrey Mitrofanov_N0 (??), 18-Июн-19, 11:23 
> Ретроград! Прогресс не остановишь!

Ну, что вы!  Кто я такой, чтобы Ваш "прогресс" останавливать.

Вы и сами отлично справляетесь.

CMake, електрон, мейзон  --  выкидывайте и переписывайте уже.
   К нашим-то, к ретроградам, не примазывайтексь.
      Дальнейших успешных сингулярностей Вам.

Ответить | Правка | ^ к родителю #57 | Наверх | Cообщить модератору

46. "Выпуск сборочной системы Meson 0.51"  +/
Сообщение от Анонм (?), 18-Июн-19, 02:50 
1. Пока не придется разбирать эти портянки, которые трассируются очень плохо. За Meson не скажу, но с CMake проблемы решаются намного проще.
2. Язык оболочки ламповый, родной, но для чего-то кроме однострочников в интерактивном и эквивалентных им коротких скриптов он катастрофически ужасен.
3. make штука не самая быстрая
4. Checkinstall мертв, к сожалению. Но и когда был жив, часто проблем добавлял прилично (во всяком случае на не самых мейнстримных архитектурах)
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

25. "Выпуск сборочной системы Meson 0.51"  +2 +/
Сообщение от Ivan_83 (ok), 17-Июн-19, 14:51 
> Если раньше Meson отдельно сохранял CPPFLAGS и специфичные для языков флаги компиляции (CFLAGS, CXXFLAGS), то теперь они обрабатываются нераздельно и перечисленные в CPPFLAGS флаги применяются как ещё один источник флагов компиляции для языков, которые их поддерживают

Сомнительно, ИМХО может чтонить сломать

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

45. "Выпуск сборочной системы Meson 0.51"  +/
Сообщение от Аноним (34), 17-Июн-19, 23:16 
Что и как это может сломать? Я так понял, изменилось только то, как флаги хранятся в кеше, а компилятор в конечном итоге получит все те же самые.
Ответить | Правка | ^ к родителю #25 | Наверх | Cообщить модератору

66. "Выпуск сборочной системы Meson 0.51"  +/
Сообщение от Ivan_83 (ok), 18-Июн-19, 15:17 
У меня CFLAGS и CPPFLAGS обычно разные, будет плохо если они смешаются в кучу.
Ответить | Правка | ^ к родителю #45 | Наверх | Cообщить модератору

72. "Выпуск сборочной системы Meson 0.51"  +/
Сообщение от Аноним (34), 18-Июн-19, 23:11 
> У меня CFLAGS и CPPFLAGS обычно разные, будет плохо если они смешаются в кучу.

Они всегда разные. И передаются компилятору именно что одной кучей. Как их при этом хранить — по отдельности или в месте — значения не имеет.
Дай угадаю: ты просто не знаешь, что такое CPPFLAGS?

Ответить | Правка | ^ к родителю #66 | Наверх | Cообщить модератору

38. "Выпуск сборочной системы Meson 0.51"  +/
Сообщение от Аноним (38), 17-Июн-19, 20:08 
>systemd, GStreamer, Wayland, GNOME и GTK+.

Не нужно.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

42. "Выпуск сборочной системы Meson 0.51"  +1 +/
Сообщение от Аноним (42), 17-Июн-19, 21:18 
А уметь правильно писать Makefile похоже слабо юным хипстерам.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

50. "Выпуск сборочной системы Meson 0.51"  +1 +/
Сообщение от пох. (?), 18-Июн-19, 09:02 
"это ж мне что - все исходники ВРУЧНУЮ перечислять в зависимостях?"
Не-не-не, вот прокатывающийся по ним скрипт, подбирающий весь мусор (включая пяток файлов, давно неиспользуемых) - это по нашему!

Ответить | Правка | ^ к родителю #42 | Наверх | Cообщить модератору

54. "Выпуск сборочной системы Meson 0.51"  +/
Сообщение от Аноним (34), 18-Июн-19, 10:25 
> "это ж мне что - все исходники ВРУЧНУЮ перечислять в зависимостях?"

И ты, я гляжу, не осилил?
https://www.gnu.org/software/make/manual/make.html#Automatic...

Ответить | Правка | ^ к родителю #50 | Наверх | Cообщить модератору

63. "Выпуск сборочной системы Meson 0.51"  –1 +/
Сообщение от нах_ (?), 18-Июн-19, 13:01 
этот трэш - и осиливать незачем. Он gmake only да еще и нужна достаточно модная версия, в старых поломано кое-что.

make dep - там осиливать нечего (бонусом - что он обычно тоже нужен только один раз, при внесении изменений в дерево проекта, а не мелком патчинге) но список .c | .cxx от которых зависит итоговый бинарь он все же за тебя не соберет.
А этих .cxx в крупном проекте может быть с миллиончик.

Ответить | Правка | ^ к родителю #54 | Наверх | Cообщить модератору

68. "Выпуск сборочной системы Meson 0.51"  +/
Сообщение от Аноним (34), 18-Июн-19, 17:59 
> этот трэш - и осиливать незачем. Он gmake only да еще и нужна достаточно модная версия, в старых поломано кое-что.

И что же там gmake only? Шаблонные правила, разве что? Замени их суффиксными. Что ещё?

> но список .c | .cxx от которых зависит итоговый бинарь он все же за тебя не соберет.

А кто соберёт-то? automake не соберёт, cmake не соберёт, насчёт сабжа тоже сильно сомневаюсь.

Ответить | Правка | ^ к родителю #63 | Наверх | Cообщить модератору

55. "Выпуск сборочной системы Meson 0.51"  –1 +/
Сообщение от Аноним (55), 18-Июн-19, 10:30 
Давно было, написал универсальный makefile со всеми зависимостями, сам все находит строит зависимости, собирает. Не зависит ни от каких доп скриптов. Вообще делать с ним ничего не надо. Работает на любой системе, пихаю его везде. Таких лисапетов в инете давно полно. Нет, надо изобрести корявого глючного монстра.
Ответить | Правка | ^ к родителю #50 | Наверх | Cообщить модератору

58. "Выпуск сборочной системы Meson 0.51"  +/
Сообщение от Аноним (34), 18-Июн-19, 10:37 
Увы, такое реально только для hello world'ов. А если в проекте несколько библиотек и несколько бинарей, и у всего свои внешние зависимости, придётся таки чуть-чуть поднапрячься.
Ответить | Правка | ^ к родителю #55 | Наверх | Cообщить модератору

59. "Выпуск сборочной системы Meson 0.51"  +/
Сообщение от Аноним (55), 18-Июн-19, 10:49 
есть и список внешних либ и свои промежуточные и цели сколько надо, достаточно просто. А проекты далеко не самые простые.
Ответить | Правка | ^ к родителю #58 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру