Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Кроссплатформенные билд-системы, Boost.Build, CMake, SCons, Waf, etc. 
:(
    Опции темы
Lazin
Дата 26.11.2007, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 2
Всего: 154



Кто-нибудь использует boost.build для сборки своих приложений, как-никак это единственная кросс-платформенная система сборки приложений написанных на С++(и не только), даже на одной платформе можно использовать разные компиляторы. Штука полезная и видимо перспективная, но поначалу не очень понятная, куча всяких скриптов вокруг каждого тулсета, непонятные сообщения об ошибках, странный(ооочень странный) язык jam файлов... Но в перспективе можно распрощаться с кучей различных непереносимых форматов мэйк-файлов, файлов проектов и прочего хлама. Поэтому невольно возникает вопрос, стоит-ли изучать сабж, и есть ли опыт использования(не считая сборки boost-a)?
PM MAIL Skype GTalk   Вверх
JackYF
Дата 26.11.2007, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 7
Всего: 162



Цитата(Lazin @  26.11.2007,  10:51 Найти цитируемый пост)
как-никак это единственная кросс-платформенная система сборки приложений написанных на С++(и не только)

н-ну...

КДЕ4 использует CMake и должен собираться как под винду, так и под линь.
QT-шные про-файлы тоже, в общем-то, кроссплатформенны. Это всё если мы хотим С++.

Лично я boost.build не использую. Планирую в будущем посмотреть на CMake.

Это сообщение отредактировал(а) JackYF - 26.11.2007, 15:36


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
archimed7592
Дата 26.11.2007, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 11
Всего: 93



Lazin, штука, без сомнений, перспективная, но, к примеру, мои опыты закончились, после того, как я не нашёл как указать ему, что нужно линковаться с libboost_regex-somever.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Lazin
Дата 26.11.2007, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 2
Всего: 154



archimed7592, вроде-бы можно, только сегодня про это читал, в период курения мануала на тему сборки под x64 проц. архитектуру.
Просто не всем нужен CMake или qmake, к тому-же QT программы наверняка можно собрать bjam-ом, просто нужно написать Jamfile который бы вызывал uic, moc а потом компилировал-бы.

PM MAIL Skype GTalk   Вверх
archimed7592
Дата 26.11.2007, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 11
Всего: 93



Lazin, в bbv2 точно есть какая-то поддержка Qt. Только какая(и поддержка ли?) я толком не знаю - так и не нашёл времени разобраться с этой тулзой.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Любитель
Дата 28.11.2007, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 16
Всего: 92



Цитата(Lazin @  26.11.2007,  10:51 Найти цитируемый пост)
странный(ооочень странный) язык jam файлов

+1

При всё моём уважении к бусту bjam использую (да и то явно уже вообще не использую smile ) только для сборки самого буста.

Цитата(Lazin @  26.11.2007,  10:51 Найти цитируемый пост)
 как-никак это единственная кросс-платформенная система сборки приложений написанных на С++

Ой, я бы так не сказал!   smile 

1. GNU Autotools частично портируемы под винду с помощью MSys + MinGW или CygWin. Многие проекты это используют. впрочем это обычно порты с никсов smile
2. CMake. Мне правда не понравилось :/
3. Ant - впрочем для C/C++ используется обычно только для сборки нескольких нэтив-методов для явовских приложений. Иногда достаточно многих. Пример - eclipse.
4. SCons - собсно моё любимое smile Зависит только от питона. Питон можно найти под любую разумную платформу. Для работы чистого SCons с Qt есть небольшой модуль, впрочем мне в итоге гораздо больше понравился (можно сказать, форк сконса) Waf. Поддержка Qt, в частности, встроенна в Waf. Вообщем, на мой взгляд, очень приятная вещь.


--------------------
PM MAIL ICQ Skype   Вверх
Lazin
Дата 28.11.2007, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 2
Всего: 154



SCons и waf - очень интересные инструменты, но насколько я понял не сильно распространенные, на данный момент))
PM MAIL Skype GTalk   Вверх
Любитель
Дата 28.11.2007, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 16
Всего: 92



Просто они молодые очень smile

http://code.google.com/p/waf/wiki/Projects - проекты, юзающие Waf.

http://www.scons.org/wiki/SconsProjects - проекты, юзающие Scons.

KDE Team изначально для четвёрки планировали SCons (в итоге перешли на CMake). Собственно это и есть по сути предыстория создания Waf smile

bjam кстати тоже не дюже распространён  smile 


--------------------
PM MAIL ICQ Skype   Вверх
JackYF
Дата 28.11.2007, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 7
Всего: 162



SCons смотрел, как-то в чистом виде не понравился... на waf взглянуть надо.
И на CMake...


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Lazin
Дата 28.11.2007, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 2
Всего: 154



Цитата(JackYF @  28.11.2007,  17:14 Найти цитируемый пост)
SCons смотрел, как-то в чистом виде не понравился

А почему, если не секрет. Взглянул(бегло), функции те-же что и у CMake. Мне к примеру пайтон больше улыбается, чем какой-то очередной скриптовый язык, используемый CMake...
PM MAIL Skype GTalk   Вверх
JackYF
Дата 28.11.2007, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 7
Всего: 162



Цитата(Lazin @  28.11.2007,  17:38 Найти цитируемый пост)
Мне к примеру пайтон больше улыбается, чем какой-то очередной скриптовый язык, используемый CMake... 

Вообще говоря, до сих пор "язык", применяющийся в юниксовых Makefile'ах, мне улыбается больше всего. Потому что он только под мэйкфайлы и заточен, + учитывает многие нюансы. Но, увы, как только твоё приложение нужно распространять, ручные мэйкфайлы уже мало годятся. А, имхо, autotools - ужас и страх.

Поэтому я уже довольно-таки давно ищу приемлемую для меня альтернативную систему сборки.


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Любитель
Дата 1.12.2007, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 16
Всего: 92



Цитата(JackYF @  28.11.2007,  17:14 Найти цитируемый пост)
SCons смотрел, как-то в чистом виде не понравился... на waf взглянуть надо.

Они в принципе достаточно похожи. Хотя Waf вводит много приятных вещей в плане написания скриптов (всмысле их структуры), больше всяких инструментов интегрировано + вывод приятней smile

Минус cmake хотя бы в том, что это обёртка над обычным мейком. Не совсем понимаю смысла.

Цитата(Lazin @  28.11.2007,  17:38 Найти цитируемый пост)
 Мне к примеру пайтон больше улыбается

Мне тоже. На питоне свою мысль выразить легче иногда. Может, конечно, у меня мышление не слишком деларативное? smile 


--------------------
PM MAIL ICQ Skype   Вверх
JackYF
Дата 2.12.2007, 00:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 7
Всего: 162



Цитата(Любитель @  1.12.2007,  17:56 Найти цитируемый пост)
Минус cmake хотя бы в том, что это обёртка над обычным мейком. Не совсем понимаю смысла.

Обёртка над make мне и надо. Язык хороший, но много чего хочется автоматизировать.

Посмотрел я на waf. Нет, не то. Ещё ни одна система, кроме, собственно, Makefileов чистых, не предоставила мне нормальных примеров рабочих Makefile или их аналогов. В example какие-то куцые приложения на 10 строк, с добавлением 1-2 опций компилятору. Тьфу...

Мне требуется три варианта сборки проекта, с возможностью указания любых ключей компиляторам, а не только тех, что "известны" билд-системе, с возможностью выполнять шелл-код в любых местах сборки. За исключением cmake, про который я пока ничего не знаю, у меня кандидатов на билд-систему нет, потому как всё остальное пока идёт гулять лесом.


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Любитель
Дата 2.12.2007, 00:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 16
Всего: 92



Цитата(JackYF @  2.12.2007,  00:31 Найти цитируемый пост)
нормальных примеров рабочих Makefile или их аналогов

Как неплохой вариант - посмотреть на SConstruct-ы, wscript-ы реальных готовых проектов.

Цитата(JackYF @  2.12.2007,  00:31 Найти цитируемый пост)
Мне требуется три варианта

Variants в вафоской вики.

Цитата(JackYF @  2.12.2007,  00:31 Найти цитируемый пост)
с возможностью указания любых ключей компиляторам, а не только тех, что "известны" билд-системе

Само собой.

Цитата(JackYF @  2.12.2007,  00:31 Найти цитируемый пост)
с возможностью выполнять шелл-код в любых местах сборки

Можно и шелл. Но проще писать непосредственно на питоне smile

В том-то собственно одна из основных фишек (для меня по крайней мере) сконса/вафа/рейка|etc. (последней на руби, потому смотреть не стал - питон ближе smile ) - полная свобода действий. Все возможности полноценного скриптового языка перед нами. Это с точки зрения написания билд-скриптов.


--------------------
PM MAIL ICQ Skype   Вверх
JackYF
Дата 2.12.2007, 10:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 7
Всего: 162



Цитата(Любитель @  2.12.2007,  00:52 Найти цитируемый пост)
wscript-ы реальных готовых проектов.

посмотрел на waf xmms2. Пока что - не лежит душа.

Цитата(Любитель @  2.12.2007,  00:52 Найти цитируемый пост)
Variants в вафоской вики.

спасибо, нашёл.

Цитата(Любитель @  2.12.2007,  00:52 Найти цитируемый пост)
Само собой.

да вот что-то не очень заметно. В примерах есть переопределение CFLAGS там, CXXFLAGS и т.д. Указание опций компилятору, вызов компилятора я не увидел.

Цитата(Любитель @  2.12.2007,  00:52 Найти цитируемый пост)
Все возможности полноценного скриптового языка перед нами.

Наверное, это хорошо. Но - не знаю я питон. Возможно, позже оценю smile.


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Любитель
Дата 2.12.2007, 11:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 16
Всего: 92



Цитата(JackYF @  2.12.2007,  10:10 Найти цитируемый пост)
Пока что - не лежит душа.

Ну, на вкус и цвет... Просто мне питон нравился всегда. И его удачное применение - считаю это хорошо smile

Цитата(JackYF @  2.12.2007,  10:10 Найти цитируемый пост)
вызов компилятора я не увидел

Речь шла про опции smile

А так - можно и вызвать. Хотя лучше в таком случае создать свой tool (см ${WAF_DIR}/wafadmin/Tools), зарегить и цевильно его использовать. Просто тулы - это несколько больший уровень абстракции, чем простой вызов. Например, они предоставляют набор опций. Скажем, для любой программы, использующий C/C++ (стандартная текущая вафоская поставка поддерживает gcc/g++ и msvc, доступен параметр (при сборке) -d (--debug-level) со значениями ultradebug, debug, release, optimized. По waf --help выполненному в папочке с нужным wscript в числе прочего увидим эту опцию.

Ещё большоё преимущество над всеми мэйк-обёртками - это некоторое повышение скорости сборки (в том числе более прогрессивное распараллеливание сборки). Про автотулзы я вообще молчу. Когда создание config.h и мэйкфайла идёт больше, чем сборка самой программы - чисто идеологически раздражает.

В последнее время, появилось много (неплохих) билд-систем. Так что, каждый может выбрать для себя, пожалуй.


--------------------
PM MAIL ICQ Skype   Вверх
JackYF
Дата 2.12.2007, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 7
Всего: 162



Цитата(Любитель @  2.12.2007,  11:27 Найти цитируемый пост)
Про автотулзы я вообще молчу. Когда создание config.h и мэйкфайла идёт больше, чем сборка самой программы - чисто идеологически раздражает.

да, поэтому я и не люблю autotools.


Цитата(Любитель @  2.12.2007,  11:27 Найти цитируемый пост)
В последнее время, появилось много (неплохих) билд-систем. Так что, каждый может выбрать для себя, пожалуй. 

возможно. Я придирчив.

Цитата(Любитель @  2.12.2007,  11:27 Найти цитируемый пост)
Речь шла про опции

ну дык опции сборки я указываю при вызове компилятора, не так ли?


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Любитель
Дата 2.12.2007, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 16
Всего: 92



Цитата(JackYF @  2.12.2007,  11:51 Найти цитируемый пост)
ну дык опции сборки я указываю при вызове компилятора, не так ли?

Просто есть уже тул-интеграторы для компиляторов C/C++ вообщем и конкретные - для gcc/g++ и msvc (только что глянул - ещё оказывается и для сановского компилера тоже). Вызываемая строка строится там так:
Цитата

${CXX} ${CXXFLAGS} ${CPPFLAGS} ${_CXXINCFLAGS} ${_CXXDEFFLAGS} ${CXX_SRC_F}${SRC} ${CXX_TGT_F}${TGT}


Все ${...} можно задать через conf.env.

Если принципиально не нравиться - можно любую команду выполнить вручную. В вафоском модуле Runner есть небольшой враппер exec_command для фулл-портабельного выполнения команд. Некоторые билд-тулы юзают его непосредственно. Большинство искользуют более высокий уровень абстракции - класс Action.


--------------------
PM MAIL ICQ Skype   Вверх
bsa
Дата 2.12.2007, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 24
Всего: 196



У всех этих билдеров есть одна общая проблема - на целевой системе надо что-то ставить! В одном случае это питон+scons/waf, в другом cmake, в третьем boost.build... А вот с autotools этой проблемы нет - если у вас есть минимальный набор UNIX утилит, то configure заработает и скажет, что надо доустановить. Хотя, некоторые недоразвитые ОС данных утилит в штатной поставке не имеют (более того, даже полнофункциональных аналогов), но это уже на совести их авторов.
PM   Вверх
JackYF
Дата 2.12.2007, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 7
Всего: 162



Что ж, ясно smile Главное, что теперь я знаю об этой системе и буду принимать во внимание.

Авось выучу питон, тогда будет легче smile


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Любитель
Дата 2.12.2007, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 16
Всего: 92



Цитата(bsa @  2.12.2007,  12:29 Найти цитируемый пост)
если у вас есть минимальный набор UNIX утилит, то configure заработает и скажет, что надо доустановить

Для waf поставляется configure-обёртка, которая чекает питон и (затем) ваф.

Добавлено через 3 минуты и 29 секунд
Тем более, как где-то было правильно замечено - питон на никсах становится таким же стандартным скрипт-языком, как и перл. То есть и мэйка может в готовой поставке не быть smile И это нормально - для недеволперской среды. А для девелоперов/пэкеджеров установка билд-системы - это нормально.


--------------------
PM MAIL ICQ Skype   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.1094 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.