Среда сборки C ++ с использованием MinGW-w64 и Boost.Build

В настоящее время я портирую один из моих проектов на GCC, и для этого я использую проект MinGW-w64, так как мне нужны как x64, так и x86 служба поддержки.

Я столкнулся с проблемой при настройке среды сборки. В настоящее время в моем проекте используются библиотеки Boost C ++, и, чтобы упростить процесс сборки, я также использую Boost.Build в своем проекте (поскольку это упрощает интеграцию).

В MSVC это нормально, потому что я могу делать следующее из командной строки:

b2 toolset=msvc address-model=32 # compile as 32-bit
b2 toolset=msvc address-model=64 # compile as 64-bit

MinGW-w64 делает это «проблематичным», поскольку 32-битные и 64-битные инструментальные средства размещены в разных каталогах. (C: \ MinGW32 и C: \ MinGW64 соответственно).

Можно ли настроить Boost.Build таким образом, чтобы он выбирал правильный набор инструментов на основе флага модели адреса? Если нет, то каков мой следующий лучший вариант?

РЕДАКТИРОВАТЬ:

Если это поможет, я использую сборки rubenvb 4.6.3-1 с веб-сайта MinGW-w64 в папке «Персональные сборки» (я использую эти сборки, в частности, поскольку я хочу попытаться заставить свой код анализировать - но не компилировать - под Clang).

РЕДАКТИРОВАТЬ:

Одно из решений, о котором я только что подумал, - это «вручную» установить PATH так, чтобы он указывал на правильную инструментальную цепочку перед компиляцией, однако это добавляет дополнительный уровень сложности к моему процессу сборки, который я хотел бы избегать. В идеале я хотел бы, чтобы это было так же просто, как для MSVC, хотя я понимаю, что это может быть невозможно. В худшем случае я предполагаю, что то, что я только что предложил, сработает, и мне просто нужно будет добавить сценарии для правильной установки PATH перед вызовом Boost.Build. Однако это будет означать жесткое кодирование пути, чего я не хочу делать ...

7
задан Bo Persson 11 January 2012 в 21:14
поделиться