C++. Сборник рецептов
Шрифт:
Если у вас установлено несколько версий инструментария, вы можете указать правило
Имена, используемые Boost.Build для нескольких разных инструментариев, описываемых в этой главе, приведены
Табл. 1.14. Имена инструментариев Boost.Build
| Инструментарий | Имя |
|---|---|
| GCC | gcc |
| Visual C++ | msvc |
| Intel | intel |
| Metrowerks | cw |
| Comeau | como |
| Borland | borland |
| Digital Mars | dmc |
1.7. Сборка простого приложения «Hello, World» с помощью Boost.Build
Вы хотите собрать простую программу «Hello, World», подобную приведенной в примере 1.4, с помощью BoostBuild.
В директории, где вы хотите создать исполняемый файл и все создаваемые при этом промежуточные файлы, создайте текстовый файл с именем Jamroot. В файле Jamroot укажите два правила, приведенных далее. Во-первых, укажите правило exe, объявляющее целевой исполняемый файл и исходные файлы .cpp. Далее укажите правило
Например, чтобы собрать исполняемый файл hello или hello.exe из файла hello.cpp из примера 1.4, создайте в директории, содержащей файл hello.cpp, файл с именем Jamroot с содержимым, показанным в примере 1.8.
Пример 1.8. Jamfile для проекта hello
Далее перейдите в директорию, содержащую hello.cpp и Jamroot, и введите следующую команду.
Эта команда собирает исполняемый файл hello или hello.exe в поддиректории текущей директории. Наконец, введите команду:
Эта команда копирует исполняемый файл в директорию, указанную в свойстве
Файл Jamroot является примером файла Jamfile. В то время как для управления небольшим набором исходных файлов C++ можно использовать один Jam-файл, большой набор файлов обычно требует нескольких Jam-файлов с иерархической организацией. Каждый Jam-файл находится в отдельной директории и соответствует отдельному проекту. Большая часть Jam-файлов просто называется Jamfile, но самый верхний Jam-файл — Jam-файл, который расположен в директории, родительской по отношению ко всем другим директориям, содержащим остальные Jam-файлы, — называется Jamroot. Проект, определяемый этим верхним Jam- файлом, называется корнем проекта. Каждый проект, за исключением корня проекта, имеет родительский проект определяемый проектом, расположенным в ближайшей к нему родительской директории, содержащей Jam-файл.
Эта иерархическая организация обладает большими преимуществами: например, она облегчает применение к проекту и всем его дочерним проектам требований, таких как поддержка потоков.
Каждый проект — это набор целей. Цели объявляются с помощью вызова правил, таких как правило
Правило
Пример 1.9. Вызов правила exe
Здесь
Свойства указываются в виде