LINUX.ORG.RU

boost build, генераторы


0

0

всем доброго времени
есть генератор, из их док:

..................

class xml-generator : generator
{
import "class" : new ;

rule __init__ ( * : * )
{
generator.__init__ $(1) : $(2) : $(3) : $(4) : $(5) : $(6) : $(7) : $(8) : $(9) ;
}

rule run ( project name ? : property-set : sources * )
{
local action = [ new action : xml.gccxml : $(property-set) ] ;
local target = [ new file-target $(name) : XML : $(project) : $(action) ] ;
return [ virtual-target.register $(target) ] ;
}
}


generators.register
[ new xml-generator xml.xml : HPP : XML ]
;

actions gccxml
{
...........
}

.................................

как сделать такой-же, но вместо actions - rule, то есть код на самом bjam-e ?

и вытекающий отсюда второй вопрос: есть хорошие доки кроме http://www.boost.org/doc/tools/build/doc/html/index.html ? ничего не могу нагуглить, а в той очень мало. в тех, что с исходниками, только примеры, а сами исходники не всегда помогают, т.к жам я в первый раз вижу


Ответ на: комментарий от mannaz

буст сейчас можно и тем и другим собирать

kaj
() автор топика

спасибо за внимание, оказывается можно просто объявить вместо actions rule с 8 аргументами :) оно там просто по имени вызывается

mannaz, а есть причины кроме адской раздутости, по которым bjam хуже cmake ?

kaj
() автор топика
Ответ на: комментарий от kaj

> mannaz, а есть причины кроме адской раздутости, по которым bjam хуже cmake ?

Честно говоря, никогда ничего не собирал с помощью bjam, поэтому не могу достаточно аргументированно ответить на твой вопрос. Субъективно bjam хуже только тем, что мало где используется вне boost, а следовательно при включении каких-либо 3rd party в свой проект с большой вероятностью правила сборки для них придется создавать самому. Правила cmake существуют для гораздо большего числа проектов.

Если интересуют более детальные сведения и в гугле ничего нет, то могу уточнить у своего коллеги - его проект сейчас находится в стадии review и других согласований для включения в boost.

mannaz
()
Ответ на: комментарий от mannaz

нет, мне как раз субъективное мнение интересно
потому что очень противоречивая программа :)

kaj
() автор топика
Ответ на: комментарий от kaj

> нет, мне как раз субъективное мнение интересно

Субъективно я bjam использовать не стал бы. Для мелких и средних личных проектов мне хватает make-файлов той или иной степени навороченности, а во всех крупных проектах, в которых принимаю участие, используются различные системы автосборки: как полностью самописные, так и основанные на cmake.

mannaz
()
Ответ на: комментарий от mannaz

понятно, звучит разумно, но если в любом случае дорабатывать свою систему сборки, то jam для этого тоже неплох, но, конечно, не слишком удобен

kaj
() автор топика
Ответ на: комментарий от kaj

> если дорабатывать свою систему сборки, то jam для этого тоже неплох, но, конечно, не слишком удобен

bjam, если мне не изменяет память, является полноценной альтернативой make'у, в то время как cmake, грубо говоря, - лишь генератор make-файлов и проектов для различных компиляторов/IDE. Иногда это обстоятельство является весомым аргументом в пользу выбора той или иной системы сборки.

mannaz
()
Ответ на: комментарий от mannaz

да, причем это довольно мощный язык, можно использовать вместо шелла

kaj
() автор топика
Ответ на: комментарий от kaj

>можно просто объявить вместо actions rule
я этого не говорил

kaj
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.