base_boost
base_boost — это ansible-подход, который устанавливает библиотеки для инструментов компилятора GNU C++.
Требования
Система на базе RHEL, или Ubuntu, или Windows.
Переменные роли
Корпоративная функция: переключает желаемое состояние
compilers_present: present
Программные коллекции предлагают последние версии языков программирования. Установите в true для использования gcc-toolkit на Centos8.
collections_enabled: true
утвержденный/тестовый релиз наборов инструментов разработчика программных коллекций
cplusplus_devtoolset: devtoolset-7
Большинство библиотек Boost являются только заголовочными: они полностью состоят из заголовочных файлов, содержащих шаблоны и встроенные функции, и не требуют отдельно скомпилированных библиотек или специальной обработки при связывании. Тем не менее, эта роль компилирует библиотеки, но вы можете изменить это поведение, если хотите:
compile_boost: true
Единственные библиотеки Boost, которые нужно собирать отдельно и не имеют дополнительной документации для компиляции, установлены по умолчанию (переопределите их в group_vars или вашем playbook):
compile_boost_with:
--with-chrono
--with-context
--with-filesystem
--with-graph_parallel
--with-iostreams
--with-locale
--with-program_options
--with-regex
--with-serialization
--with-signals
--with-system
--with-thread
--with-timer
--with-wave
# boost_cflags значения для Windows
/DFOO - определить FOO в препроцессоре
/EHsc - обрабатывать исключения C++, предполагать, что функции extern "C" никогда не выбрасывают исключения C++
/GR - включить RTTI
/MD - создать многопоточную DLL
/MDd - создать отладочную многопоточную DLL
/O1 - оптимизировать по размеру
/O2 - оптимизировать по скорости
/Ob0 - нет авто-инлайнинга
/Ob1 - только инлайн функции, отмеченные как inline, и функции-члены C++, определенные в декларации класса
/Ob2 - позволить компилятору свободно инлайнивать
/Od - без оптимизации
/RTC1 - проверка во время выполнения: сообщить, когда переменная используется без инициализации, и проверка ошибок в стеке во время выполнения. См. их сайт для получения более подробной информации.
/W3 - использовать уровень предупреждений 3 (из 4), «производственного качества»
/Zi - генерировать «полную отладочную информацию», как -g для clang/gcc
Зависимости
https://www.softwarecollections.org/en/docs/
Пример использования
Смотрите полный сервер сборки https://github.com/bbaassssiiee/buildserver
Лицензия
MIT
Информация об авторе
Bas Meijer
@bbaassssiiee
ansible-galaxy install dockpack/base_boost