Я использую boost-build для сборки своего проекта, но я добавил библиотеку в качестве зависимости, которая создается с использованием GNU make. Если я собираю эту библиотеку вручную, я могу связать ее с моим проектом в Boost, используя этот простой Jamfile
:
lib hts
:
: <link>static <file>lib/lib.a
:
: <include>lib_headers
;
Есть ли способ сообщить boost-build запустить make в каталоге, если lib/lib.a
нет там?
С помощью списка рассылки Boost мы пришли вместе с этим решением. Сначала вы создаете действие для сборки библиотеки, используя make. Затем вы добавляете цель «make», чтобы научить boost-build создавать статическую библиотеку, используя только что созданное вами действие. Затем вы создаете псевдоним, от которого может зависеть boost-build, и он прекрасно сочетается с остальной частью Jamfile.
path-constant lib_dir : lib ;
actions external-make
{
cd $(lib_dir) && make
}
make lib.a : : @external-make : <location>lib_dir ;
alias hts
: lib.a
: <link>static
:
: <include>lib_headers
;
в вашей сборке вы можете использовать «hts» в качестве цели для этой библиотеки.
Других решений пока нет …