Comments 12
А в чем ценность обертки?
Если autotools можно под целевые платформы использовать как есть, то лишний слой абстрагирования только усложняет поддержку. А для использования готовых наборов параметров почему бы не использовать напрямую shell-скрипт?
Shell-скрипт на 20 строчек, чтобы принять аргументы выбора платформы, спрятать 100500 параметров под пресет, и сгенерить Shell- или bat-скрипт сборки, можно и в MinGW запускать. (https://pastebin.com/h7RY2UqJ)
CMake конечно можно использовать, но он не для скриптования совсем, и всю мощь свою не раскроет, а проблемы в поддержке создаст.
Хотелось достичь единообразия. Весь проект использует CMake. Плюс мы собираем не через MinGW, а через nmake и получается нужно было дублировать скрипт сборки. В целом вариант с shell скриптом хорош, а тут 100% единый интерфейс обращения будет.
а с какой целью вы таскаете OpenSSL вместе с собой?
Дефолтным сценарием использования OpenSSL является `find_package(OpenSSL REQUIRED)`.
У нас кастомный - с белорусской криптографией
И что делать, если вдруг понадобились локальные патчи?
Не совсем понял цели вопроса. Если вопрос в том, что скрипт сборки не умеет патчить, то это в целом и не нужно ему в моем сценарии использования
дважды подумать прежде чем делать патчи в openssl.
Ну или сделать PR в официальный репозиторий.
Фу какая гадость. У нас вон тоже openssl собирается как подпроект в cmake и это просто боль. Внезапно у проекта появилась зависимость от perl, а оно нам надо вообще? Нет не надо, но теперь у нас perl в зависимостях. Так ещё и начинаются смешные вещи происходить, когда выкачиваешь исходники себе на диск (винда) rsync-ом отправляешь на макось и наблюдаешь смешнявку "executable not found: perl\n" Весело? Весело.🤬
Разумеется это все решаемо. Но оно вам надо? Так что советую не пытаться себе отстрелить что-нибудь, а использовать системную версию. А если уж так хочется заиметь "свою особенную" пайплайн рядом положите, а потом просто забирайте бинари.
Все уже в целом готово (возможно, что придётся подложить пару своих патчей)
https://github.com/microsoft/vcpkg/tree/master/ports/openssl
Пишем обертку для сборки OpenSSL на CMake