Я пытаюсь настроить подмножество boost и правильно скомпилировать его с помощью bjam, однако я не получаю желаемого результата. Я работаю над окнами, используя boost 1.37.0.
Допустим, я хочу собрать/установить библиотеки smart_ptr и файловую систему. Я намеренно выбрал библиотеку только для заголовков и одну библиотеку для компиляции библиотеки. Я хочу, чтобы они были встроены в структуру каталогов, подобную той, которую я получил бы, если бы построил полную установку boost с помощью bjam (т.е. без указания какого-либо --with-libraryX), но, конечно, без всех библиотек, которые меня не интересуют. .
Мой первый подход состоял в том, чтобы использовать --with-filesystem --with-smart_ptr в bjam, однако мне показалось, что он не распознает smart_ptr (я безуспешно пытался использовать smartptr и smart-ptr). Я предполагаю, что это потому, что это библиотека только для заголовков.
Когда я удалил его и имел только --with-filesystem, казалось, что файлы заголовков ВСЕХ библиотек копируются в путь установки и создаются только библиотеки для файловой системы. Поведение сборки библиотеки было тем, на которое я надеялся, но я получил множество файлов заголовков для библиотек, которые меня не интересуют, установленных в моем каталоге boost.
Мой второй подход состоял в том, чтобы использовать bcp для копирования соответствующих проектов. Это сработало в том смысле, что я получил только те проекты, которые мне были нужны (и их зависимости). Однако они не предоставили никаких make-файлов для сборки скопированных библиотек. Это означает, что мне нужно будет настроить файлы проектов для всех библиотек, которые не являются только заголовками, и создать их вручную.
Итак, мой вопрос в основном заключается в том, есть ли способ выборочного создания boost, который копирует только заголовки для интересующих меня библиотек и создает файлы библиотек только для интересующих меня библиотек без заголовков (и библиотеки boost, которые они зависит от курса)?
Вероятно, для этого существует множество ручных/скриптовых решений, но если бы я мог запустить что-то, только используя bjam, это было бы для меня намного полезнее, поскольку добавление новых библиотек или обновление до новой версии boost было бы очень простым.
РЕДАКТИРОВАТЬ: добавлена полная командная строка для первого подхода:
bjam install --prefix=c:\temp\boostsmall
--build-dir=C:\temp\boostsmalltemp --layout=system
--with-filesystem variant=debug link=static threading=multi
runtime-link=static
Scoped_ptr изменен на smart_ptr