Не уверен, что форум полностью соответствует моему посту -- судя по названию форума, скорее нет, чем да. Однако, на RSDN нет специализированного форума "Компиляторостроение", а темы про компиляторостроение по факту появляются в основном здесь. Посему, и я создам тему здесь.
Компиляторостроителям и им сочувствующим предлагается достаточно большая матрица сборок LLVM. Нужна она преимущественно для целей тестирования ваших LLVM-based проектов в различных конфигурациях. Впрочем, под Windows эти сборки вполне можно использовать и не только для тестирования, а, например, прямо линковать их к релизным экзешникам ваших проектов. Тут, конечно, встаёт вопрос доверия к источнику бинарников (в данном случае это
AppVeyor), так что использовать их в production или нет, каждый решает для себя сам.
Мотивация создания такова.
Официальный сайт LLVM готовые сборки предлагает, но количество доступных конфигураций до слёз мало. LLVM большой и собирается долго, последние версии -- по 40-50 минут на средних-по-больнице машинах. При этом в большинстве бесплатных облачных сервисов непрерывной интеграции стоит жёсткий лимит на время сборки (ещё бы!) -- и эти факты ну никак не сочетаются друг с другом. Впрочем, даже если бы лимита и не было, не хочется каждый раз иметь эту часовую задержку до начала тестирования собственно вашего проекта.
Посему, я подготовил нужную мне матрицу конфигураций и собрал LLVM на тех же серверах непрерывной интеграции, на которых и происходит тестирование, а именно --
Travis CI и
AppVeyor. Архивы сборок выложены (теми же самыми сервисами непрерывной интеграции) как GitHub-артефакты и доступны для скачивания и распаковки -- вместо убийства часа на сборку LLVM по месту.
Матрица на текущий момент такова:
Toolchain:
Visual Studio 2010 (LLVM 3.4.2 only)
Visual Studio 2013
Visual Studio 2015
Target CPU:
IA32 (a.k.a. x86)
AMD64 (a.k.a. x86_64)
C/C++ Runtime:
libcmt (static)
msvcrt (dynamic)
Configuration:
Compiler:
gcc++ 4.8.4
clang++ 3.5.0
Target CPU:
IA32 (a.k.a. x86)
AMD64 (a.k.a. x86_64)
Configuration:
Compiler:
clang++ 7.3.0 (Apple LLVM versioning)
Target CPU:
Configuration:
Качать бинарники и контрибутить тут:
https://github.com/vovkos/llvm-package-windows
https://github.com/vovkos/llvm-package-travis
Пример использования на моём проекте (shell скрипты для скачивания и подключения LLVM в папке ci):
https://github.com/vovkos/jancy
Логи тестирования (я гоняю только с двумя граничными поддерживаемыми версиями, на сегодняшний день это LLVM 3.4.2 и LLVM 3.9.1):
https://travis-ci.org/vovkos/jancy
https://ci.appveyor.com/project/vovkos/jancy