2012-07-03 3 views
0

Есть ли способ получить местоположение файла Jamroot для использования в качестве константы в другом файле Jamfile в проекте?boost-build/bjam constant для пути к Jamroot

Прямо сейчас, у меня есть кладж в моем Jamroot:

constant HOME : [ os.environ HOME ] ; 
constant MYPROJECT_ROOT : $(HOME)/src/myproject ; 

А потом я мог бы сделать что-то подобное в другом Jamfile, чтобы позволить мне включать заголовки с путем от корня проекта.

<include>$(MYPROJECT_ROOT) 

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

Меня интересует умный способ сделать это конкретным включением (вместо моего неосведомленного новичка в использовании констант). Но я также был бы заинтересован в решении проблемы так, как я попросил, - если бы место Jamroot было постоянным, потому что это может быть полезно и в других целях.

ответ

3

Используйте правило path-constant.

path-constant MYPROJECT_ROOT : . ; 

Затем в суб-проектов, вы можете получить каталог в Jamroot с $(MYPROJECT_ROOT).

Обратите внимание, что обычно люди называют эту переменную TOP вместо MYPROJECT_ROOT, но это просто соглашение.

Смежные вопросы