Свойства указываются в виде < функция > значение . Например, чтобы объявить исполняемый файл, который будет всегда собираться с поддержкой потоков, вы должны написать:
exe hello
: hello.cpp
: multi
;
От вас не требуется писать двоеточия, разделяющие последовательные аргументы правила Boost.Build, если вы не указываете значения этих аргументов.
Некоторые часто используемые функции и их возможные значения перечислены в табл. 1.15.
Табл. 1.15. Часто используемые функции Boost.Build
| Функция |
Значение |
Эффект |
| include |
Path |
Определяет путь для поиска заголовочных файлов |
| define |
name=[value] |
Определяет макрос |
| threading |
multiили single |
Включает или отключает поддержку потоков |
| runtime-link |
staticили shared |
Определяет тип компоновки с библиотекой времени выполнения¹ |
| variant |
debugили release |
Запрашивает отладочную или окончательную сборку |
¹ См. рецепт 1.23.
Когда собирается целевой исполняемый файл, или цель, соответствующая статической или динамической библиотеке, файл, соответствующий этой цели, создается в директории, дочерней по отношению к директории, содержащей Jam-файл. Относительным путь этой директории зависит от инструментария и конфигурации сборки, но он всегда начинается с bin . Например, исполняемый файл из примера 1.8 может быть создан в директории bin/msvc/debug .
Для простоты я попросил вас создать Jam-файл из примера 1.8 в той же директории, в которой находится исходный файл hello.cpp . Однако в реальных проектах вам часто придется хранить исходные и двоичные файлы в различных директориях. В примере 1.8 Jam-файл можно поместить в любое место при условии, что вы укажете путь hello.cpp так, что он будет указывать на реальный файл hello.cpp .
Правило installуказывает Boost.Build скопировать один или несколько файлов, указанных как имена файлов или как имена главных целей, в указанное место. Вызов этого правила имеет вид, показанный в примере 1.10.
Пример 1.10. Вызов правила install
install имя-цели
: файлы
: требования
: сборка-по-умолчанию
: требования-к-использованию
;
Здесь имя-цели — это имя объявляемой цели, а файлы — это список из одного или более файлов или целей, которые требуется скопировать. Остальные аргументы — требования , сборка-по-умолчанию и требования-к-использованию — имеют такие же значения, как и в примере 1.9.
Место, куда файлы должны быть скопированы, может указываться либо как имя цели, либо как значение свойства locationтребований цели. Например, в примере 1.8 можно написать цель installследующим образом.
install . : hello ;
Затем установка исполняемого файла выполняется так:
> bjam .
Однако метод, использованный в примере 1.8, предпочтителен, так как проще запомнить именованную цель, чем путь файла.
Наконец, давайте быстро взглянем на синтаксис командной строки bjam . Чтобы собрать цель xxx , используя инструментарий по умолчанию, введите команду:
> bjam xxx
Чтобы собрать цель xxx , используя инструментарий yyy , введите команду:
> bjam xxx toolset= yyy
Чтобы собрать цель xxx , используя версию vvv инструментария yyy , введите команду:
> bjam ххх toolset= yyy-vvv
Чтобы в командной строке указать использовать при сборке стандартную библиотеку zzz , используйте синтаксис:
> bjam xxx stdlib= zzz
Чтобы собрать несколько целей одновременно, введите в командной строке несколько имен целей, а чтобы собрать все цели данного проекта, не указывайте целей. Следовательно, чтобы собрать и установить исполняемый файл из примера 1.9, просто введите:
> bjam
Чтобы удалить все файлы, созданные в процессе сборки, включая исполняемый файл, введите:
> bjam --clean
Свойство в виде < функция > значение может быть указано в командной строке как функция=значение .
Смотри также
Рецепты 1.2 и 1.15.
Читать дальше