пятница, 9 декабря 2011 г.

PyKd: Boost.Python build cmd

В который раз потребовалось собрать библиотеку и как это обычно бывает весьма не кстати потерялся командный файл упрощающий этот процесс.
Пришлось всё делать сначала. В итоге получился командный файл для сборки библиотеки Boost.Python, который также можно использовать в качестве шаблона для сборки необходимых boost-библиотек:

::
:: Build x86/x64 Boost.Python library
::
call :ExecBjam 32
call :ExecBjam 64
pause
goto :EOF

::
:: Execute bjam.exe with required params
::
:ExecBjam
set arch=%1
set stagedir=stage

if "%arch%"=="64" set stagedir=stage64

bjam.exe ^
    -j 2 ^
    --toolset=msvc-9.0 ^
    release debug ^
    threading=multi link=static runtime-link=shared ^
    address-model=%arch% ^
    --with-python --with-date_time ^
    --stagedir=%stagedir% ^
    stage
goto :EOF

Краткое пояснение:
  • call :ExecBjam XX - сборка для i386 и amd64
  • -j N - задействовать N ядер
  • --toolset=msvc-9.0 - Visual Studio 2008
  • threading=multi - сборка с поддержкой многопоточности
  • --with-python - При сборке я предпочитаю использовать --with-libname вместо --without-libname, т.к. в этом случае будут скомпилированы только указанные библиотеки (что бы не собирать неиспользуемые библиотеки)
  • link=static - собрать статическую версию библиотек
  • runtime-link=shared - динамическая линковка с Visual C++ Runtime
  • --stagedir=stage%arch% - директория для выходных файлов (stage для x86 и stage64 для и x64)